CHG: changed message proto and fixed all causing issues after that

This commit is contained in:
Henry Winkel
2023-02-15 15:28:07 +01:00
parent 01e61cd482
commit 42f749be45
10 changed files with 160 additions and 92 deletions

View File

@@ -30,6 +30,8 @@ namespace WHISPER {
OWN_TRACK, OWN_TRACK,
/// raw track message /// raw track message
RAW_TRACK, RAW_TRACK,
/// SENSOR Track message
SENSOR_TRACK,
/// simple data /// simple data
SIMPLE, SIMPLE,
/// ///

View File

@@ -24,7 +24,7 @@ namespace messages {
namespace header { namespace header {
PROTOBUF_CONSTEXPR Message::Message( PROTOBUF_CONSTEXPR Message::Message(
::_pbi::ConstantInitialized): _impl_{ ::_pbi::ConstantInitialized): _impl_{
/*decltype(_impl_.payload_)*/{} /*decltype(_impl_.payload_)*/nullptr
, /*decltype(_impl_.topic_)*/0u , /*decltype(_impl_.topic_)*/0u
, /*decltype(_impl_.msgtype_)*/0u , /*decltype(_impl_.msgtype_)*/0u
, /*decltype(_impl_.sourcetype_)*/0u , /*decltype(_impl_.sourcetype_)*/0u
@@ -73,7 +73,7 @@ const char descriptor_table_protodef_message_2eproto[] PROTOBUF_SECTION_VARIABLE
"/protobuf/any.proto\"\210\001\n\007Message\022\r\n\005topic" "/protobuf/any.proto\"\210\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 " "\030\001 \001(\r\022\017\n\007msgType\030\002 \001(\r\022\022\n\nsourceType\030\003 "
"\001(\r\022\020\n\010sourceID\030\004 \001(\r\022\020\n\010parentID\030\005 \001(\r\022" "\001(\r\022\020\n\010sourceID\030\004 \001(\r\022\020\n\010parentID\030\005 \001(\r\022"
"%\n\007payload\030\006 \003(\0132\024.google.protobuf.Anyb\006" "%\n\007payload\030\006 \001(\0132\024.google.protobuf.Anyb\006"
"proto3" "proto3"
; ;
static const ::_pbi::DescriptorTable* const descriptor_table_message_2eproto_deps[1] = { static const ::_pbi::DescriptorTable* const descriptor_table_message_2eproto_deps[1] = {
@@ -101,10 +101,18 @@ namespace header {
class Message::_Internal { class Message::_Internal {
public: public:
static const ::PROTOBUF_NAMESPACE_ID::Any& payload(const Message* msg);
}; };
const ::PROTOBUF_NAMESPACE_ID::Any&
Message::_Internal::payload(const Message* msg) {
return *msg->_impl_.payload_;
}
void Message::clear_payload() { void Message::clear_payload() {
_impl_.payload_.Clear(); if (GetArenaForAllocation() == nullptr && _impl_.payload_ != nullptr) {
delete _impl_.payload_;
}
_impl_.payload_ = nullptr;
} }
Message::Message(::PROTOBUF_NAMESPACE_ID::Arena* arena, Message::Message(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned) bool is_message_owned)
@@ -116,7 +124,7 @@ Message::Message(const Message& from)
: ::PROTOBUF_NAMESPACE_ID::Message() { : ::PROTOBUF_NAMESPACE_ID::Message() {
Message* const _this = this; (void)_this; Message* const _this = this; (void)_this;
new (&_impl_) Impl_{ new (&_impl_) Impl_{
decltype(_impl_.payload_){from._impl_.payload_} decltype(_impl_.payload_){nullptr}
, decltype(_impl_.topic_){} , decltype(_impl_.topic_){}
, decltype(_impl_.msgtype_){} , decltype(_impl_.msgtype_){}
, decltype(_impl_.sourcetype_){} , decltype(_impl_.sourcetype_){}
@@ -125,6 +133,9 @@ Message::Message(const Message& from)
, /*decltype(_impl_._cached_size_)*/{}}; , /*decltype(_impl_._cached_size_)*/{}};
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
if (from._internal_has_payload()) {
_this->_impl_.payload_ = new ::PROTOBUF_NAMESPACE_ID::Any(*from._impl_.payload_);
}
::memcpy(&_impl_.topic_, &from._impl_.topic_, ::memcpy(&_impl_.topic_, &from._impl_.topic_,
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.parentid_) - static_cast<size_t>(reinterpret_cast<char*>(&_impl_.parentid_) -
reinterpret_cast<char*>(&_impl_.topic_)) + sizeof(_impl_.parentid_)); reinterpret_cast<char*>(&_impl_.topic_)) + sizeof(_impl_.parentid_));
@@ -136,7 +147,7 @@ inline void Message::SharedCtor(
(void)arena; (void)arena;
(void)is_message_owned; (void)is_message_owned;
new (&_impl_) Impl_{ new (&_impl_) Impl_{
decltype(_impl_.payload_){arena} decltype(_impl_.payload_){nullptr}
, decltype(_impl_.topic_){0u} , decltype(_impl_.topic_){0u}
, decltype(_impl_.msgtype_){0u} , decltype(_impl_.msgtype_){0u}
, decltype(_impl_.sourcetype_){0u} , decltype(_impl_.sourcetype_){0u}
@@ -157,7 +168,7 @@ Message::~Message() {
inline void Message::SharedDtor() { inline void Message::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
_impl_.payload_.~RepeatedPtrField(); if (this != internal_default_instance()) delete _impl_.payload_;
} }
void Message::SetCachedSize(int size) const { void Message::SetCachedSize(int size) const {
@@ -170,7 +181,10 @@ void Message::Clear() {
// Prevent compiler warnings about cached_has_bits being unused // Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits; (void) cached_has_bits;
_impl_.payload_.Clear(); if (GetArenaForAllocation() == nullptr && _impl_.payload_ != nullptr) {
delete _impl_.payload_;
}
_impl_.payload_ = nullptr;
::memset(&_impl_.topic_, 0, static_cast<size_t>( ::memset(&_impl_.topic_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&_impl_.parentid_) - reinterpret_cast<char*>(&_impl_.parentid_) -
reinterpret_cast<char*>(&_impl_.topic_)) + sizeof(_impl_.parentid_)); reinterpret_cast<char*>(&_impl_.topic_)) + sizeof(_impl_.parentid_));
@@ -223,16 +237,11 @@ const char* Message::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx)
} else } else
goto handle_unusual; goto handle_unusual;
continue; continue;
// repeated .google.protobuf.Any payload = 6; // .google.protobuf.Any payload = 6;
case 6: case 6:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) { if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
ptr -= 1; ptr = ctx->ParseMessage(_internal_mutable_payload(), ptr);
do {
ptr += 1;
ptr = ctx->ParseMessage(_internal_add_payload(), ptr);
CHK_(ptr); CHK_(ptr);
if (!ctx->DataAvailable(ptr)) break;
} while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
} else } else
goto handle_unusual; goto handle_unusual;
continue; continue;
@@ -295,12 +304,11 @@ uint8_t* Message::_InternalSerialize(
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_parentid(), target); target = ::_pbi::WireFormatLite::WriteUInt32ToArray(5, this->_internal_parentid(), target);
} }
// repeated .google.protobuf.Any payload = 6; // .google.protobuf.Any payload = 6;
for (unsigned i = 0, if (this->_internal_has_payload()) {
n = static_cast<unsigned>(this->_internal_payload_size()); i < n; i++) {
const auto& repfield = this->_internal_payload(i);
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
InternalWriteMessage(6, repfield, repfield.GetCachedSize(), target, stream); InternalWriteMessage(6, _Internal::payload(this),
_Internal::payload(this).GetCachedSize(), target, stream);
} }
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
@@ -319,11 +327,11 @@ size_t Message::ByteSizeLong() const {
// Prevent compiler warnings about cached_has_bits being unused // Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits; (void) cached_has_bits;
// repeated .google.protobuf.Any payload = 6; // .google.protobuf.Any payload = 6;
total_size += 1UL * this->_internal_payload_size(); if (this->_internal_has_payload()) {
for (const auto& msg : this->_impl_.payload_) { total_size += 1 +
total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); *_impl_.payload_);
} }
// uint32 topic = 1; // uint32 topic = 1;
@@ -369,7 +377,10 @@ void Message::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOB
uint32_t cached_has_bits = 0; uint32_t cached_has_bits = 0;
(void) cached_has_bits; (void) cached_has_bits;
_this->_impl_.payload_.MergeFrom(from._impl_.payload_); if (from._internal_has_payload()) {
_this->_internal_mutable_payload()->::PROTOBUF_NAMESPACE_ID::Any::MergeFrom(
from._internal_payload());
}
if (from._internal_topic() != 0) { if (from._internal_topic() != 0) {
_this->_internal_set_topic(from._internal_topic()); _this->_internal_set_topic(from._internal_topic());
} }
@@ -402,13 +413,12 @@ bool Message::IsInitialized() const {
void Message::InternalSwap(Message* other) { void Message::InternalSwap(Message* other) {
using std::swap; using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_); _internal_metadata_.InternalSwap(&other->_internal_metadata_);
_impl_.payload_.InternalSwap(&other->_impl_.payload_);
::PROTOBUF_NAMESPACE_ID::internal::memswap< ::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(Message, _impl_.parentid_) PROTOBUF_FIELD_OFFSET(Message, _impl_.parentid_)
+ sizeof(Message::_impl_.parentid_) + sizeof(Message::_impl_.parentid_)
- PROTOBUF_FIELD_OFFSET(Message, _impl_.topic_)>( - PROTOBUF_FIELD_OFFSET(Message, _impl_.payload_)>(
reinterpret_cast<char*>(&_impl_.topic_), reinterpret_cast<char*>(&_impl_.payload_),
reinterpret_cast<char*>(&other->_impl_.topic_)); reinterpret_cast<char*>(&other->_impl_.payload_));
} }
::PROTOBUF_NAMESPACE_ID::Metadata Message::GetMetadata() const { ::PROTOBUF_NAMESPACE_ID::Metadata Message::GetMetadata() const {

View File

@@ -188,23 +188,23 @@ class Message final :
kSourceIDFieldNumber = 4, kSourceIDFieldNumber = 4,
kParentIDFieldNumber = 5, kParentIDFieldNumber = 5,
}; };
// repeated .google.protobuf.Any payload = 6; // .google.protobuf.Any payload = 6;
int payload_size() const; bool has_payload() const;
private: private:
int _internal_payload_size() const; bool _internal_has_payload() const;
public: public:
void clear_payload(); void clear_payload();
::PROTOBUF_NAMESPACE_ID::Any* mutable_payload(int index); const ::PROTOBUF_NAMESPACE_ID::Any& payload() const;
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Any >* PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Any* release_payload();
mutable_payload(); ::PROTOBUF_NAMESPACE_ID::Any* mutable_payload();
void set_allocated_payload(::PROTOBUF_NAMESPACE_ID::Any* payload);
private: private:
const ::PROTOBUF_NAMESPACE_ID::Any& _internal_payload(int index) const; const ::PROTOBUF_NAMESPACE_ID::Any& _internal_payload() const;
::PROTOBUF_NAMESPACE_ID::Any* _internal_add_payload(); ::PROTOBUF_NAMESPACE_ID::Any* _internal_mutable_payload();
public: public:
const ::PROTOBUF_NAMESPACE_ID::Any& payload(int index) const; void unsafe_arena_set_allocated_payload(
::PROTOBUF_NAMESPACE_ID::Any* add_payload(); ::PROTOBUF_NAMESPACE_ID::Any* payload);
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Any >& ::PROTOBUF_NAMESPACE_ID::Any* unsafe_arena_release_payload();
payload() const;
// uint32 topic = 1; // uint32 topic = 1;
void clear_topic(); void clear_topic();
@@ -259,7 +259,7 @@ class Message final :
typedef void InternalArenaConstructable_; typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_; typedef void DestructorSkippable_;
struct Impl_ { struct Impl_ {
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Any > payload_; ::PROTOBUF_NAMESPACE_ID::Any* payload_;
uint32_t topic_; uint32_t topic_;
uint32_t msgtype_; uint32_t msgtype_;
uint32_t sourcetype_; uint32_t sourcetype_;
@@ -381,42 +381,90 @@ inline void Message::set_parentid(uint32_t value) {
// @@protoc_insertion_point(field_set:messages.header.Message.parentID) // @@protoc_insertion_point(field_set:messages.header.Message.parentID)
} }
// repeated .google.protobuf.Any payload = 6; // .google.protobuf.Any payload = 6;
inline int Message::_internal_payload_size() const { inline bool Message::_internal_has_payload() const {
return _impl_.payload_.size(); return this != internal_default_instance() && _impl_.payload_ != nullptr;
} }
inline int Message::payload_size() const { inline bool Message::has_payload() const {
return _internal_payload_size(); return _internal_has_payload();
} }
inline ::PROTOBUF_NAMESPACE_ID::Any* Message::mutable_payload(int index) { inline const ::PROTOBUF_NAMESPACE_ID::Any& Message::_internal_payload() const {
// @@protoc_insertion_point(field_mutable:messages.header.Message.payload) const ::PROTOBUF_NAMESPACE_ID::Any* p = _impl_.payload_;
return _impl_.payload_.Mutable(index); return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Any&>(
::PROTOBUF_NAMESPACE_ID::_Any_default_instance_);
} }
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Any >* inline const ::PROTOBUF_NAMESPACE_ID::Any& Message::payload() const {
Message::mutable_payload() {
// @@protoc_insertion_point(field_mutable_list:messages.header.Message.payload)
return &_impl_.payload_;
}
inline const ::PROTOBUF_NAMESPACE_ID::Any& Message::_internal_payload(int index) const {
return _impl_.payload_.Get(index);
}
inline const ::PROTOBUF_NAMESPACE_ID::Any& Message::payload(int index) const {
// @@protoc_insertion_point(field_get:messages.header.Message.payload) // @@protoc_insertion_point(field_get:messages.header.Message.payload)
return _internal_payload(index); return _internal_payload();
} }
inline ::PROTOBUF_NAMESPACE_ID::Any* Message::_internal_add_payload() { inline void Message::unsafe_arena_set_allocated_payload(
return _impl_.payload_.Add(); ::PROTOBUF_NAMESPACE_ID::Any* payload) {
if (GetArenaForAllocation() == nullptr) {
delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.payload_);
}
_impl_.payload_ = payload;
if (payload) {
} else {
}
// @@protoc_insertion_point(field_unsafe_arena_set_allocated:messages.header.Message.payload)
} }
inline ::PROTOBUF_NAMESPACE_ID::Any* Message::add_payload() { inline ::PROTOBUF_NAMESPACE_ID::Any* Message::release_payload() {
::PROTOBUF_NAMESPACE_ID::Any* _add = _internal_add_payload();
// @@protoc_insertion_point(field_add:messages.header.Message.payload) ::PROTOBUF_NAMESPACE_ID::Any* temp = _impl_.payload_;
return _add; _impl_.payload_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
if (GetArenaForAllocation() == nullptr) { delete old; }
#else // PROTOBUF_FORCE_COPY_IN_RELEASE
if (GetArenaForAllocation() != nullptr) {
temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
}
#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE
return temp;
} }
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::PROTOBUF_NAMESPACE_ID::Any >& inline ::PROTOBUF_NAMESPACE_ID::Any* Message::unsafe_arena_release_payload() {
Message::payload() const { // @@protoc_insertion_point(field_release:messages.header.Message.payload)
// @@protoc_insertion_point(field_list:messages.header.Message.payload)
::PROTOBUF_NAMESPACE_ID::Any* temp = _impl_.payload_;
_impl_.payload_ = nullptr;
return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Any* Message::_internal_mutable_payload() {
if (_impl_.payload_ == nullptr) {
auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Any>(GetArenaForAllocation());
_impl_.payload_ = p;
}
return _impl_.payload_; return _impl_.payload_;
} }
inline ::PROTOBUF_NAMESPACE_ID::Any* Message::mutable_payload() {
::PROTOBUF_NAMESPACE_ID::Any* _msg = _internal_mutable_payload();
// @@protoc_insertion_point(field_mutable:messages.header.Message.payload)
return _msg;
}
inline void Message::set_allocated_payload(::PROTOBUF_NAMESPACE_ID::Any* payload) {
::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
if (message_arena == nullptr) {
delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.payload_);
}
if (payload) {
::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(payload));
if (message_arena != submessage_arena) {
payload = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
message_arena, payload, submessage_arena);
}
} else {
}
_impl_.payload_ = payload;
// @@protoc_insertion_point(field_set_allocated:messages.header.Message.payload)
}
#ifdef __GNUC__ #ifdef __GNUC__
#pragma GCC diagnostic pop #pragma GCC diagnostic pop

View File

@@ -14,7 +14,7 @@ message Message {
uint32 parentID = 5; uint32 parentID = 5;
repeated google.protobuf.Any payload = 6; google.protobuf.Any payload = 6;
} }

View File

@@ -18,11 +18,12 @@ namespace WHISPER {
deviceId_ = msg.sourceid(); deviceId_ = msg.sourceid();
parentId_ = msg.parentid(); parentId_ = msg.parentid();
if ( msg.payload_size()) {
if (msg.payload().begin()->Is<messages::join::Join>()) { if (msg.mutable_payload()->Is<messages::join::Join>())
msg.payload().begin()->UnpackTo(&joinMessage); {
} msg.mutable_payload()->UnpackTo(&joinMessage);
} }
port = joinMessage.port(); port = joinMessage.port();
sourceAddr = joinMessage.srcaddress(); sourceAddr = joinMessage.srcaddress();

View File

@@ -18,11 +18,13 @@ namespace WHISPER {
leaveMessage = messages::leave::Leave(); leaveMessage = messages::leave::Leave();
if ( msg.payload_size()) { if (msg.mutable_payload()->Is<messages::leave::Leave>())
if (msg.payload().begin()->Is<messages::leave::Leave>()) { {
msg.payload().begin()->UnpackTo(&leaveMessage); msg.mutable_payload()->UnpackTo(&leaveMessage);
}
} }
port = leaveMessage.port(); port = leaveMessage.port();
sourceAddr = leaveMessage.srcaddress(); sourceAddr = leaveMessage.srcaddress();

View File

@@ -39,6 +39,7 @@ namespace WHISPER {
msg.set_sourcetype(sourceType_); msg.set_sourcetype(sourceType_);
msg.set_msgtype(msgType_); msg.set_msgtype(msgType_);
msg.set_parentid(parentId); msg.set_parentid(parentId);
} }
} }
@@ -52,9 +53,11 @@ namespace WHISPER {
void Message::addPayLoad(std::shared_ptr<google::protobuf::Any> payload){ void Message::addPayLoad(std::shared_ptr<google::protobuf::Any> payload){
payload_ = payload; payload_ = payload;
payloadString_ = payload->SerializeAsString();
msg.clear_payload(); msg.clear_payload();
msg.add_payload()->CopyFrom(*payload_); msg.mutable_payload()->CopyFrom(*payload);
// msg.add_payload()->CopyFrom(*payload_);
} }

View File

@@ -19,11 +19,12 @@ namespace WHISPER {
deviceId_ = msg.sourceid(); deviceId_ = msg.sourceid();
parentId_ = msg.parentid(); parentId_ = msg.parentid();
if ( msg.payload_size()) {
if (msg.payload().begin()->Is<messages::ping::Ping>()) { if (msg.mutable_payload()->Is<messages::ping::Ping>())
msg.payload().begin()->UnpackTo(&pingMessage); {
} msg.mutable_payload()->UnpackTo(&pingMessage);
} }
port_ = pingMessage.port(); port_ = pingMessage.port();

View File

@@ -19,11 +19,11 @@ namespace WHISPER {
deviceId_ = msg.sourceid(); deviceId_ = msg.sourceid();
parentId_ = msg.parentid(); parentId_ = msg.parentid();
if ( msg.payload_size()) { if (msg.mutable_payload()->Is<messages::pong::Pong>())
if (msg.payload().begin()->Is<messages::pong::Pong>()) { {
msg.payload().begin()->UnpackTo(&message_); msg.mutable_payload()->UnpackTo(&message_);
}
} }
port_ = message_.port(); port_ = message_.port();

View File

@@ -19,11 +19,12 @@ namespace WHISPER {
deviceId_ = msg.sourceid(); deviceId_ = msg.sourceid();
parentId_ = msg.parentid(); parentId_ = msg.parentid();
if ( msg.payload_size()) {
if (msg.payload().begin()->Is<messages::stringData::StringData>()) { if (msg.mutable_payload()->Is<messages::stringData::StringData>())
msg.payload().begin()->UnpackTo(&message_); {
} msg.mutable_payload()->UnpackTo(&message_);
} }
data_ = message_.data(); data_ = message_.data();