针对QwtPlotItem的二进制序列化
更多...
#include <DAChartSerialize.h>
|
|
using | FpSerializeOut = std::function< QByteArray(const QwtPlotItem *) > |
| | 序列化为QByteArray函数
|
| |
|
using | FpSerializeIn = std::function< QwtPlotItem *(const QByteArray &) > |
| |
|
| QByteArray | serializeOut (const QwtPlotItem *item) const |
| | 序列化输出
|
| |
|
QwtPlotItem * | serializeIn (const QByteArray &byte) const noexcept |
| |
| int | getRtti (const QByteArray &byte) const noexcept |
| | 在文件中获取rtti
|
| |
|
|
static QHash< int, std::pair< FpSerializeIn, FpSerializeOut > > & | serializeFun () |
| |
◆ getRtti()
| int DA::DAChartItemSerialize::getRtti |
( |
const QByteArray & |
byte | ) |
const |
|
noexcept |
在文件中获取rtti
文件的rtti保存在文件头中
- 参数
-
- 返回
◆ getSerializeInFun()
| DAChartItemSerialize::FpSerializeIn DA::DAChartItemSerialize::getSerializeInFun |
( |
int |
rtti | ) |
|
|
staticnoexcept |
◆ getSerializeOutFun()
◆ isSupportSerialize()
| bool DA::DAChartItemSerialize::isSupportSerialize |
( |
int |
rtti | ) |
|
|
static |
◆ registSerializeFun()
◆ serializeIn_T()
template<typename T , int RTTI>
| static QwtPlotItem * DA::DAChartItemSerialize::serializeIn_T |
( |
const QByteArray & |
byte | ) |
|
|
inlinestatic |
模板化的序列化实现
对于QwtPlotItem实例化类的序列号,你只需要实现
QDataStream& operator<<(QDataStream& out, const QwtPlotXXXItem* item);
QDataStream& operator>>(QDataStream& in, QwtPlotXXXItem* item);
这两个函数即可,然后在cpp文件中显示实例化serializeIn_T和serializeOut_T
template QwtPlotItem* DAChartItemSerialize::serializeIn_T< QwtPlotXXXItem, QwtPlotItem::Rtti_XXX >(const
*QByteArray&); template QByteArray DAChartItemSerialize::serializeOut_T< QwtPlotXXXItem >(const QwtPlotItem*);
再通过DAChartItemSerialize::registSerializeFun注册
,&DAChartItemSerialize::serializeIn_T< QwtPlotXXXItem, QwtPlotItem::Rtti_XXX >
,&DAChartItemSerialize::serializeOut_T< QwtPlotXXXItem >);
static void registSerializeFun(int rtti, FpSerializeIn fpIn, FpSerializeOut fpOut)
注册序列化函数
Definition DAChartSerialize.cpp:173
这样,调用DAChartItemSerialize::serializeIn/serializeOut函数就能对item进行序列化
- 参数
-
- 返回
◆ serializeOut()
| QByteArray DA::DAChartItemSerialize::serializeOut |
( |
const QwtPlotItem * |
item | ) |
const |
该类的文档由以下文件生成:
- /home/runner/work/data-workbench/data-workbench/src/DAFigure/DAChartSerialize.h
- /home/runner/work/data-workbench/data-workbench/src/DAFigure/DAChartSerialize.cpp