昇腾社区首页
中文
注册

OpenHiva::HivaMessage类型定义

OpenHiva::HivaMessage是框架发布-订阅通用的消息类型,里面包含了消息的序列化和反序列化接口。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
namespace Hiva {
namespace StdMsgs {
class HivaMessage {
public:
    HivaMessage() = default;
    virtual ~HivaMessage() = default;
    virtual bool Serialize(HivaSerializer &serializer) const = 0;
    virtual bool Deserialize(HivaSerializer &serializer) = 0;
    virtual uint32_t GetSerializedLength(HivaSerializer &serializer) const = 0;
    virtual const Hiva::HivaTime &GetTimeStamp() const = 0;  // 获取消息生成时的时间戳,保存在消息头里,只有在HasHeader接口为true时才有意义
    virtual uint32_t GetSequenceId() const = 0;              // 获取消息生成的序列号,保存在消息头里,只有在HasHeader接口为true时才有意义
    // 如下接口描述消息属性,必须在各个子类实现
    static bool HasHeader();                    // 是否存在消息头
    static std::string GetDataType();           // 消息类型
    static std::string GetMD5Sum();             // 消息的md5值,每个消息的md5值都不同
    static std::string GetDefinition();         // 消息的定义,定义里面详细的描述了消息里面的成员变量
};
}
}
using OpenHiva::HivaMessage = Hiva::StdMsgs::HivaMessage;