DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAXMLProtocol.h
1#ifndef DAXMLPROTOCOL_H
2#define DAXMLPROTOCOL_H
3#include <memory>
4#include "DAUtilsAPI.h"
5#include "DAAbstractProtocol.h"
6#include "DAProperties.h"
7namespace DA
8{
47class DAUTILS_API DAXMLProtocol : public DAAbstractProtocol
48{
49 DA_DECLARE_PRIVATE(DAXMLProtocol)
50public:
52 DAXMLProtocol(const DAXMLProtocol& other);
53 //移动构造函数
55 DAXMLProtocol& operator=(const DAXMLProtocol& other);
56
57 virtual ~DAXMLProtocol();
58
59 //设置协议功能号
60 virtual void setFunctionID(int funid);
61
62 //获取协议功能号
63 virtual int getFunctionID() const;
64
65 //设置协议类号
66 virtual void setClassID(int classid);
67
68 //获取协议类号
69 virtual int getClassID() const;
70
71 //设置值
72 virtual void setValue(const QString& groupName, const QString& keyName, const QVariant& var);
73 virtual void setValue(const QString& keyName, const QVariant& var);
74
75 // 复杂度O(1) 不含默认分组
76 virtual QStringList getGroupNames() const;
77
78 // 复杂度O(n)
79 virtual QStringList getKeyNames(const QString& groupName) const;
80 QStringList getKeyNames() const;
81
82 // 从文本转换
83 virtual bool fromString(const QString& str);
84
85 //转换为文本
86 virtual QString toString() const;
87
88 // 设置协议的内容
89 virtual bool fromByteArray(const QByteArray& data);
90
91 // 转换为bytearray
92 virtual QByteArray toByteArray() const;
93
94 //默认分组名
95 static QString defaultGroupName();
96
97 // 检测是否存在分组
98 virtual bool isHasGroup(const QString& groupName) const;
99
100 // 检查在分组名下是否存在对应的键值 复杂度O(1)
101 virtual bool isHasKey(const QString& groupName, const QString& keyName) const;
102
103 // 获取键值对应的内容
104 virtual QVariant getValue(const QString& groupName, const QString& keyName, const QVariant& defaultVal = QVariant()) const;
105 virtual QVariant getDefaultGroupValue(const QString& keyName, const QVariant& defaultVal = QVariant()) const;
106
107 //转换为SAPropertiesGroup
108 DAPropertiesGroup toPropGroup() const;
109 //从SAPropertiesGroup转换为xml协议
110 void fromPropGroup(const DAPropertiesGroup& props);
111
112public:
113 // 获取错误信息
114 QString getErrorString() const;
115};
116typedef std::shared_ptr< DAXMLProtocol > DAXMLProtocolPtr;
117DAUTILS_API DAXMLProtocolPtr makeXMLProtocolPtr();
118}
119
120#endif // SAXMLPROTOCOLPARSER_H
da协议解析基类
Definition DAAbstractProtocol.h:13
属性组
Definition DAProperties.h:33
SA XML协议的读写类 sa xml协议主要用于保存qvariant类型数据,形如
Definition DAXMLProtocol.h:48
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44