OpenHiva::BufferMessage类型定义
OpenHiva::BufferMessage是一种特殊的HivaMessage,里面封装了OpenHiva::HivaBuffer的序列化和反序列化,可用于发布-订阅。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | namespace Hiva { namespace StdMsgs { class BufferMessage : public Hiva::HivaMessage { public: BufferMessage() {} BufferMessage(const OpenHiva::HivaBuffer &hivaBuffer) : data(hivaBuffer) {} ~BufferMessage() override {} bool Serialize(Hiva::HivaSerializer &serializer) const override { serializer << reinterpret_cast<uint64_t>(data.mbufPtr_); return serializer.Ok(); } bool Deserialize(Hiva::HivaSerializer &serializer) override { uint64_t bufferAddr; serializer >> bufferAddr; data.mbufPtr_ = reinterpret_cast<Mbuf *>(bufferAddr); return serializer.Ok(); } uint32_t GetSerializedLength(Hiva::HivaSerializer &serializer) const override { (void)serializer; return 8U; // sizeof hivabuffer } const Hiva::HivaTime &GetTimeStamp() const override { static Hiva::HivaTime timestamp{0, 0}; return timestamp; } virtual uint32_t GetSequenceId() const override { return 0U; } static bool HasHeader() { return false; } static std::string GetDataType() { return "StdMsgs/BufferMessage"; } static std::string GetMD5Sum() { return "992ce8a1687cec8c8bd883ec73ca41d1"; } static std::string GetDefinition() { return "Mbuf *mbufPtr"; } OpenHiva::HivaBuffer data; }; } } using OpenHiva::BufferMessage = Hiva::StdMsgs::BufferMessage; |
父主题: 类型定义