diff --git a/include/WHISPER/InternalUDPService.hpp b/include/WHISPER/InternalUDPService.hpp index 8d02b27..5d1a698 100644 --- a/include/WHISPER/InternalUDPService.hpp +++ b/include/WHISPER/InternalUDPService.hpp @@ -32,6 +32,9 @@ namespace WHISPER { class InternalUDPService : public whispercomm { + public: + InternalUDPService(std::string id, std::uint16_t port, std::string destinationAdress, std::string myAdress); + ~InternalUDPService(); private: /// ip address of the destination std::string destinationAdress_; @@ -84,9 +87,6 @@ namespace WHISPER { - public: - InternalUDPService(std::uint32_t parentid,std::uint32_t id, SourceType owndevicetype,std::uint16_t port, std::string destinationAdress, std::string myAdress); - ~InternalUDPService(); diff --git a/include/WHISPER/Messages/Join.hpp b/include/WHISPER/Messages/Join.hpp index b244b41..149369f 100644 --- a/include/WHISPER/Messages/Join.hpp +++ b/include/WHISPER/Messages/Join.hpp @@ -18,7 +18,7 @@ namespace WHISPER { Join(std::string receivedMessage); - Join(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port, std::string addr); + Join(std::string ownID, std::uint32_t port, std::string addr); }; } \ No newline at end of file diff --git a/include/WHISPER/Messages/Leave.hpp b/include/WHISPER/Messages/Leave.hpp index 330b59c..43e04b7 100644 --- a/include/WHISPER/Messages/Leave.hpp +++ b/include/WHISPER/Messages/Leave.hpp @@ -18,7 +18,7 @@ namespace WHISPER { Leave(std::string receivedMessage); - Leave(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port, std::string addr); + Leave(std::string deviceID, std::uint32_t port, std::string addr); }; } \ No newline at end of file diff --git a/include/WHISPER/Messages/Message.hpp b/include/WHISPER/Messages/Message.hpp index ddada2b..64879f3 100644 --- a/include/WHISPER/Messages/Message.hpp +++ b/include/WHISPER/Messages/Message.hpp @@ -94,10 +94,10 @@ namespace WHISPER { public: Message()=default; - Message(std::string senderUUID, MsgTopics topic, MsgType Type,SourceType src); + Message(std::string senderUUID, MsgTopics topic, MsgType Type); [[deprecated]] - Message(std::uint32_t parentId,std::uint32_t deviceId, MsgTopics topic, MsgType Type,SourceType src); + Message(std::uint32_t parentId,std::uint32_t deviceId, MsgTopics topic, MsgType Type); Message(std::string msg); /** @@ -110,14 +110,9 @@ namespace WHISPER { std::uint32_t topic_; /// WHISPER::MsgType ot the payload std::uint32_t msgType_; - /// WHISPER::SourceType of the sender - std::uint32_t sourceType_; ///sender uuid std::string senderUUID_; - /// id of the sender - std::uint32_t deviceId_; - /// parent id of the sender 0 if its the manager - std::uint32_t parentId_; + /** * @brief returns the serialized message diff --git a/include/WHISPER/Messages/Ping.hpp b/include/WHISPER/Messages/Ping.hpp index 47bcdfe..94573fa 100644 --- a/include/WHISPER/Messages/Ping.hpp +++ b/include/WHISPER/Messages/Ping.hpp @@ -17,7 +17,7 @@ namespace WHISPER { Ping(std::string receivedMessage); - Ping(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port); + Ping(std::string deviceID, std::uint32_t port); }; } \ No newline at end of file diff --git a/include/WHISPER/Messages/Pong.hpp b/include/WHISPER/Messages/Pong.hpp index 48ff95c..e93b271 100644 --- a/include/WHISPER/Messages/Pong.hpp +++ b/include/WHISPER/Messages/Pong.hpp @@ -17,7 +17,7 @@ namespace WHISPER { Pong(std::string receivedMessage); - Pong(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port); + Pong(std::string deviceID, std::uint32_t port); }; } \ No newline at end of file diff --git a/include/WHISPER/Messages/Protos/message.pb.cc b/include/WHISPER/Messages/Protos/message.pb.cc index 4a8bf9b..e21df8d 100644 --- a/include/WHISPER/Messages/Protos/message.pb.cc +++ b/include/WHISPER/Messages/Protos/message.pb.cc @@ -24,15 +24,11 @@ namespace messages { namespace header { PROTOBUF_CONSTEXPR Message::Message( ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_._has_bits_)*/{} - , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.senderuuid_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + /*decltype(_impl_.senderuuid_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.payload_)*/nullptr , /*decltype(_impl_.topic_)*/0u , /*decltype(_impl_.msgtype_)*/0u - , /*decltype(_impl_.sourcetype_)*/0u - , /*decltype(_impl_.sourceid_)*/0u - , /*decltype(_impl_.parentid_)*/0u} {} + , /*decltype(_impl_._cached_size_)*/{}} {} struct MessageDefaultTypeInternal { PROTOBUF_CONSTEXPR MessageDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} @@ -49,7 +45,7 @@ static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_messa static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_message_2eproto = nullptr; const uint32_t TableStruct_message_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_._has_bits_), + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::messages::header::Message, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ @@ -57,21 +53,11 @@ const uint32_t TableStruct_message_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE( ~0u, // no _inlined_string_donated_ PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.topic_), PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.msgtype_), - PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.sourcetype_), PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.senderuuid_), - PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.sourceid_), - PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.parentid_), PROTOBUF_FIELD_OFFSET(::messages::header::Message, _impl_.payload_), - ~0u, - ~0u, - ~0u, - ~0u, - 0, - 1, - ~0u, }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, 13, -1, sizeof(::messages::header::Message)}, + { 0, -1, -1, sizeof(::messages::header::Message)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -80,19 +66,17 @@ static const ::_pb::Message* const file_default_instances[] = { const char descriptor_table_protodef_message_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = "\n\rmessage.proto\022\017messages.header\032\031google" - "/protobuf/any.proto\"\300\001\n\007Message\022\r\n\005topic" - "\030\001 \001(\r\022\017\n\007msgType\030\002 \001(\r\022\022\n\nsourceType\030\003 " - "\001(\r\022\022\n\nsenderUUID\030\004 \001(\t\022\025\n\010sourceID\030\005 \001(" - "\rH\000\210\001\001\022\025\n\010parentID\030\006 \001(\rH\001\210\001\001\022%\n\007payload" - "\030\007 \001(\0132\024.google.protobuf.AnyB\013\n\t_sourceI" - "DB\013\n\t_parentIDb\006proto3" + "/protobuf/any.proto\"d\n\007Message\022\r\n\005topic\030" + "\001 \001(\r\022\017\n\007msgType\030\002 \001(\r\022\022\n\nsenderUUID\030\003 \001" + "(\t\022%\n\007payload\030\005 \001(\0132\024.google.protobuf.An" + "yb\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_message_2eproto_deps[1] = { &::descriptor_table_google_2fprotobuf_2fany_2eproto, }; static ::_pbi::once_flag descriptor_table_message_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_message_2eproto = { - false, false, 262, descriptor_table_protodef_message_2eproto, + false, false, 169, descriptor_table_protodef_message_2eproto, "message.proto", &descriptor_table_message_2eproto_once, descriptor_table_message_2eproto_deps, 1, 1, schemas, file_default_instances, TableStruct_message_2eproto::offsets, @@ -112,13 +96,6 @@ namespace header { class Message::_Internal { public: - using HasBits = decltype(std::declval()._impl_._has_bits_); - static void set_has_sourceid(HasBits* has_bits) { - (*has_bits)[0] |= 1u; - } - static void set_has_parentid(HasBits* has_bits) { - (*has_bits)[0] |= 2u; - } static const ::PROTOBUF_NAMESPACE_ID::Any& payload(const Message* msg); }; @@ -142,15 +119,11 @@ Message::Message(const Message& from) : ::PROTOBUF_NAMESPACE_ID::Message() { Message* const _this = this; (void)_this; new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){from._impl_._has_bits_} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.senderuuid_){} + decltype(_impl_.senderuuid_){} , decltype(_impl_.payload_){nullptr} , decltype(_impl_.topic_){} , decltype(_impl_.msgtype_){} - , decltype(_impl_.sourcetype_){} - , decltype(_impl_.sourceid_){} - , decltype(_impl_.parentid_){}}; + , /*decltype(_impl_._cached_size_)*/{}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); _impl_.senderuuid_.InitDefault(); @@ -165,8 +138,8 @@ Message::Message(const Message& from) _this->_impl_.payload_ = new ::PROTOBUF_NAMESPACE_ID::Any(*from._impl_.payload_); } ::memcpy(&_impl_.topic_, &from._impl_.topic_, - static_cast(reinterpret_cast(&_impl_.parentid_) - - reinterpret_cast(&_impl_.topic_)) + sizeof(_impl_.parentid_)); + static_cast(reinterpret_cast(&_impl_.msgtype_) - + reinterpret_cast(&_impl_.topic_)) + sizeof(_impl_.msgtype_)); // @@protoc_insertion_point(copy_constructor:messages.header.Message) } @@ -175,15 +148,11 @@ inline void Message::SharedCtor( (void)arena; (void)is_message_owned; new (&_impl_) Impl_{ - decltype(_impl_._has_bits_){} - , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.senderuuid_){} + decltype(_impl_.senderuuid_){} , decltype(_impl_.payload_){nullptr} , decltype(_impl_.topic_){0u} , decltype(_impl_.msgtype_){0u} - , decltype(_impl_.sourcetype_){0u} - , decltype(_impl_.sourceid_){0u} - , decltype(_impl_.parentid_){0u} + , /*decltype(_impl_._cached_size_)*/{} }; _impl_.senderuuid_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING @@ -222,21 +191,13 @@ void Message::Clear() { } _impl_.payload_ = nullptr; ::memset(&_impl_.topic_, 0, static_cast( - reinterpret_cast(&_impl_.sourcetype_) - - reinterpret_cast(&_impl_.topic_)) + sizeof(_impl_.sourcetype_)); - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - ::memset(&_impl_.sourceid_, 0, static_cast( - reinterpret_cast(&_impl_.parentid_) - - reinterpret_cast(&_impl_.sourceid_)) + sizeof(_impl_.parentid_)); - } - _impl_._has_bits_.Clear(); + reinterpret_cast(&_impl_.msgtype_) - + reinterpret_cast(&_impl_.topic_)) + sizeof(_impl_.msgtype_)); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } const char* Message::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - _Internal::HasBits has_bits{}; while (!ctx->Done(&ptr)) { uint32_t tag; ptr = ::_pbi::ReadTag(ptr, &tag); @@ -257,17 +218,9 @@ const char* Message::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) } else goto handle_unusual; continue; - // uint32 sourceType = 3; + // string senderUUID = 3; case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _impl_.sourcetype_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // string senderUUID = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { auto str = _internal_mutable_senderuuid(); ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); CHK_(ptr); @@ -275,27 +228,9 @@ const char* Message::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) } else goto handle_unusual; continue; - // optional uint32 sourceID = 5; + // .google.protobuf.Any payload = 5; case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _Internal::set_has_sourceid(&has_bits); - _impl_.sourceid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // optional uint32 parentID = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _Internal::set_has_parentid(&has_bits); - _impl_.parentid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); - CHK_(ptr); - } else - goto handle_unusual; - continue; - // .google.protobuf.Any payload = 7; - case 7: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 58)) { + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { ptr = ctx->ParseMessage(_internal_mutable_payload(), ptr); CHK_(ptr); } else @@ -317,7 +252,6 @@ const char* Message::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) CHK_(ptr != nullptr); } // while message_done: - _impl_._has_bits_.Or(has_bits); return ptr; failure: ptr = nullptr; @@ -343,38 +277,20 @@ uint8_t* Message::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_msgtype(), target); } - // uint32 sourceType = 3; - if (this->_internal_sourcetype() != 0) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_sourcetype(), target); - } - - // string senderUUID = 4; + // string senderUUID = 3; if (!this->_internal_senderuuid().empty()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->_internal_senderuuid().data(), static_cast(this->_internal_senderuuid().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "messages.header.Message.senderUUID"); target = stream->WriteStringMaybeAliased( - 4, this->_internal_senderuuid(), target); + 3, this->_internal_senderuuid(), target); } - // optional uint32 sourceID = 5; - if (_internal_has_sourceid()) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_sourceid(), target); - } - - // optional uint32 parentID = 6; - if (_internal_has_parentid()) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt32ToArray(6, this->_internal_parentid(), target); - } - - // .google.protobuf.Any payload = 7; + // .google.protobuf.Any payload = 5; if (this->_internal_has_payload()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(7, _Internal::payload(this), + InternalWriteMessage(5, _Internal::payload(this), _Internal::payload(this).GetCachedSize(), target, stream); } @@ -394,14 +310,14 @@ size_t Message::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // string senderUUID = 4; + // string senderUUID = 3; if (!this->_internal_senderuuid().empty()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( this->_internal_senderuuid()); } - // .google.protobuf.Any payload = 7; + // .google.protobuf.Any payload = 5; if (this->_internal_has_payload()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( @@ -418,24 +334,6 @@ size_t Message::ByteSizeLong() const { total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_msgtype()); } - // uint32 sourceType = 3; - if (this->_internal_sourcetype() != 0) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_sourcetype()); - } - - cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - // optional uint32 sourceID = 5; - if (cached_has_bits & 0x00000001u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_sourceid()); - } - - // optional uint32 parentID = 6; - if (cached_has_bits & 0x00000002u) { - total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_parentid()); - } - - } return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -467,19 +365,6 @@ void Message::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOB if (from._internal_msgtype() != 0) { _this->_internal_set_msgtype(from._internal_msgtype()); } - if (from._internal_sourcetype() != 0) { - _this->_internal_set_sourcetype(from._internal_sourcetype()); - } - cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - if (cached_has_bits & 0x00000001u) { - _this->_impl_.sourceid_ = from._impl_.sourceid_; - } - if (cached_has_bits & 0x00000002u) { - _this->_impl_.parentid_ = from._impl_.parentid_; - } - _this->_impl_._has_bits_[0] |= cached_has_bits; - } _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); } @@ -499,14 +384,13 @@ void Message::InternalSwap(Message* other) { auto* lhs_arena = GetArenaForAllocation(); auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); - swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( &_impl_.senderuuid_, lhs_arena, &other->_impl_.senderuuid_, rhs_arena ); ::PROTOBUF_NAMESPACE_ID::internal::memswap< - PROTOBUF_FIELD_OFFSET(Message, _impl_.parentid_) - + sizeof(Message::_impl_.parentid_) + PROTOBUF_FIELD_OFFSET(Message, _impl_.msgtype_) + + sizeof(Message::_impl_.msgtype_) - PROTOBUF_FIELD_OFFSET(Message, _impl_.payload_)>( reinterpret_cast(&_impl_.payload_), reinterpret_cast(&other->_impl_.payload_)); diff --git a/include/WHISPER/Messages/Protos/message.pb.h b/include/WHISPER/Messages/Protos/message.pb.h index 9d39fa5..ff8e939 100644 --- a/include/WHISPER/Messages/Protos/message.pb.h +++ b/include/WHISPER/Messages/Protos/message.pb.h @@ -181,15 +181,12 @@ class Message final : // accessors ------------------------------------------------------- enum : int { - kSenderUUIDFieldNumber = 4, - kPayloadFieldNumber = 7, + kSenderUUIDFieldNumber = 3, + kPayloadFieldNumber = 5, kTopicFieldNumber = 1, kMsgTypeFieldNumber = 2, - kSourceTypeFieldNumber = 3, - kSourceIDFieldNumber = 5, - kParentIDFieldNumber = 6, }; - // string senderUUID = 4; + // string senderUUID = 3; void clear_senderuuid(); const std::string& senderuuid() const; template @@ -203,7 +200,7 @@ class Message final : std::string* _internal_mutable_senderuuid(); public: - // .google.protobuf.Any payload = 7; + // .google.protobuf.Any payload = 5; bool has_payload() const; private: bool _internal_has_payload() const; @@ -239,41 +236,6 @@ class Message final : void _internal_set_msgtype(uint32_t value); public: - // uint32 sourceType = 3; - void clear_sourcetype(); - uint32_t sourcetype() const; - void set_sourcetype(uint32_t value); - private: - uint32_t _internal_sourcetype() const; - void _internal_set_sourcetype(uint32_t value); - public: - - // optional uint32 sourceID = 5; - bool has_sourceid() const; - private: - bool _internal_has_sourceid() const; - public: - void clear_sourceid(); - uint32_t sourceid() const; - void set_sourceid(uint32_t value); - private: - uint32_t _internal_sourceid() const; - void _internal_set_sourceid(uint32_t value); - public: - - // optional uint32 parentID = 6; - bool has_parentid() const; - private: - bool _internal_has_parentid() const; - public: - void clear_parentid(); - uint32_t parentid() const; - void set_parentid(uint32_t value); - private: - uint32_t _internal_parentid() const; - void _internal_set_parentid(uint32_t value); - public: - // @@protoc_insertion_point(class_scope:messages.header.Message) private: class _Internal; @@ -282,15 +244,11 @@ class Message final : typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { - ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr senderuuid_; ::PROTOBUF_NAMESPACE_ID::Any* payload_; uint32_t topic_; uint32_t msgtype_; - uint32_t sourcetype_; - uint32_t sourceid_; - uint32_t parentid_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; }; union { Impl_ _impl_; }; friend struct ::TableStruct_message_2eproto; @@ -346,27 +304,7 @@ inline void Message::set_msgtype(uint32_t value) { // @@protoc_insertion_point(field_set:messages.header.Message.msgType) } -// uint32 sourceType = 3; -inline void Message::clear_sourcetype() { - _impl_.sourcetype_ = 0u; -} -inline uint32_t Message::_internal_sourcetype() const { - return _impl_.sourcetype_; -} -inline uint32_t Message::sourcetype() const { - // @@protoc_insertion_point(field_get:messages.header.Message.sourceType) - return _internal_sourcetype(); -} -inline void Message::_internal_set_sourcetype(uint32_t value) { - - _impl_.sourcetype_ = value; -} -inline void Message::set_sourcetype(uint32_t value) { - _internal_set_sourcetype(value); - // @@protoc_insertion_point(field_set:messages.header.Message.sourceType) -} - -// string senderUUID = 4; +// string senderUUID = 3; inline void Message::clear_senderuuid() { _impl_.senderuuid_.ClearToEmpty(); } @@ -416,63 +354,7 @@ inline void Message::set_allocated_senderuuid(std::string* senderuuid) { // @@protoc_insertion_point(field_set_allocated:messages.header.Message.senderUUID) } -// optional uint32 sourceID = 5; -inline bool Message::_internal_has_sourceid() const { - bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; - return value; -} -inline bool Message::has_sourceid() const { - return _internal_has_sourceid(); -} -inline void Message::clear_sourceid() { - _impl_.sourceid_ = 0u; - _impl_._has_bits_[0] &= ~0x00000001u; -} -inline uint32_t Message::_internal_sourceid() const { - return _impl_.sourceid_; -} -inline uint32_t Message::sourceid() const { - // @@protoc_insertion_point(field_get:messages.header.Message.sourceID) - return _internal_sourceid(); -} -inline void Message::_internal_set_sourceid(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000001u; - _impl_.sourceid_ = value; -} -inline void Message::set_sourceid(uint32_t value) { - _internal_set_sourceid(value); - // @@protoc_insertion_point(field_set:messages.header.Message.sourceID) -} - -// optional uint32 parentID = 6; -inline bool Message::_internal_has_parentid() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; - return value; -} -inline bool Message::has_parentid() const { - return _internal_has_parentid(); -} -inline void Message::clear_parentid() { - _impl_.parentid_ = 0u; - _impl_._has_bits_[0] &= ~0x00000002u; -} -inline uint32_t Message::_internal_parentid() const { - return _impl_.parentid_; -} -inline uint32_t Message::parentid() const { - // @@protoc_insertion_point(field_get:messages.header.Message.parentID) - return _internal_parentid(); -} -inline void Message::_internal_set_parentid(uint32_t value) { - _impl_._has_bits_[0] |= 0x00000002u; - _impl_.parentid_ = value; -} -inline void Message::set_parentid(uint32_t value) { - _internal_set_parentid(value); - // @@protoc_insertion_point(field_set:messages.header.Message.parentID) -} - -// .google.protobuf.Any payload = 7; +// .google.protobuf.Any payload = 5; inline bool Message::_internal_has_payload() const { return this != internal_default_instance() && _impl_.payload_ != nullptr; } diff --git a/include/WHISPER/Messages/Protos/message.proto b/include/WHISPER/Messages/Protos/message.proto index 041b9de..17bc209 100644 --- a/include/WHISPER/Messages/Protos/message.proto +++ b/include/WHISPER/Messages/Protos/message.proto @@ -9,13 +9,9 @@ package messages.header; message Message { uint32 topic = 1; uint32 msgType = 2; - uint32 sourceType = 3; - string senderUUID = 4; - optional uint32 sourceID = 5; - optional uint32 parentID = 6; - + string senderUUID = 3; - google.protobuf.Any payload = 7; + google.protobuf.Any payload = 5; } diff --git a/include/WHISPER/Messages/stringData.hpp b/include/WHISPER/Messages/stringData.hpp index 54f59d5..d0f246f 100644 --- a/include/WHISPER/Messages/stringData.hpp +++ b/include/WHISPER/Messages/stringData.hpp @@ -18,7 +18,7 @@ namespace WHISPER { StringData(std::string receivedMessage); - StringData(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::string data); + StringData(std::string senderID, std::string data); }; } \ No newline at end of file diff --git a/include/WHISPER/localClients.hpp b/include/WHISPER/localClients.hpp index 001d2e5..694a6f8 100644 --- a/include/WHISPER/localClients.hpp +++ b/include/WHISPER/localClients.hpp @@ -13,15 +13,14 @@ namespace WHISPER { class localClient { public: - localClient(std::uint32_t port,std::string addr,std::uint32_t parentid,std::uint32_t id, std::shared_ptr clientSocket); + localClient(std::uint32_t port,std::string addr,std::string id, std::shared_ptr clientSocket); ~localClient(); std::uint32_t getPort(); std::string getAddr(); - std::uint32_t getParentid(); - std::uint32_t getID(); + std::string getID(); void addClientSocket(std::shared_ptr socket); std::shared_ptr getClientSocket(); @@ -35,8 +34,7 @@ namespace WHISPER { const std::uint32_t port_; const std::string addr_; - const std::uint32_t parentid_; - const std::uint32_t id_; + const std::string id_; std::shared_ptr clientSocket_; std::time_t lastResponse_; diff --git a/include/WHISPER/whisper.hpp b/include/WHISPER/whisper.hpp index 3429109..b975aae 100644 --- a/include/WHISPER/whisper.hpp +++ b/include/WHISPER/whisper.hpp @@ -33,15 +33,23 @@ namespace WHISPER { // Add datatypes here class whispercomm{ + public: + whispercomm(std::string id):ownID_(id) + {}; + void connect(std::shared_ptr> receiver); + void publish(std::string msg,std::string topic); + void disconnect(); + void subscribe(std::string topic); + void unsubscribe(std::string topic); + + std::string getOwnID(); + // SourceType getOwnDeviceType(); private: /// device ID - std::uint32_t ownID_; + std::string ownID_; /// device ID - std::uint32_t parentID_; - /// device Type - SourceType ownDeviceType_; - + /// show if the service is connected or not std::atomic connected; @@ -62,18 +70,6 @@ namespace WHISPER void receive(); - public: - whispercomm(std::uint32_t parentid,std::uint32_t id, SourceType owndevicetype):parentID_(parentid),ownID_(id),ownDeviceType_(owndevicetype) - {}; - void connect(std::shared_ptr> receiver); - void publish(std::string msg,std::string topic); - void disconnect(); - void subscribe(std::string topic); - void unsubscribe(std::string topic); - - std::uint32_t getOwnID(); - std::uint32_t getParentID(); - SourceType getOwnDeviceType(); protected: diff --git a/src/WHISPER/InternalUDPService.cpp b/src/WHISPER/InternalUDPService.cpp index 2c98860..e9998d2 100644 --- a/src/WHISPER/InternalUDPService.cpp +++ b/src/WHISPER/InternalUDPService.cpp @@ -27,8 +27,8 @@ namespace WHISPER { - InternalUDPService::InternalUDPService(std::uint32_t parentid,std::uint32_t id, SourceType owndevicetype,std::uint16_t port, std::string destinationAdress,std::string myAdress): - whispercomm(parentid,id, owndevicetype),port_(port),destinationAdress_(destinationAdress),myAdress_(myAdress) + InternalUDPService::InternalUDPService(std::string id, std::uint16_t port, std::string destinationAdress,std::string myAdress): + whispercomm(id),port_(port),destinationAdress_(destinationAdress),myAdress_(myAdress) { ctx = zmq::context_t(2); sender = zmq::socket_t(ctx,zmq::socket_type::radio); @@ -83,7 +83,7 @@ namespace WHISPER { LOG_S(INFO)<<"own ID: "<< getOwnID(); - WHISPER::Join join(getParentID(),getOwnID(),getOwnDeviceType(),ownReceivingPort_,myAdress_); + WHISPER::Join join(getOwnID(),ownReceivingPort_,myAdress_); this->publish(join.serialize(),WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]); @@ -92,7 +92,7 @@ namespace WHISPER { void InternalUDPService::derivedDisconnect() { - WHISPER::Leave Leave(getParentID(),getOwnID(),getOwnDeviceType(),ownReceivingPort_,myAdress_); + WHISPER::Leave Leave(getOwnID(),ownReceivingPort_,myAdress_); this->publish(Leave.serialize(),WHISPER::MsgTopicsMap[(WHISPER::MsgTopics)Leave.topic_]); // unsubscribe(WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]); @@ -150,7 +150,7 @@ namespace WHISPER { sendToLocalClients(receivedMessage.serialize(), WHISPER::MsgTopicsMap[(WHISPER::MsgTopics)receivedMessage.topic_]); - if (receivedMessage.deviceId_ != getOwnID()) + if (receivedMessage.senderUUID_ != getOwnID()) { int msgType = receivedMessage.msgType_; @@ -168,7 +168,7 @@ namespace WHISPER { { for (auto it = localclients.begin(); it != localclients.end();it++) { - if (it->get()->getPort() == join.port || it->get()->getID() == join.deviceId_) + if (it->get()->getPort() == join.port || it->get()->getID() == join.senderUUID_) { clientAllreadyIn = true; } @@ -181,7 +181,7 @@ namespace WHISPER { auto tmpAddr = "udp://"+join.sourceAddr+":" + std::to_string(join.port); auto tmpsocket = std::make_shared(ctx,zmq::socket_type::radio); - auto client = std::make_shared(join.port,tmpAddr,join.parentId_,join.deviceId_, tmpsocket); + auto client = std::make_shared(join.port,tmpAddr,join.senderUUID_, tmpsocket); // client->port = join.port; // client->id = join.deviceId_; // client->parentid = join.parentId_; @@ -207,7 +207,7 @@ namespace WHISPER { if (localclients.size() > 0) { for (auto it = localclients.begin(); it != localclients.end();it++) { - if (it->get()->getPort() == Leave.port || (it->get()->getID() == Leave.deviceId_ && it->get()->getParentid() == Leave.deviceId_)) + if (it->get()->getPort() == Leave.port || (it->get()->getID() == Leave.senderUUID_)) { it->get()->getClientSocket()->close(); it = localclients.erase(it); @@ -223,9 +223,9 @@ namespace WHISPER { }else if(msgType == WHISPER::PING) { - if (receivedMessage.deviceId_ != getOwnID() ) + if (receivedMessage.senderUUID_ != getOwnID() ) { - WHISPER::Pong pong(getParentID(),getOwnID(),getOwnDeviceType(),ownReceivingPort_); + WHISPER::Pong pong(getOwnID(),ownReceivingPort_); this->publish(pong.serialize(),WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]); } @@ -238,7 +238,7 @@ namespace WHISPER { for (auto it = localclients.begin(); it != localclients.end();it++) { - if (pong.deviceId_ == it->get()->getID() && pong.parentId_ == it->get()->getParentid()) + if (pong.senderUUID_ == it->get()->getID() ) { it->get()->setLastResponse(std::time(nullptr)); } @@ -262,7 +262,7 @@ namespace WHISPER { auto tmpMsg = WHISPER::Message(msg); for (auto it = localclients.begin(); it != localclients.end();it++) { - if (tmpMsg.deviceId_ != it->get()->getID()) + if (tmpMsg.senderUUID_ != it->get()->getID()) { zmq::message_t tmp(msg.begin(),msg.end()); tmp.set_group(topic.c_str()); @@ -317,7 +317,7 @@ namespace WHISPER { if (localclients.size() > 0) { - WHISPER::Ping ping(getParentID(),getOwnID(),getOwnDeviceType(),port_); + WHISPER::Ping ping(getOwnID(),port_); sendToLocalClients(ping.serialize(), WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]); for (auto it = localclients.begin(); it != localclients.end();it++) diff --git a/src/WHISPER/Messages/Join.cpp b/src/WHISPER/Messages/Join.cpp index 6a1bc30..bcc80d0 100644 --- a/src/WHISPER/Messages/Join.cpp +++ b/src/WHISPER/Messages/Join.cpp @@ -12,11 +12,9 @@ namespace WHISPER { try { msg.ParseFromString(receivedMessage); topic_ = msg.topic(); - sourceType_ = msg.sourcetype(); msgType_ = msg.msgtype(); joinMessage = messages::join::Join(); - deviceId_ = msg.sourceid(); - parentId_ = msg.parentid(); + this->senderUUID_ = msg.senderuuid(); if (msg.mutable_payload()->Is()) @@ -35,8 +33,8 @@ namespace WHISPER { } - WHISPER::Join::Join(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port, std::string addr): - Message(parentID,deviceID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::JOIN,src),port(port),sourceAddr(addr) + WHISPER::Join::Join(std::string senderID, std::uint32_t port, std::string addr): + Message(senderID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::JOIN),port(port),sourceAddr(addr) { joinMessage = messages::join::Join(); joinMessage.set_port(port); diff --git a/src/WHISPER/Messages/Leave.cpp b/src/WHISPER/Messages/Leave.cpp index 71defe3..42106fb 100644 --- a/src/WHISPER/Messages/Leave.cpp +++ b/src/WHISPER/Messages/Leave.cpp @@ -12,9 +12,8 @@ namespace WHISPER { try { msg.ParseFromString(receivedMessage); topic_ = msg.topic(); - sourceType_ = msg.sourcetype(); msgType_ = msg.msgtype(); - parentId_ = msg.parentid(); + senderUUID_ = msg.senderuuid(); leaveMessage = messages::leave::Leave(); @@ -37,8 +36,8 @@ namespace WHISPER { } - Leave::Leave(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port, std::string addr): - Message(parentID,deviceID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::LEAVE,src),port(port),sourceAddr(addr) + Leave::Leave(std::string senderID, std::uint32_t port, std::string addr): + Message(senderID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::LEAVE),port(port),sourceAddr(addr) { leaveMessage = messages::leave::Leave(); diff --git a/src/WHISPER/Messages/Message.cpp b/src/WHISPER/Messages/Message.cpp index 2dbbe9f..44606e9 100644 --- a/src/WHISPER/Messages/Message.cpp +++ b/src/WHISPER/Messages/Message.cpp @@ -13,12 +13,11 @@ namespace WHISPER { try { msg.ParseFromString(stringMessage); - deviceId_ = msg.sourceid(); topic_ = msg.topic(); - sourceType_ = msg.sourcetype(); msgType_ = msg.msgtype(); - parentId_ = msg.parentid(); - + senderUUID_ = msg.senderuuid(); + auto ptr = std::make_shared(); + payload_->CopyFrom(*msg.mutable_payload()); } catch (const std::exception& e) { LOG_S(ERROR)<Is()) @@ -36,8 +34,8 @@ namespace WHISPER { } - WHISPER::Ping::Ping(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port): - Message(parentID,deviceID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::PING,src),port_(port) + WHISPER::Ping::Ping(std::string senderID, std::uint32_t port): + Message(senderID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::PING),port_(port) { pingMessage = messages::ping::Ping(); pingMessage.set_port(port_); diff --git a/src/WHISPER/Messages/Pong.cpp b/src/WHISPER/Messages/Pong.cpp index 8df0728..5b55036 100644 --- a/src/WHISPER/Messages/Pong.cpp +++ b/src/WHISPER/Messages/Pong.cpp @@ -13,11 +13,9 @@ namespace WHISPER { try { msg.ParseFromString(receivedMessage); topic_ = msg.topic(); - sourceType_ = msg.sourcetype(); msgType_ = msg.msgtype(); message_ = messages::pong::Pong(); - deviceId_ = msg.sourceid(); - parentId_ = msg.parentid(); + senderUUID_ = msg.senderuuid(); if (msg.mutable_payload()->Is()) { @@ -35,8 +33,8 @@ namespace WHISPER { } - WHISPER::Pong::Pong(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::uint32_t port): - Message(parentID,deviceID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::PONG,src),port_(port) + WHISPER::Pong::Pong(std::string senderID, std::uint32_t port): + Message(senderID,WHISPER::MsgTopics::MANAGEMENT,WHISPER::PONG),port_(port) { // message_ = messages::pong::Pong(); if (message_.IsInitialized()) { diff --git a/src/WHISPER/Messages/stringData.cpp b/src/WHISPER/Messages/stringData.cpp index 1617c2e..a0f6c07 100644 --- a/src/WHISPER/Messages/stringData.cpp +++ b/src/WHISPER/Messages/stringData.cpp @@ -13,11 +13,9 @@ namespace WHISPER { try { msg.ParseFromString(receivedMessage); topic_ = msg.topic(); - sourceType_ = msg.sourcetype(); msgType_ = msg.msgtype(); message_ = messages::stringData::StringData(); - deviceId_ = msg.sourceid(); - parentId_ = msg.parentid(); + senderUUID_ = msg.senderuuid(); if (msg.mutable_payload()->Is()) @@ -36,8 +34,8 @@ namespace WHISPER { } - WHISPER::StringData::StringData(std::uint32_t parentID,std::uint32_t deviceID, SourceType src,std::string data): - Message(parentID,deviceID,WHISPER::MsgTopics::DATA,WHISPER::STRINGDATA,src),data_(data) + WHISPER::StringData::StringData(std::string senderID, std::string data): + Message(senderID,WHISPER::MsgTopics::DATA,WHISPER::STRINGDATA),data_(data) { message_ = messages::stringData::StringData(); message_.set_data(data); diff --git a/src/WHISPER/localClients.cpp b/src/WHISPER/localClients.cpp index 0b5e3c1..40f8509 100644 --- a/src/WHISPER/localClients.cpp +++ b/src/WHISPER/localClients.cpp @@ -1,10 +1,11 @@ #include +#include namespace WHISPER { - localClient::localClient(std::uint32_t port,std::string addr,std::uint32_t parentid,std::uint32_t id, std::shared_ptr clientSocket) - :port_(port),addr_(addr),parentid_(parentid),id_(id),clientSocket_(clientSocket),mx() + localClient::localClient(std::uint32_t port,std::string addr,std::string id, std::shared_ptr clientSocket) + :port_(port),addr_(addr),id_(id),clientSocket_(clientSocket),mx() { lastResponse_ = std::time(nullptr); } @@ -28,12 +29,8 @@ std::string localClient::getAddr() std::lock_guard lock(mx); return addr_; } -std::uint32_t localClient::getParentid() -{ - std::lock_guard lock(mx); - return parentid_; -} -std::uint32_t localClient::getID() + +std::string localClient::getID() { std::lock_guard lock(mx); return id_; diff --git a/src/WHISPER/whisper.cpp b/src/WHISPER/whisper.cpp index ee4f1a5..1a2f411 100644 --- a/src/WHISPER/whisper.cpp +++ b/src/WHISPER/whisper.cpp @@ -19,15 +19,12 @@ namespace WHISPER { - std::uint32_t whispercomm::getOwnID() + std::string whispercomm::getOwnID() { return ownID_; } - std::uint32_t whispercomm::getParentID() - { - return parentID_; - } + void whispercomm::connect(std::shared_ptr> receiver) { @@ -111,10 +108,10 @@ namespace WHISPER bool whispercomm::isGateway(){ return gateway; } - SourceType whispercomm::getOwnDeviceType() - { - return ownDeviceType_; - } +// SourceType whispercomm::getOwnDeviceType() +// { +// return ownDeviceType_; +// } void whispercomm::setConnected(bool val){