Files
whisper-com/src/WHISPER/Messages/Join.cpp
Henry Winkel 8fcf4244b0 FIX: fixed some bugs
ADD: added raw_track message frame
2022-11-15 15:55:24 +01:00

54 lines
1.5 KiB
C++

#include "WHISPER/Messages/Message.hpp"
#include <WHISPER/Messages/Join.hpp>
#include <memory>
namespace WHISPER {
Join::Join(std::string receivedMessage){
msg = messages::header::Message();
try {
msg.ParseFromString(receivedMessage);
topic_ = msg.topic();
sourceType_ = msg.sourcetype();
msgType_ = msg.msgtype();
joinMessage = messages::join::Join();
deviceId_ = msg.sourceid();
if ( msg.payload_size()) {
if (msg.payload().begin()->Is<messages::join::Join>()) {
msg.payload().begin()->UnpackTo(&joinMessage);
}
}
port = joinMessage.port();
sourceAddr = joinMessage.srcaddress();
} catch (const std::exception& e) {
LOG_S(ERROR)<<e.what();
}
}
WHISPER::Join::Join(std::uint32_t deviceID, SourceType src,std::uint32_t port, std::string addr):
Message(deviceID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::JOIN,src),port(port),sourceAddr(addr)
{
joinMessage = messages::join::Join();
joinMessage.set_port(port);
joinMessage.set_srcaddress(sourceAddr);
auto payloadMessage = std::make_shared<google::protobuf::Any>();
payloadMessage->PackFrom(joinMessage);
addPayLoad(payloadMessage);
}
}