ADD: Message container and Join Message
This commit is contained in:
24
include/WHISPER/Messages/Join.hpp
Normal file
24
include/WHISPER/Messages/Join.hpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
#include <WHISPER/Messages/Message.hpp>
|
||||
#include <WHISPER/Messages/Protos/join.pb.h>
|
||||
#include <string>
|
||||
#include <loguru.hpp>
|
||||
|
||||
namespace WHISPER {
|
||||
|
||||
class Join : public Message
|
||||
{
|
||||
private:
|
||||
messages::join::Join joinMessage;
|
||||
public:
|
||||
std::uint32_t port;
|
||||
std::string sourceAddr;
|
||||
|
||||
Join(std::string receivedMessage);
|
||||
|
||||
Join(std::uint32_t deviceID,std::uint32_t topic, MsgType Type, SourceType src,std::uint32_t port, std::string addr);
|
||||
|
||||
};
|
||||
}
|
||||
88
include/WHISPER/Messages/Message.hpp
Normal file
88
include/WHISPER/Messages/Message.hpp
Normal file
@@ -0,0 +1,88 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
|
||||
|
||||
#include "google/protobuf/any.pb.h"
|
||||
#include "google/protobuf/message.h"
|
||||
#include <WHISPER/Messages/Protos/message.pb.h>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <loguru.hpp>
|
||||
|
||||
|
||||
namespace WHISPER {
|
||||
|
||||
enum MsgType : int32_t
|
||||
{
|
||||
/// message to shutdown all participants
|
||||
SHUTDOWN = 0,
|
||||
/// on participant is joined
|
||||
JOIN=1,
|
||||
/// participant is leaving
|
||||
LEAVE,
|
||||
/// 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<google::protobuf::Any> 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_;
|
||||
|
||||
void addPayLoad(std::shared_ptr<google::protobuf::Any> any);
|
||||
void addPayLoad(std::string any);
|
||||
|
||||
std::string serialize();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
messages::header::Message msg;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -3,14 +3,13 @@
|
||||
syntax = "proto3";
|
||||
package messages.join;
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
// import "google/protobuf/timestamp.proto";
|
||||
// [END declaration]
|
||||
|
||||
|
||||
// [START messages]
|
||||
message Join {
|
||||
int32 id = 1;
|
||||
int32 port = 2;
|
||||
string address = 3;
|
||||
uint32 port = 1;
|
||||
string srcAddress = 2;
|
||||
}
|
||||
|
||||
|
||||
19
include/WHISPER/Messages/Protos/message.proto
Normal file
19
include/WHISPER/Messages/Protos/message.proto
Normal file
@@ -0,0 +1,19 @@
|
||||
syntax = "proto3";
|
||||
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
|
||||
package messages.header;
|
||||
|
||||
// [START messages]
|
||||
message Message {
|
||||
int32 topic = 1;
|
||||
int32 msgType = 2;
|
||||
int32 sourceType = 3;
|
||||
int32 sourceID = 4;
|
||||
|
||||
repeated google.protobuf.Any payload = 5;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user