73 lines
1.6 KiB
C++
73 lines
1.6 KiB
C++
|
|
|
|
#include <WHISPER/Messages/Message.hpp>
|
|
#include <memory>
|
|
|
|
|
|
|
|
|
|
namespace WHISPER {
|
|
Message::Message(std::string stringMessage)
|
|
{
|
|
msg = messages::header::Message();
|
|
try {
|
|
msg.ParseFromString(stringMessage);
|
|
|
|
deviceId_ = msg.sourceid();
|
|
topic_ = msg.topic();
|
|
sourceType_ = msg.sourcetype();
|
|
msgType_ = msg.msgtype();
|
|
parentId_ = msg.parentid();
|
|
|
|
|
|
} catch (const std::exception& e) {
|
|
LOG_S(ERROR)<<e.what();
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Message::Message(std::uint32_t parentId,std::uint32_t deviceId, MsgTopics topic, MsgType Type,SourceType src):
|
|
parentId_(parentId),deviceId_(deviceId),topic_(topic),sourceType_(src),msgType_(Type){
|
|
msg = messages::header::Message();
|
|
|
|
if(msg.IsInitialized())
|
|
{
|
|
msg.set_sourceid(deviceId);
|
|
msg.set_topic(topic);
|
|
msg.set_sourcetype(sourceType_);
|
|
msg.set_msgtype(msgType_);
|
|
msg.set_parentid(parentId);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string Message::getPayloadString(){
|
|
return payloadString_;
|
|
}
|
|
|
|
|
|
void Message::addPayLoad(std::shared_ptr<google::protobuf::Any> payload){
|
|
payload_ = payload;
|
|
|
|
msg.clear_payload();
|
|
msg.add_payload()->CopyFrom(*payload_);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string Message::serialize(){
|
|
|
|
std::string serializedMessage;
|
|
if (msg.IsInitialized()) {
|
|
serializedMessage = msg.SerializeAsString();
|
|
}
|
|
return serializedMessage;
|
|
}
|
|
|
|
|
|
} |