#pragma once #include "google/protobuf/any.pb.h" #include "google/protobuf/message.h" #include #include #include #include namespace WHISPER { enum MsgType : int32_t { /// message to shutdown all participants SHUTDOWN = 0, /// on participant is joined JOIN=1, /// participant is leaving LEAVE, /// PING PING, /// PONG PONG, /// owntrack informaton OWN_TRACK, /// raw track message RAW_TRACK, /// simple data SIMPLE }; // enum class EventType enum SourceType : int32_t { SIMCOMTROLER, /// SHIP, /// SENSOR, /// EFEKTOR, /// GATEWAY, /// }; // enum class EventType class Message{ private: std::string payloadString_; std::shared_ptr payload_; public: Message()=default; Message(std::int32_t deviceId, std::uint32_t topic, MsgType Type,SourceType src); Message(std::string msg); std::string getPayloadString(); std::uint32_t topic_; std::int32_t msgType_; std::int32_t sourceType_; std::int32_t deviceId_; std::string serialize(); protected: void addPayLoad(std::shared_ptr any); // void addPayLoad(std::string any); messages::header::Message msg; }; }