From 75fd317cafc70bb646148af8a70605af692db134 Mon Sep 17 00:00:00 2001
From: shenxin <shenxin@xxx.com>
Date: 星期二, 31 八月 2021 13:46:41 +0800
Subject: [PATCH] 整理

---
 /dev/null                        |   22 ----------------------
 proto/source/bhome_msg_api.proto |    4 +---
 proto/source/bhome_msg.proto     |    2 --
 src/CMakeLists.txt               |    6 +++---
 src/bh_api.cpp                   |    7 ++-----
 5 files changed, 6 insertions(+), 35 deletions(-)

diff --git a/proto/bhome_msg.pb.cc b/proto/bhome_msg.pb.cc
deleted file mode 100644
index 95a5ce7..0000000
--- a/proto/bhome_msg.pb.cc
+++ /dev/null
@@ -1,2647 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: bhome_msg.proto
-
-#include "bhome_msg.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_error_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ErrorMsg_error_5fmsg_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgReply_bhome_5fmsg_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_MsgRequest_bhome_5fmsg_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto;
-namespace bhome_msg {
-class BHMsgHeadDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BHMsgHead> _instance;
-} _BHMsgHead_default_instance_;
-class MsgSubscribeDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgSubscribe> _instance;
-} _MsgSubscribe_default_instance_;
-class MsgUnsubscribeDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgUnsubscribe> _instance;
-} _MsgUnsubscribe_default_instance_;
-class MsgRegisterRPCDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgRegisterRPC> _instance;
-} _MsgRegisterRPC_default_instance_;
-class MsgProcInitDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgProcInit> _instance;
-} _MsgProcInit_default_instance_;
-class MsgProcInitReplyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgProcInitReply> _instance;
-} _MsgProcInitReply_default_instance_;
-class MsgRequestDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgRequest> _instance;
-  const ::bhome_msg::MsgRegister* register__;
-  const ::bhome_msg::MsgRequestTopic* topic_request_;
-  const ::bhome_msg::MsgQueryTopic* topic_query_;
-} _MsgRequest_default_instance_;
-class MsgReplyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgReply> _instance;
-} _MsgReply_default_instance_;
-class BHMsgBodyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BHMsgBody> _instance;
-  const ::bhome_msg::MsgRequest* request_;
-  const ::bhome_msg::MsgReply* reply_;
-} _BHMsgBody_default_instance_;
-}  // namespace bhome_msg
-static void InitDefaultsscc_info_BHMsgBody_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_BHMsgBody_default_instance_;
-    new (ptr) ::bhome_msg::BHMsgBody();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::BHMsgBody::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_BHMsgBody_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_BHMsgBody_bhome_5fmsg_2eproto}, {
-      &scc_info_MsgRequest_bhome_5fmsg_2eproto.base,
-      &scc_info_MsgReply_bhome_5fmsg_2eproto.base,}};
-
-static void InitDefaultsscc_info_BHMsgHead_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_BHMsgHead_default_instance_;
-    new (ptr) ::bhome_msg::BHMsgHead();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::BHMsgHead::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_BHMsgHead_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_BHMsgHead_bhome_5fmsg_2eproto}, {
-      &scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgProcInit_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgProcInit_default_instance_;
-    new (ptr) ::bhome_msg::MsgProcInit();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgProcInit::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgProcInit_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_MsgProcInit_bhome_5fmsg_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgProcInitReply_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgProcInitReply_default_instance_;
-    new (ptr) ::bhome_msg::MsgProcInitReply();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgProcInitReply::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_MsgProcInitReply_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_MsgProcInitReply_bhome_5fmsg_2eproto}, {
-      &scc_info_ErrorMsg_error_5fmsg_2eproto.base,
-      &scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgRegisterRPC_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgRegisterRPC_default_instance_;
-    new (ptr) ::bhome_msg::MsgRegisterRPC();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgRegisterRPC::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgRegisterRPC_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgRegisterRPC_bhome_5fmsg_2eproto}, {
-      &scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgReply_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgReply_default_instance_;
-    new (ptr) ::bhome_msg::MsgReply();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgReply::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgReply_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgReply_bhome_5fmsg_2eproto}, {
-      &scc_info_ErrorMsg_error_5fmsg_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgRequest_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgRequest_default_instance_;
-    new (ptr) ::bhome_msg::MsgRequest();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgRequest::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_MsgRequest_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, 0, InitDefaultsscc_info_MsgRequest_bhome_5fmsg_2eproto}, {
-      &scc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto.base,
-      &scc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto.base,
-      &scc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgSubscribe_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgSubscribe_default_instance_;
-    new (ptr) ::bhome_msg::MsgSubscribe();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgSubscribe::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgSubscribe_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgSubscribe_bhome_5fmsg_2eproto}, {
-      &scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgUnsubscribe_bhome_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgUnsubscribe_default_instance_;
-    new (ptr) ::bhome_msg::MsgUnsubscribe();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgUnsubscribe::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgUnsubscribe_bhome_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgUnsubscribe_bhome_5fmsg_2eproto}, {
-      &scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto.base,}};
-
-namespace bhome_msg {
-bool MsgType_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-    case 2:
-    case 8:
-    case 9:
-    case 10:
-    case 12:
-    case 14:
-    case 15:
-    case 16:
-    case 17:
-    case 18:
-    case 20:
-    case 22:
-    case 24:
-    case 26:
-    case 28:
-    case 29:
-      return true;
-    default:
-      return false;
-  }
-}
-
-static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> MsgType_strings[18] = {};
-
-static const char MsgType_names[] =
-  "kMsgTypeCommonReply"
-  "kMsgTypeHeartbeat"
-  "kMsgTypeInvalid"
-  "kMsgTypeProcInit"
-  "kMsgTypeProcInitReply"
-  "kMsgTypePublish"
-  "kMsgTypeQueryProc"
-  "kMsgTypeQueryProcReply"
-  "kMsgTypeQueryTopic"
-  "kMsgTypeQueryTopicReply"
-  "kMsgTypeRawData"
-  "kMsgTypeRegister"
-  "kMsgTypeRegisterRPC"
-  "kMsgTypeRequestTopic"
-  "kMsgTypeRequestTopicReply"
-  "kMsgTypeSubscribe"
-  "kMsgTypeUnregister"
-  "kMsgTypeUnsubscribe";
-
-static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry MsgType_entries[] = {
-  { {MsgType_names + 0, 19}, 2 },
-  { {MsgType_names + 19, 17}, 12 },
-  { {MsgType_names + 36, 15}, 0 },
-  { {MsgType_names + 51, 16}, 8 },
-  { {MsgType_names + 67, 21}, 9 },
-  { {MsgType_names + 88, 15}, 20 },
-  { {MsgType_names + 103, 17}, 28 },
-  { {MsgType_names + 120, 22}, 29 },
-  { {MsgType_names + 142, 18}, 14 },
-  { {MsgType_names + 160, 23}, 15 },
-  { {MsgType_names + 183, 15}, 1 },
-  { {MsgType_names + 198, 16}, 10 },
-  { {MsgType_names + 214, 19}, 18 },
-  { {MsgType_names + 233, 20}, 16 },
-  { {MsgType_names + 253, 25}, 17 },
-  { {MsgType_names + 278, 17}, 22 },
-  { {MsgType_names + 295, 18}, 26 },
-  { {MsgType_names + 313, 19}, 24 },
-};
-
-static const int MsgType_entries_by_number[] = {
-  2, // 0 -> kMsgTypeInvalid
-  10, // 1 -> kMsgTypeRawData
-  0, // 2 -> kMsgTypeCommonReply
-  3, // 8 -> kMsgTypeProcInit
-  4, // 9 -> kMsgTypeProcInitReply
-  11, // 10 -> kMsgTypeRegister
-  1, // 12 -> kMsgTypeHeartbeat
-  8, // 14 -> kMsgTypeQueryTopic
-  9, // 15 -> kMsgTypeQueryTopicReply
-  13, // 16 -> kMsgTypeRequestTopic
-  14, // 17 -> kMsgTypeRequestTopicReply
-  12, // 18 -> kMsgTypeRegisterRPC
-  5, // 20 -> kMsgTypePublish
-  15, // 22 -> kMsgTypeSubscribe
-  17, // 24 -> kMsgTypeUnsubscribe
-  16, // 26 -> kMsgTypeUnregister
-  6, // 28 -> kMsgTypeQueryProc
-  7, // 29 -> kMsgTypeQueryProcReply
-};
-
-const std::string& MsgType_Name(
-    MsgType value) {
-  static const bool dummy =
-      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
-          MsgType_entries,
-          MsgType_entries_by_number,
-          18, MsgType_strings);
-  (void) dummy;
-  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
-      MsgType_entries,
-      MsgType_entries_by_number,
-      18, value);
-  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString() :
-                     MsgType_strings[idx].get();
-}
-bool MsgType_Parse(
-    const std::string& name, MsgType* value) {
-  int int_value;
-  bool success = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumValue(
-      MsgType_entries, 18, name, &int_value);
-  if (success) {
-    *value = static_cast<MsgType>(int_value);
-  }
-  return success;
-}
-
-// ===================================================================
-
-void BHMsgHead::InitAsDefaultInstance() {
-  ::bhome_msg::_BHMsgHead_default_instance_._instance.get_mutable()->dest_ = const_cast< ::bhome_msg::BHAddress*>(
-      ::bhome_msg::BHAddress::internal_default_instance());
-}
-class BHMsgHead::_Internal {
- public:
-  static const ::bhome_msg::BHAddress& dest(const BHMsgHead* msg);
-};
-
-const ::bhome_msg::BHAddress&
-BHMsgHead::_Internal::dest(const BHMsgHead* msg) {
-  return *msg->dest_;
-}
-void BHMsgHead::clear_route() {
-  route_.Clear();
-}
-void BHMsgHead::clear_dest() {
-  if (GetArenaNoVirtual() == nullptr && dest_ != nullptr) {
-    delete dest_;
-  }
-  dest_ = nullptr;
-}
-BHMsgHead::BHMsgHead()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.BHMsgHead)
-}
-BHMsgHead::BHMsgHead(const BHMsgHead& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr),
-      route_(from.route_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  msg_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_msg_id().empty()) {
-    msg_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.msg_id_);
-  }
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_proc_id().empty()) {
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_topic().empty()) {
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  if (from._internal_has_dest()) {
-    dest_ = new ::bhome_msg::BHAddress(*from.dest_);
-  } else {
-    dest_ = nullptr;
-  }
-  ::memcpy(&timestamp_, &from.timestamp_,
-    static_cast<size_t>(reinterpret_cast<char*>(&type_) -
-    reinterpret_cast<char*>(&timestamp_)) + sizeof(type_));
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.BHMsgHead)
-}
-
-void BHMsgHead::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BHMsgHead_bhome_5fmsg_2eproto.base);
-  msg_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  ::memset(&dest_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&type_) -
-      reinterpret_cast<char*>(&dest_)) + sizeof(type_));
-}
-
-BHMsgHead::~BHMsgHead() {
-  // @@protoc_insertion_point(destructor:bhome_msg.BHMsgHead)
-  SharedDtor();
-}
-
-void BHMsgHead::SharedDtor() {
-  msg_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  proc_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  topic_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (this != internal_default_instance()) delete dest_;
-}
-
-void BHMsgHead::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const BHMsgHead& BHMsgHead::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BHMsgHead_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void BHMsgHead::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.BHMsgHead)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  route_.Clear();
-  msg_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (GetArenaNoVirtual() == nullptr && dest_ != nullptr) {
-    delete dest_;
-  }
-  dest_ = nullptr;
-  ::memset(&timestamp_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&type_) -
-      reinterpret_cast<char*>(&timestamp_)) + sizeof(type_));
-  _internal_metadata_.Clear();
-}
-
-const char* BHMsgHead::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes msg_id = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_msg_id();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated .bhome_msg.BHAddress route = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_route(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
-        } else goto handle_unusual;
-        continue;
-      // int64 timestamp = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
-          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // int32 type = 4;
-      case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
-          type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // uint64 ssn_id = 5;
-      case 5:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
-          ssn_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes proc_id = 6;
-      case 6:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
-          auto str = _internal_mutable_proc_id();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes topic = 7;
-      case 7:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
-          auto str = _internal_mutable_topic();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.BHAddress dest = 8;
-      case 8:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
-          ptr = ctx->ParseMessage(_internal_mutable_dest(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* BHMsgHead::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.BHMsgHead)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes msg_id = 1;
-  if (this->msg_id().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_msg_id(), target);
-  }
-
-  // repeated .bhome_msg.BHAddress route = 2;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_route_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(2, this->_internal_route(i), target, stream);
-  }
-
-  // int64 timestamp = 3;
-  if (this->timestamp() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_timestamp(), target);
-  }
-
-  // int32 type = 4;
-  if (this->type() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_type(), target);
-  }
-
-  // uint64 ssn_id = 5;
-  if (this->ssn_id() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(5, this->_internal_ssn_id(), target);
-  }
-
-  // bytes proc_id = 6;
-  if (this->proc_id().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        6, this->_internal_proc_id(), target);
-  }
-
-  // bytes topic = 7;
-  if (this->topic().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        7, this->_internal_topic(), target);
-  }
-
-  // .bhome_msg.BHAddress dest = 8;
-  if (this->has_dest()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        8, _Internal::dest(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.BHMsgHead)
-  return target;
-}
-
-size_t BHMsgHead::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.BHMsgHead)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .bhome_msg.BHAddress route = 2;
-  total_size += 1UL * this->_internal_route_size();
-  for (const auto& msg : this->route_) {
-    total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
-  }
-
-  // bytes msg_id = 1;
-  if (this->msg_id().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_msg_id());
-  }
-
-  // bytes proc_id = 6;
-  if (this->proc_id().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_proc_id());
-  }
-
-  // bytes topic = 7;
-  if (this->topic().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_topic());
-  }
-
-  // .bhome_msg.BHAddress dest = 8;
-  if (this->has_dest()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *dest_);
-  }
-
-  // int64 timestamp = 3;
-  if (this->timestamp() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
-        this->_internal_timestamp());
-  }
-
-  // uint64 ssn_id = 5;
-  if (this->ssn_id() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
-        this->_internal_ssn_id());
-  }
-
-  // int32 type = 4;
-  if (this->type() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_type());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void BHMsgHead::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const BHMsgHead*>(
-      &from));
-}
-
-void BHMsgHead::MergeFrom(const BHMsgHead& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.BHMsgHead)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  route_.MergeFrom(from.route_);
-  if (from.msg_id().size() > 0) {
-
-    msg_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.msg_id_);
-  }
-  if (from.proc_id().size() > 0) {
-
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  if (from.topic().size() > 0) {
-
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  if (from.has_dest()) {
-    _internal_mutable_dest()->::bhome_msg::BHAddress::MergeFrom(from._internal_dest());
-  }
-  if (from.timestamp() != 0) {
-    _internal_set_timestamp(from._internal_timestamp());
-  }
-  if (from.ssn_id() != 0) {
-    _internal_set_ssn_id(from._internal_ssn_id());
-  }
-  if (from.type() != 0) {
-    _internal_set_type(from._internal_type());
-  }
-}
-
-void BHMsgHead::CopyFrom(const BHMsgHead& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.BHMsgHead)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool BHMsgHead::IsInitialized() const {
-  return true;
-}
-
-void BHMsgHead::InternalSwap(BHMsgHead* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  route_.InternalSwap(&other->route_);
-  msg_id_.Swap(&other->msg_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  proc_id_.Swap(&other->proc_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  topic_.Swap(&other->topic_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(dest_, other->dest_);
-  swap(timestamp_, other->timestamp_);
-  swap(ssn_id_, other->ssn_id_);
-  swap(type_, other->type_);
-}
-
-std::string BHMsgHead::GetTypeName() const {
-  return "bhome_msg.BHMsgHead";
-}
-
-
-// ===================================================================
-
-void MsgSubscribe::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgSubscribe_default_instance_._instance.get_mutable()->topics_ = const_cast< ::bhome_msg::MsgTopicList*>(
-      ::bhome_msg::MsgTopicList::internal_default_instance());
-}
-class MsgSubscribe::_Internal {
- public:
-  static const ::bhome_msg::MsgTopicList& topics(const MsgSubscribe* msg);
-};
-
-const ::bhome_msg::MsgTopicList&
-MsgSubscribe::_Internal::topics(const MsgSubscribe* msg) {
-  return *msg->topics_;
-}
-void MsgSubscribe::clear_topics() {
-  if (GetArenaNoVirtual() == nullptr && topics_ != nullptr) {
-    delete topics_;
-  }
-  topics_ = nullptr;
-}
-MsgSubscribe::MsgSubscribe()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgSubscribe)
-}
-MsgSubscribe::MsgSubscribe(const MsgSubscribe& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_topics()) {
-    topics_ = new ::bhome_msg::MsgTopicList(*from.topics_);
-  } else {
-    topics_ = nullptr;
-  }
-  network_ = from.network_;
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgSubscribe)
-}
-
-void MsgSubscribe::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgSubscribe_bhome_5fmsg_2eproto.base);
-  ::memset(&topics_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&network_) -
-      reinterpret_cast<char*>(&topics_)) + sizeof(network_));
-}
-
-MsgSubscribe::~MsgSubscribe() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgSubscribe)
-  SharedDtor();
-}
-
-void MsgSubscribe::SharedDtor() {
-  if (this != internal_default_instance()) delete topics_;
-}
-
-void MsgSubscribe::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgSubscribe& MsgSubscribe::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgSubscribe_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgSubscribe::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgSubscribe)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && topics_ != nullptr) {
-    delete topics_;
-  }
-  topics_ = nullptr;
-  network_ = false;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgSubscribe::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.MsgTopicList topics = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_topics(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bool network = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          network_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgSubscribe::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgSubscribe)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgTopicList topics = 1;
-  if (this->has_topics()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::topics(this), target, stream);
-  }
-
-  // bool network = 2;
-  if (this->network() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_network(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgSubscribe)
-  return target;
-}
-
-size_t MsgSubscribe::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgSubscribe)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgTopicList topics = 1;
-  if (this->has_topics()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *topics_);
-  }
-
-  // bool network = 2;
-  if (this->network() != 0) {
-    total_size += 1 + 1;
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgSubscribe::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgSubscribe*>(
-      &from));
-}
-
-void MsgSubscribe::MergeFrom(const MsgSubscribe& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgSubscribe)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_topics()) {
-    _internal_mutable_topics()->::bhome_msg::MsgTopicList::MergeFrom(from._internal_topics());
-  }
-  if (from.network() != 0) {
-    _internal_set_network(from._internal_network());
-  }
-}
-
-void MsgSubscribe::CopyFrom(const MsgSubscribe& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgSubscribe)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgSubscribe::IsInitialized() const {
-  return true;
-}
-
-void MsgSubscribe::InternalSwap(MsgSubscribe* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(topics_, other->topics_);
-  swap(network_, other->network_);
-}
-
-std::string MsgSubscribe::GetTypeName() const {
-  return "bhome_msg.MsgSubscribe";
-}
-
-
-// ===================================================================
-
-void MsgUnsubscribe::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgUnsubscribe_default_instance_._instance.get_mutable()->topics_ = const_cast< ::bhome_msg::MsgTopicList*>(
-      ::bhome_msg::MsgTopicList::internal_default_instance());
-}
-class MsgUnsubscribe::_Internal {
- public:
-  static const ::bhome_msg::MsgTopicList& topics(const MsgUnsubscribe* msg);
-};
-
-const ::bhome_msg::MsgTopicList&
-MsgUnsubscribe::_Internal::topics(const MsgUnsubscribe* msg) {
-  return *msg->topics_;
-}
-void MsgUnsubscribe::clear_topics() {
-  if (GetArenaNoVirtual() == nullptr && topics_ != nullptr) {
-    delete topics_;
-  }
-  topics_ = nullptr;
-}
-MsgUnsubscribe::MsgUnsubscribe()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgUnsubscribe)
-}
-MsgUnsubscribe::MsgUnsubscribe(const MsgUnsubscribe& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_topics()) {
-    topics_ = new ::bhome_msg::MsgTopicList(*from.topics_);
-  } else {
-    topics_ = nullptr;
-  }
-  network_ = from.network_;
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgUnsubscribe)
-}
-
-void MsgUnsubscribe::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgUnsubscribe_bhome_5fmsg_2eproto.base);
-  ::memset(&topics_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&network_) -
-      reinterpret_cast<char*>(&topics_)) + sizeof(network_));
-}
-
-MsgUnsubscribe::~MsgUnsubscribe() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgUnsubscribe)
-  SharedDtor();
-}
-
-void MsgUnsubscribe::SharedDtor() {
-  if (this != internal_default_instance()) delete topics_;
-}
-
-void MsgUnsubscribe::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgUnsubscribe& MsgUnsubscribe::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgUnsubscribe_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgUnsubscribe::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgUnsubscribe)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && topics_ != nullptr) {
-    delete topics_;
-  }
-  topics_ = nullptr;
-  network_ = false;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgUnsubscribe::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.MsgTopicList topics = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_topics(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bool network = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          network_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgUnsubscribe::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgUnsubscribe)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgTopicList topics = 1;
-  if (this->has_topics()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::topics(this), target, stream);
-  }
-
-  // bool network = 2;
-  if (this->network() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_network(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgUnsubscribe)
-  return target;
-}
-
-size_t MsgUnsubscribe::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgUnsubscribe)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgTopicList topics = 1;
-  if (this->has_topics()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *topics_);
-  }
-
-  // bool network = 2;
-  if (this->network() != 0) {
-    total_size += 1 + 1;
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgUnsubscribe::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgUnsubscribe*>(
-      &from));
-}
-
-void MsgUnsubscribe::MergeFrom(const MsgUnsubscribe& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgUnsubscribe)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_topics()) {
-    _internal_mutable_topics()->::bhome_msg::MsgTopicList::MergeFrom(from._internal_topics());
-  }
-  if (from.network() != 0) {
-    _internal_set_network(from._internal_network());
-  }
-}
-
-void MsgUnsubscribe::CopyFrom(const MsgUnsubscribe& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgUnsubscribe)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgUnsubscribe::IsInitialized() const {
-  return true;
-}
-
-void MsgUnsubscribe::InternalSwap(MsgUnsubscribe* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(topics_, other->topics_);
-  swap(network_, other->network_);
-}
-
-std::string MsgUnsubscribe::GetTypeName() const {
-  return "bhome_msg.MsgUnsubscribe";
-}
-
-
-// ===================================================================
-
-void MsgRegisterRPC::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgRegisterRPC_default_instance_._instance.get_mutable()->topics_ = const_cast< ::bhome_msg::MsgTopicList*>(
-      ::bhome_msg::MsgTopicList::internal_default_instance());
-}
-class MsgRegisterRPC::_Internal {
- public:
-  static const ::bhome_msg::MsgTopicList& topics(const MsgRegisterRPC* msg);
-};
-
-const ::bhome_msg::MsgTopicList&
-MsgRegisterRPC::_Internal::topics(const MsgRegisterRPC* msg) {
-  return *msg->topics_;
-}
-void MsgRegisterRPC::clear_topics() {
-  if (GetArenaNoVirtual() == nullptr && topics_ != nullptr) {
-    delete topics_;
-  }
-  topics_ = nullptr;
-}
-MsgRegisterRPC::MsgRegisterRPC()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgRegisterRPC)
-}
-MsgRegisterRPC::MsgRegisterRPC(const MsgRegisterRPC& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_topics()) {
-    topics_ = new ::bhome_msg::MsgTopicList(*from.topics_);
-  } else {
-    topics_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgRegisterRPC)
-}
-
-void MsgRegisterRPC::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgRegisterRPC_bhome_5fmsg_2eproto.base);
-  topics_ = nullptr;
-}
-
-MsgRegisterRPC::~MsgRegisterRPC() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgRegisterRPC)
-  SharedDtor();
-}
-
-void MsgRegisterRPC::SharedDtor() {
-  if (this != internal_default_instance()) delete topics_;
-}
-
-void MsgRegisterRPC::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgRegisterRPC& MsgRegisterRPC::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgRegisterRPC_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgRegisterRPC::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgRegisterRPC)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && topics_ != nullptr) {
-    delete topics_;
-  }
-  topics_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgRegisterRPC::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.MsgTopicList topics = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_topics(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgRegisterRPC::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgRegisterRPC)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgTopicList topics = 1;
-  if (this->has_topics()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::topics(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgRegisterRPC)
-  return target;
-}
-
-size_t MsgRegisterRPC::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgRegisterRPC)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgTopicList topics = 1;
-  if (this->has_topics()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *topics_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgRegisterRPC::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgRegisterRPC*>(
-      &from));
-}
-
-void MsgRegisterRPC::MergeFrom(const MsgRegisterRPC& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgRegisterRPC)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_topics()) {
-    _internal_mutable_topics()->::bhome_msg::MsgTopicList::MergeFrom(from._internal_topics());
-  }
-}
-
-void MsgRegisterRPC::CopyFrom(const MsgRegisterRPC& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgRegisterRPC)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgRegisterRPC::IsInitialized() const {
-  return true;
-}
-
-void MsgRegisterRPC::InternalSwap(MsgRegisterRPC* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(topics_, other->topics_);
-}
-
-std::string MsgRegisterRPC::GetTypeName() const {
-  return "bhome_msg.MsgRegisterRPC";
-}
-
-
-// ===================================================================
-
-void MsgProcInit::InitAsDefaultInstance() {
-}
-class MsgProcInit::_Internal {
- public:
-};
-
-MsgProcInit::MsgProcInit()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgProcInit)
-}
-MsgProcInit::MsgProcInit(const MsgProcInit& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  extra_mq_num_ = from.extra_mq_num_;
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgProcInit)
-}
-
-void MsgProcInit::SharedCtor() {
-  extra_mq_num_ = 0;
-}
-
-MsgProcInit::~MsgProcInit() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgProcInit)
-  SharedDtor();
-}
-
-void MsgProcInit::SharedDtor() {
-}
-
-void MsgProcInit::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgProcInit& MsgProcInit::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgProcInit_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgProcInit::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgProcInit)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  extra_mq_num_ = 0;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgProcInit::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // int32 extra_mq_num = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          extra_mq_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgProcInit::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgProcInit)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // int32 extra_mq_num = 1;
-  if (this->extra_mq_num() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_extra_mq_num(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgProcInit)
-  return target;
-}
-
-size_t MsgProcInit::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgProcInit)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // int32 extra_mq_num = 1;
-  if (this->extra_mq_num() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_extra_mq_num());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgProcInit::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgProcInit*>(
-      &from));
-}
-
-void MsgProcInit::MergeFrom(const MsgProcInit& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgProcInit)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.extra_mq_num() != 0) {
-    _internal_set_extra_mq_num(from._internal_extra_mq_num());
-  }
-}
-
-void MsgProcInit::CopyFrom(const MsgProcInit& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgProcInit)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgProcInit::IsInitialized() const {
-  return true;
-}
-
-void MsgProcInit::InternalSwap(MsgProcInit* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(extra_mq_num_, other->extra_mq_num_);
-}
-
-std::string MsgProcInit::GetTypeName() const {
-  return "bhome_msg.MsgProcInit";
-}
-
-
-// ===================================================================
-
-void MsgProcInitReply::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgProcInitReply_default_instance_._instance.get_mutable()->errmsg_ = const_cast< ::bhome_msg::ErrorMsg*>(
-      ::bhome_msg::ErrorMsg::internal_default_instance());
-}
-class MsgProcInitReply::_Internal {
- public:
-  static const ::bhome_msg::ErrorMsg& errmsg(const MsgProcInitReply* msg);
-};
-
-const ::bhome_msg::ErrorMsg&
-MsgProcInitReply::_Internal::errmsg(const MsgProcInitReply* msg) {
-  return *msg->errmsg_;
-}
-void MsgProcInitReply::clear_errmsg() {
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-}
-void MsgProcInitReply::clear_extra_mqs() {
-  extra_mqs_.Clear();
-}
-MsgProcInitReply::MsgProcInitReply()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgProcInitReply)
-}
-MsgProcInitReply::MsgProcInitReply(const MsgProcInitReply& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr),
-      extra_mqs_(from.extra_mqs_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_errmsg()) {
-    errmsg_ = new ::bhome_msg::ErrorMsg(*from.errmsg_);
-  } else {
-    errmsg_ = nullptr;
-  }
-  proc_index_ = from.proc_index_;
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgProcInitReply)
-}
-
-void MsgProcInitReply::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgProcInitReply_bhome_5fmsg_2eproto.base);
-  ::memset(&errmsg_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&proc_index_) -
-      reinterpret_cast<char*>(&errmsg_)) + sizeof(proc_index_));
-}
-
-MsgProcInitReply::~MsgProcInitReply() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgProcInitReply)
-  SharedDtor();
-}
-
-void MsgProcInitReply::SharedDtor() {
-  if (this != internal_default_instance()) delete errmsg_;
-}
-
-void MsgProcInitReply::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgProcInitReply& MsgProcInitReply::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgProcInitReply_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgProcInitReply::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgProcInitReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  extra_mqs_.Clear();
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-  proc_index_ = 0;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgProcInitReply::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorMsg errmsg = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_errmsg(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // int32 proc_index = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          proc_index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated .bhome_msg.BHAddress extra_mqs = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_extra_mqs(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgProcInitReply::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgProcInitReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::errmsg(this), target, stream);
-  }
-
-  // int32 proc_index = 2;
-  if (this->proc_index() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_proc_index(), target);
-  }
-
-  // repeated .bhome_msg.BHAddress extra_mqs = 3;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_extra_mqs_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(3, this->_internal_extra_mqs(i), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgProcInitReply)
-  return target;
-}
-
-size_t MsgProcInitReply::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgProcInitReply)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .bhome_msg.BHAddress extra_mqs = 3;
-  total_size += 1UL * this->_internal_extra_mqs_size();
-  for (const auto& msg : this->extra_mqs_) {
-    total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
-  }
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *errmsg_);
-  }
-
-  // int32 proc_index = 2;
-  if (this->proc_index() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_proc_index());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgProcInitReply::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgProcInitReply*>(
-      &from));
-}
-
-void MsgProcInitReply::MergeFrom(const MsgProcInitReply& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgProcInitReply)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  extra_mqs_.MergeFrom(from.extra_mqs_);
-  if (from.has_errmsg()) {
-    _internal_mutable_errmsg()->::bhome_msg::ErrorMsg::MergeFrom(from._internal_errmsg());
-  }
-  if (from.proc_index() != 0) {
-    _internal_set_proc_index(from._internal_proc_index());
-  }
-}
-
-void MsgProcInitReply::CopyFrom(const MsgProcInitReply& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgProcInitReply)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgProcInitReply::IsInitialized() const {
-  return true;
-}
-
-void MsgProcInitReply::InternalSwap(MsgProcInitReply* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  extra_mqs_.InternalSwap(&other->extra_mqs_);
-  swap(errmsg_, other->errmsg_);
-  swap(proc_index_, other->proc_index_);
-}
-
-std::string MsgProcInitReply::GetTypeName() const {
-  return "bhome_msg.MsgProcInitReply";
-}
-
-
-// ===================================================================
-
-void MsgRequest::InitAsDefaultInstance() {
-}
-class MsgRequest::_Internal {
- public:
-  static const ::bhome_msg::MsgRegister& register_(const MsgRequest* msg);
-  static const ::bhome_msg::MsgRequestTopic& topic_request(const MsgRequest* msg);
-  static const ::bhome_msg::MsgQueryTopic& topic_query(const MsgRequest* msg);
-};
-
-const ::bhome_msg::MsgRegister&
-MsgRequest::_Internal::register_(const MsgRequest* msg) {
-  return *msg->request_.register__;
-}
-const ::bhome_msg::MsgRequestTopic&
-MsgRequest::_Internal::topic_request(const MsgRequest* msg) {
-  return *msg->request_.topic_request_;
-}
-const ::bhome_msg::MsgQueryTopic&
-MsgRequest::_Internal::topic_query(const MsgRequest* msg) {
-  return *msg->request_.topic_query_;
-}
-void MsgRequest::set_allocated_register_(::bhome_msg::MsgRegister* register_) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  clear_request();
-  if (register_) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      register_ = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, register_, submessage_arena);
-    }
-    set_has_register_();
-    request_.register__ = register_;
-  }
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequest.register)
-}
-void MsgRequest::clear_register_() {
-  if (_internal_has_register_()) {
-    delete request_.register__;
-    clear_has_request();
-  }
-}
-void MsgRequest::set_allocated_topic_request(::bhome_msg::MsgRequestTopic* topic_request) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  clear_request();
-  if (topic_request) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      topic_request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, topic_request, submessage_arena);
-    }
-    set_has_topic_request();
-    request_.topic_request_ = topic_request;
-  }
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequest.topic_request)
-}
-void MsgRequest::clear_topic_request() {
-  if (_internal_has_topic_request()) {
-    delete request_.topic_request_;
-    clear_has_request();
-  }
-}
-void MsgRequest::set_allocated_topic_query(::bhome_msg::MsgQueryTopic* topic_query) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  clear_request();
-  if (topic_query) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      topic_query = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, topic_query, submessage_arena);
-    }
-    set_has_topic_query();
-    request_.topic_query_ = topic_query;
-  }
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequest.topic_query)
-}
-void MsgRequest::clear_topic_query() {
-  if (_internal_has_topic_query()) {
-    delete request_.topic_query_;
-    clear_has_request();
-  }
-}
-MsgRequest::MsgRequest()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgRequest)
-}
-MsgRequest::MsgRequest(const MsgRequest& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  clear_has_request();
-  switch (from.request_case()) {
-    case kRegister: {
-      _internal_mutable_register_()->::bhome_msg::MsgRegister::MergeFrom(from._internal_register_());
-      break;
-    }
-    case kTopicRequest: {
-      _internal_mutable_topic_request()->::bhome_msg::MsgRequestTopic::MergeFrom(from._internal_topic_request());
-      break;
-    }
-    case kTopicQuery: {
-      _internal_mutable_topic_query()->::bhome_msg::MsgQueryTopic::MergeFrom(from._internal_topic_query());
-      break;
-    }
-    case REQUEST_NOT_SET: {
-      break;
-    }
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgRequest)
-}
-
-void MsgRequest::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgRequest_bhome_5fmsg_2eproto.base);
-  clear_has_request();
-}
-
-MsgRequest::~MsgRequest() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgRequest)
-  SharedDtor();
-}
-
-void MsgRequest::SharedDtor() {
-  if (has_request()) {
-    clear_request();
-  }
-}
-
-void MsgRequest::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgRequest& MsgRequest::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgRequest_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgRequest::clear_request() {
-// @@protoc_insertion_point(one_of_clear_start:bhome_msg.MsgRequest)
-  switch (request_case()) {
-    case kRegister: {
-      delete request_.register__;
-      break;
-    }
-    case kTopicRequest: {
-      delete request_.topic_request_;
-      break;
-    }
-    case kTopicQuery: {
-      delete request_.topic_query_;
-      break;
-    }
-    case REQUEST_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = REQUEST_NOT_SET;
-}
-
-
-void MsgRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgRequest)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  clear_request();
-  _internal_metadata_.Clear();
-}
-
-const char* MsgRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.MsgRegister register = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_register_(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.MsgRequestTopic topic_request = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ctx->ParseMessage(_internal_mutable_topic_request(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.MsgQueryTopic topic_query = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr = ctx->ParseMessage(_internal_mutable_topic_query(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgRequest::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgRequest)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgRegister register = 1;
-  if (_internal_has_register_()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::register_(this), target, stream);
-  }
-
-  // .bhome_msg.MsgRequestTopic topic_request = 2;
-  if (_internal_has_topic_request()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        2, _Internal::topic_request(this), target, stream);
-  }
-
-  // .bhome_msg.MsgQueryTopic topic_query = 3;
-  if (_internal_has_topic_query()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        3, _Internal::topic_query(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgRequest)
-  return target;
-}
-
-size_t MsgRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgRequest)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  switch (request_case()) {
-    // .bhome_msg.MsgRegister register = 1;
-    case kRegister: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *request_.register__);
-      break;
-    }
-    // .bhome_msg.MsgRequestTopic topic_request = 2;
-    case kTopicRequest: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *request_.topic_request_);
-      break;
-    }
-    // .bhome_msg.MsgQueryTopic topic_query = 3;
-    case kTopicQuery: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *request_.topic_query_);
-      break;
-    }
-    case REQUEST_NOT_SET: {
-      break;
-    }
-  }
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgRequest::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgRequest*>(
-      &from));
-}
-
-void MsgRequest::MergeFrom(const MsgRequest& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgRequest)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  switch (from.request_case()) {
-    case kRegister: {
-      _internal_mutable_register_()->::bhome_msg::MsgRegister::MergeFrom(from._internal_register_());
-      break;
-    }
-    case kTopicRequest: {
-      _internal_mutable_topic_request()->::bhome_msg::MsgRequestTopic::MergeFrom(from._internal_topic_request());
-      break;
-    }
-    case kTopicQuery: {
-      _internal_mutable_topic_query()->::bhome_msg::MsgQueryTopic::MergeFrom(from._internal_topic_query());
-      break;
-    }
-    case REQUEST_NOT_SET: {
-      break;
-    }
-  }
-}
-
-void MsgRequest::CopyFrom(const MsgRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgRequest::IsInitialized() const {
-  return true;
-}
-
-void MsgRequest::InternalSwap(MsgRequest* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(request_, other->request_);
-  swap(_oneof_case_[0], other->_oneof_case_[0]);
-}
-
-std::string MsgRequest::GetTypeName() const {
-  return "bhome_msg.MsgRequest";
-}
-
-
-// ===================================================================
-
-void MsgReply::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgReply_default_instance_._instance.get_mutable()->err_msg_ = const_cast< ::bhome_msg::ErrorMsg*>(
-      ::bhome_msg::ErrorMsg::internal_default_instance());
-}
-class MsgReply::_Internal {
- public:
-  static const ::bhome_msg::ErrorMsg& err_msg(const MsgReply* msg);
-};
-
-const ::bhome_msg::ErrorMsg&
-MsgReply::_Internal::err_msg(const MsgReply* msg) {
-  return *msg->err_msg_;
-}
-void MsgReply::clear_err_msg() {
-  if (GetArenaNoVirtual() == nullptr && err_msg_ != nullptr) {
-    delete err_msg_;
-  }
-  err_msg_ = nullptr;
-}
-MsgReply::MsgReply()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgReply)
-}
-MsgReply::MsgReply(const MsgReply& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_err_msg()) {
-    err_msg_ = new ::bhome_msg::ErrorMsg(*from.err_msg_);
-  } else {
-    err_msg_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgReply)
-}
-
-void MsgReply::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgReply_bhome_5fmsg_2eproto.base);
-  err_msg_ = nullptr;
-}
-
-MsgReply::~MsgReply() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgReply)
-  SharedDtor();
-}
-
-void MsgReply::SharedDtor() {
-  if (this != internal_default_instance()) delete err_msg_;
-}
-
-void MsgReply::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgReply& MsgReply::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgReply_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgReply::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && err_msg_ != nullptr) {
-    delete err_msg_;
-  }
-  err_msg_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgReply::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorMsg err_msg = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_err_msg(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgReply::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg err_msg = 1;
-  if (this->has_err_msg()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::err_msg(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgReply)
-  return target;
-}
-
-size_t MsgReply::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgReply)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg err_msg = 1;
-  if (this->has_err_msg()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *err_msg_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgReply::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgReply*>(
-      &from));
-}
-
-void MsgReply::MergeFrom(const MsgReply& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgReply)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_err_msg()) {
-    _internal_mutable_err_msg()->::bhome_msg::ErrorMsg::MergeFrom(from._internal_err_msg());
-  }
-}
-
-void MsgReply::CopyFrom(const MsgReply& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgReply)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgReply::IsInitialized() const {
-  return true;
-}
-
-void MsgReply::InternalSwap(MsgReply* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(err_msg_, other->err_msg_);
-}
-
-std::string MsgReply::GetTypeName() const {
-  return "bhome_msg.MsgReply";
-}
-
-
-// ===================================================================
-
-void BHMsgBody::InitAsDefaultInstance() {
-}
-class BHMsgBody::_Internal {
- public:
-  static const ::bhome_msg::MsgRequest& request(const BHMsgBody* msg);
-  static const ::bhome_msg::MsgReply& reply(const BHMsgBody* msg);
-};
-
-const ::bhome_msg::MsgRequest&
-BHMsgBody::_Internal::request(const BHMsgBody* msg) {
-  return *msg->reqrep_.request_;
-}
-const ::bhome_msg::MsgReply&
-BHMsgBody::_Internal::reply(const BHMsgBody* msg) {
-  return *msg->reqrep_.reply_;
-}
-void BHMsgBody::set_allocated_request(::bhome_msg::MsgRequest* request) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  clear_reqrep();
-  if (request) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      request = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, request, submessage_arena);
-    }
-    set_has_request();
-    reqrep_.request_ = request;
-  }
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHMsgBody.request)
-}
-void BHMsgBody::set_allocated_reply(::bhome_msg::MsgReply* reply) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  clear_reqrep();
-  if (reply) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      reply = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, reply, submessage_arena);
-    }
-    set_has_reply();
-    reqrep_.reply_ = reply;
-  }
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHMsgBody.reply)
-}
-BHMsgBody::BHMsgBody()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.BHMsgBody)
-}
-BHMsgBody::BHMsgBody(const BHMsgBody& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  clear_has_reqrep();
-  switch (from.reqrep_case()) {
-    case kRequest: {
-      _internal_mutable_request()->::bhome_msg::MsgRequest::MergeFrom(from._internal_request());
-      break;
-    }
-    case kReply: {
-      _internal_mutable_reply()->::bhome_msg::MsgReply::MergeFrom(from._internal_reply());
-      break;
-    }
-    case REQREP_NOT_SET: {
-      break;
-    }
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.BHMsgBody)
-}
-
-void BHMsgBody::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BHMsgBody_bhome_5fmsg_2eproto.base);
-  clear_has_reqrep();
-}
-
-BHMsgBody::~BHMsgBody() {
-  // @@protoc_insertion_point(destructor:bhome_msg.BHMsgBody)
-  SharedDtor();
-}
-
-void BHMsgBody::SharedDtor() {
-  if (has_reqrep()) {
-    clear_reqrep();
-  }
-}
-
-void BHMsgBody::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const BHMsgBody& BHMsgBody::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BHMsgBody_bhome_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void BHMsgBody::clear_reqrep() {
-// @@protoc_insertion_point(one_of_clear_start:bhome_msg.BHMsgBody)
-  switch (reqrep_case()) {
-    case kRequest: {
-      delete reqrep_.request_;
-      break;
-    }
-    case kReply: {
-      delete reqrep_.reply_;
-      break;
-    }
-    case REQREP_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = REQREP_NOT_SET;
-}
-
-
-void BHMsgBody::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.BHMsgBody)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  clear_reqrep();
-  _internal_metadata_.Clear();
-}
-
-const char* BHMsgBody::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.MsgRequest request = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_request(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.MsgReply reply = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ctx->ParseMessage(_internal_mutable_reply(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* BHMsgBody::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.BHMsgBody)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.MsgRequest request = 1;
-  if (_internal_has_request()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::request(this), target, stream);
-  }
-
-  // .bhome_msg.MsgReply reply = 2;
-  if (_internal_has_reply()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        2, _Internal::reply(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.BHMsgBody)
-  return target;
-}
-
-size_t BHMsgBody::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.BHMsgBody)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  switch (reqrep_case()) {
-    // .bhome_msg.MsgRequest request = 1;
-    case kRequest: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *reqrep_.request_);
-      break;
-    }
-    // .bhome_msg.MsgReply reply = 2;
-    case kReply: {
-      total_size += 1 +
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-          *reqrep_.reply_);
-      break;
-    }
-    case REQREP_NOT_SET: {
-      break;
-    }
-  }
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void BHMsgBody::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const BHMsgBody*>(
-      &from));
-}
-
-void BHMsgBody::MergeFrom(const BHMsgBody& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.BHMsgBody)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  switch (from.reqrep_case()) {
-    case kRequest: {
-      _internal_mutable_request()->::bhome_msg::MsgRequest::MergeFrom(from._internal_request());
-      break;
-    }
-    case kReply: {
-      _internal_mutable_reply()->::bhome_msg::MsgReply::MergeFrom(from._internal_reply());
-      break;
-    }
-    case REQREP_NOT_SET: {
-      break;
-    }
-  }
-}
-
-void BHMsgBody::CopyFrom(const BHMsgBody& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.BHMsgBody)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool BHMsgBody::IsInitialized() const {
-  return true;
-}
-
-void BHMsgBody::InternalSwap(BHMsgBody* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(reqrep_, other->reqrep_);
-  swap(_oneof_case_[0], other->_oneof_case_[0]);
-}
-
-std::string BHMsgBody::GetTypeName() const {
-  return "bhome_msg.BHMsgBody";
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace bhome_msg
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::bhome_msg::BHMsgHead* Arena::CreateMaybeMessage< ::bhome_msg::BHMsgHead >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::BHMsgHead >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgSubscribe* Arena::CreateMaybeMessage< ::bhome_msg::MsgSubscribe >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgSubscribe >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgUnsubscribe* Arena::CreateMaybeMessage< ::bhome_msg::MsgUnsubscribe >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgUnsubscribe >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgRegisterRPC* Arena::CreateMaybeMessage< ::bhome_msg::MsgRegisterRPC >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgRegisterRPC >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgProcInit* Arena::CreateMaybeMessage< ::bhome_msg::MsgProcInit >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgProcInit >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgProcInitReply* Arena::CreateMaybeMessage< ::bhome_msg::MsgProcInitReply >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgProcInitReply >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgRequest* Arena::CreateMaybeMessage< ::bhome_msg::MsgRequest >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgRequest >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgReply* Arena::CreateMaybeMessage< ::bhome_msg::MsgReply >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgReply >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::BHMsgBody* Arena::CreateMaybeMessage< ::bhome_msg::BHMsgBody >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::BHMsgBody >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/proto/bhome_msg.pb.go b/proto/bhome_msg.pb.go
deleted file mode 100644
index 1010ed1..0000000
--- a/proto/bhome_msg.pb.go
+++ /dev/null
@@ -1,2812 +0,0 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: bhome_msg.proto
-
-package bhome_msg
-
-import (
-	fmt "fmt"
-	proto "github.com/gogo/protobuf/proto"
-	io "io"
-	math "math"
-	math_bits "math/bits"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-
-type MsgType int32
-
-const (
-	MsgType_kMsgTypeInvalid       MsgType = 0
-	MsgType_kMsgTypeRawData       MsgType = 1
-	MsgType_kMsgTypeCommonReply   MsgType = 2
-	MsgType_kMsgTypeProcInit      MsgType = 8
-	MsgType_kMsgTypeProcInitReply MsgType = 9
-	MsgType_kMsgTypeRegister      MsgType = 10
-	// kMsgTypeRegisterReply= 11;
-	MsgType_kMsgTypeHeartbeat MsgType = 12
-	// kMsgTypeHeartbeatReply = 13;
-	MsgType_kMsgTypeQueryTopic        MsgType = 14
-	MsgType_kMsgTypeQueryTopicReply   MsgType = 15
-	MsgType_kMsgTypeRequestTopic      MsgType = 16
-	MsgType_kMsgTypeRequestTopicReply MsgType = 17
-	MsgType_kMsgTypeRegisterRPC       MsgType = 18
-	MsgType_kMsgTypePublish           MsgType = 20
-	// kMsgTypePublishReply = 21;
-	MsgType_kMsgTypeSubscribe MsgType = 22
-	// kMsgTypeSubscribeReply = 23;
-	MsgType_kMsgTypeUnsubscribe MsgType = 24
-	// kMsgTypeUnsubscribeReply = 25;
-	MsgType_kMsgTypeUnregister MsgType = 26
-	// kMsgTypeUnregisterReply = 27;
-	MsgType_kMsgTypeQueryProc      MsgType = 28
-	MsgType_kMsgTypeQueryProcReply MsgType = 29
-)
-
-var MsgType_name = map[int32]string{
-	0:  "kMsgTypeInvalid",
-	1:  "kMsgTypeRawData",
-	2:  "kMsgTypeCommonReply",
-	8:  "kMsgTypeProcInit",
-	9:  "kMsgTypeProcInitReply",
-	10: "kMsgTypeRegister",
-	12: "kMsgTypeHeartbeat",
-	14: "kMsgTypeQueryTopic",
-	15: "kMsgTypeQueryTopicReply",
-	16: "kMsgTypeRequestTopic",
-	17: "kMsgTypeRequestTopicReply",
-	18: "kMsgTypeRegisterRPC",
-	20: "kMsgTypePublish",
-	22: "kMsgTypeSubscribe",
-	24: "kMsgTypeUnsubscribe",
-	26: "kMsgTypeUnregister",
-	28: "kMsgTypeQueryProc",
-	29: "kMsgTypeQueryProcReply",
-}
-
-var MsgType_value = map[string]int32{
-	"kMsgTypeInvalid":           0,
-	"kMsgTypeRawData":           1,
-	"kMsgTypeCommonReply":       2,
-	"kMsgTypeProcInit":          8,
-	"kMsgTypeProcInitReply":     9,
-	"kMsgTypeRegister":          10,
-	"kMsgTypeHeartbeat":         12,
-	"kMsgTypeQueryTopic":        14,
-	"kMsgTypeQueryTopicReply":   15,
-	"kMsgTypeRequestTopic":      16,
-	"kMsgTypeRequestTopicReply": 17,
-	"kMsgTypeRegisterRPC":       18,
-	"kMsgTypePublish":           20,
-	"kMsgTypeSubscribe":         22,
-	"kMsgTypeUnsubscribe":       24,
-	"kMsgTypeUnregister":        26,
-	"kMsgTypeQueryProc":         28,
-	"kMsgTypeQueryProcReply":    29,
-}
-
-func (x MsgType) String() string {
-	return proto.EnumName(MsgType_name, int32(x))
-}
-
-func (MsgType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{0}
-}
-
-type BHMsgHead struct {
-	MsgId     []byte       `protobuf:"bytes,1,opt,name=msg_id,json=msgId,proto3" json:"msg_id,omitempty"`
-	Route     []*BHAddress `protobuf:"bytes,2,rep,name=route,proto3" json:"route,omitempty"`
-	Timestamp int64        `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	Type      int32        `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"`
-	SsnId     uint64       `protobuf:"varint,5,opt,name=ssn_id,json=ssnId,proto3" json:"ssn_id,omitempty"`
-	ProcId    []byte       `protobuf:"bytes,6,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
-	Topic     []byte       `protobuf:"bytes,7,opt,name=topic,proto3" json:"topic,omitempty"`
-	Dest      *BHAddress   `protobuf:"bytes,8,opt,name=dest,proto3" json:"dest,omitempty"`
-}
-
-func (m *BHMsgHead) Reset()         { *m = BHMsgHead{} }
-func (m *BHMsgHead) String() string { return proto.CompactTextString(m) }
-func (*BHMsgHead) ProtoMessage()    {}
-func (*BHMsgHead) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{0}
-}
-func (m *BHMsgHead) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *BHMsgHead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_BHMsgHead.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *BHMsgHead) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_BHMsgHead.Merge(m, src)
-}
-func (m *BHMsgHead) XXX_Size() int {
-	return m.Size()
-}
-func (m *BHMsgHead) XXX_DiscardUnknown() {
-	xxx_messageInfo_BHMsgHead.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_BHMsgHead proto.InternalMessageInfo
-
-func (m *BHMsgHead) GetMsgId() []byte {
-	if m != nil {
-		return m.MsgId
-	}
-	return nil
-}
-
-func (m *BHMsgHead) GetRoute() []*BHAddress {
-	if m != nil {
-		return m.Route
-	}
-	return nil
-}
-
-func (m *BHMsgHead) GetTimestamp() int64 {
-	if m != nil {
-		return m.Timestamp
-	}
-	return 0
-}
-
-func (m *BHMsgHead) GetType() int32 {
-	if m != nil {
-		return m.Type
-	}
-	return 0
-}
-
-func (m *BHMsgHead) GetSsnId() uint64 {
-	if m != nil {
-		return m.SsnId
-	}
-	return 0
-}
-
-func (m *BHMsgHead) GetProcId() []byte {
-	if m != nil {
-		return m.ProcId
-	}
-	return nil
-}
-
-func (m *BHMsgHead) GetTopic() []byte {
-	if m != nil {
-		return m.Topic
-	}
-	return nil
-}
-
-func (m *BHMsgHead) GetDest() *BHAddress {
-	if m != nil {
-		return m.Dest
-	}
-	return nil
-}
-
-type MsgSubscribe struct {
-	Topics  *MsgTopicList `protobuf:"bytes,1,opt,name=topics,proto3" json:"topics,omitempty"`
-	Network bool          `protobuf:"varint,2,opt,name=network,proto3" json:"network,omitempty"`
-}
-
-func (m *MsgSubscribe) Reset()         { *m = MsgSubscribe{} }
-func (m *MsgSubscribe) String() string { return proto.CompactTextString(m) }
-func (*MsgSubscribe) ProtoMessage()    {}
-func (*MsgSubscribe) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{1}
-}
-func (m *MsgSubscribe) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgSubscribe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgSubscribe.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgSubscribe) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgSubscribe.Merge(m, src)
-}
-func (m *MsgSubscribe) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgSubscribe) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgSubscribe.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgSubscribe proto.InternalMessageInfo
-
-func (m *MsgSubscribe) GetTopics() *MsgTopicList {
-	if m != nil {
-		return m.Topics
-	}
-	return nil
-}
-
-func (m *MsgSubscribe) GetNetwork() bool {
-	if m != nil {
-		return m.Network
-	}
-	return false
-}
-
-type MsgUnsubscribe struct {
-	Topics  *MsgTopicList `protobuf:"bytes,1,opt,name=topics,proto3" json:"topics,omitempty"`
-	Network bool          `protobuf:"varint,2,opt,name=network,proto3" json:"network,omitempty"`
-}
-
-func (m *MsgUnsubscribe) Reset()         { *m = MsgUnsubscribe{} }
-func (m *MsgUnsubscribe) String() string { return proto.CompactTextString(m) }
-func (*MsgUnsubscribe) ProtoMessage()    {}
-func (*MsgUnsubscribe) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{2}
-}
-func (m *MsgUnsubscribe) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgUnsubscribe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgUnsubscribe.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgUnsubscribe) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgUnsubscribe.Merge(m, src)
-}
-func (m *MsgUnsubscribe) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgUnsubscribe) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgUnsubscribe.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgUnsubscribe proto.InternalMessageInfo
-
-func (m *MsgUnsubscribe) GetTopics() *MsgTopicList {
-	if m != nil {
-		return m.Topics
-	}
-	return nil
-}
-
-func (m *MsgUnsubscribe) GetNetwork() bool {
-	if m != nil {
-		return m.Network
-	}
-	return false
-}
-
-type MsgRegisterRPC struct {
-	Topics *MsgTopicList `protobuf:"bytes,1,opt,name=topics,proto3" json:"topics,omitempty"`
-}
-
-func (m *MsgRegisterRPC) Reset()         { *m = MsgRegisterRPC{} }
-func (m *MsgRegisterRPC) String() string { return proto.CompactTextString(m) }
-func (*MsgRegisterRPC) ProtoMessage()    {}
-func (*MsgRegisterRPC) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{3}
-}
-func (m *MsgRegisterRPC) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgRegisterRPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgRegisterRPC.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgRegisterRPC) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgRegisterRPC.Merge(m, src)
-}
-func (m *MsgRegisterRPC) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgRegisterRPC) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgRegisterRPC.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRegisterRPC proto.InternalMessageInfo
-
-func (m *MsgRegisterRPC) GetTopics() *MsgTopicList {
-	if m != nil {
-		return m.Topics
-	}
-	return nil
-}
-
-type MsgProcInit struct {
-	ExtraMqNum int32 `protobuf:"varint,1,opt,name=extra_mq_num,json=extraMqNum,proto3" json:"extra_mq_num,omitempty"`
-}
-
-func (m *MsgProcInit) Reset()         { *m = MsgProcInit{} }
-func (m *MsgProcInit) String() string { return proto.CompactTextString(m) }
-func (*MsgProcInit) ProtoMessage()    {}
-func (*MsgProcInit) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{4}
-}
-func (m *MsgProcInit) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgProcInit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgProcInit.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgProcInit) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgProcInit.Merge(m, src)
-}
-func (m *MsgProcInit) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgProcInit) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgProcInit.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgProcInit proto.InternalMessageInfo
-
-func (m *MsgProcInit) GetExtraMqNum() int32 {
-	if m != nil {
-		return m.ExtraMqNum
-	}
-	return 0
-}
-
-type MsgProcInitReply struct {
-	Errmsg    *ErrorMsg    `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
-	ProcIndex int32        `protobuf:"varint,2,opt,name=proc_index,json=procIndex,proto3" json:"proc_index,omitempty"`
-	ExtraMqs  []*BHAddress `protobuf:"bytes,3,rep,name=extra_mqs,json=extraMqs,proto3" json:"extra_mqs,omitempty"`
-}
-
-func (m *MsgProcInitReply) Reset()         { *m = MsgProcInitReply{} }
-func (m *MsgProcInitReply) String() string { return proto.CompactTextString(m) }
-func (*MsgProcInitReply) ProtoMessage()    {}
-func (*MsgProcInitReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{5}
-}
-func (m *MsgProcInitReply) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgProcInitReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgProcInitReply.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgProcInitReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgProcInitReply.Merge(m, src)
-}
-func (m *MsgProcInitReply) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgProcInitReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgProcInitReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgProcInitReply proto.InternalMessageInfo
-
-func (m *MsgProcInitReply) GetErrmsg() *ErrorMsg {
-	if m != nil {
-		return m.Errmsg
-	}
-	return nil
-}
-
-func (m *MsgProcInitReply) GetProcIndex() int32 {
-	if m != nil {
-		return m.ProcIndex
-	}
-	return 0
-}
-
-func (m *MsgProcInitReply) GetExtraMqs() []*BHAddress {
-	if m != nil {
-		return m.ExtraMqs
-	}
-	return nil
-}
-
-type MsgRequest struct {
-	// oneof body;
-	//
-	// Types that are valid to be assigned to Request:
-	//	*MsgRequest_Register
-	//	*MsgRequest_TopicRequest
-	//	*MsgRequest_TopicQuery
-	Request isMsgRequest_Request `protobuf_oneof:"request"`
-}
-
-func (m *MsgRequest) Reset()         { *m = MsgRequest{} }
-func (m *MsgRequest) String() string { return proto.CompactTextString(m) }
-func (*MsgRequest) ProtoMessage()    {}
-func (*MsgRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{6}
-}
-func (m *MsgRequest) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgRequest.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgRequest.Merge(m, src)
-}
-func (m *MsgRequest) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRequest proto.InternalMessageInfo
-
-type isMsgRequest_Request interface {
-	isMsgRequest_Request()
-	MarshalTo([]byte) (int, error)
-	Size() int
-}
-
-type MsgRequest_Register struct {
-	Register *MsgRegister `protobuf:"bytes,1,opt,name=register,proto3,oneof"`
-}
-type MsgRequest_TopicRequest struct {
-	TopicRequest *MsgRequestTopic `protobuf:"bytes,2,opt,name=topic_request,json=topicRequest,proto3,oneof"`
-}
-type MsgRequest_TopicQuery struct {
-	TopicQuery *MsgQueryTopic `protobuf:"bytes,3,opt,name=topic_query,json=topicQuery,proto3,oneof"`
-}
-
-func (*MsgRequest_Register) isMsgRequest_Request()     {}
-func (*MsgRequest_TopicRequest) isMsgRequest_Request() {}
-func (*MsgRequest_TopicQuery) isMsgRequest_Request()   {}
-
-func (m *MsgRequest) GetRequest() isMsgRequest_Request {
-	if m != nil {
-		return m.Request
-	}
-	return nil
-}
-
-func (m *MsgRequest) GetRegister() *MsgRegister {
-	if x, ok := m.GetRequest().(*MsgRequest_Register); ok {
-		return x.Register
-	}
-	return nil
-}
-
-func (m *MsgRequest) GetTopicRequest() *MsgRequestTopic {
-	if x, ok := m.GetRequest().(*MsgRequest_TopicRequest); ok {
-		return x.TopicRequest
-	}
-	return nil
-}
-
-func (m *MsgRequest) GetTopicQuery() *MsgQueryTopic {
-	if x, ok := m.GetRequest().(*MsgRequest_TopicQuery); ok {
-		return x.TopicQuery
-	}
-	return nil
-}
-
-// XXX_OneofFuncs is for the internal use of the proto package.
-func (*MsgRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
-	return _MsgRequest_OneofMarshaler, _MsgRequest_OneofUnmarshaler, _MsgRequest_OneofSizer, []interface{}{
-		(*MsgRequest_Register)(nil),
-		(*MsgRequest_TopicRequest)(nil),
-		(*MsgRequest_TopicQuery)(nil),
-	}
-}
-
-func _MsgRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
-	m := msg.(*MsgRequest)
-	// request
-	switch x := m.Request.(type) {
-	case *MsgRequest_Register:
-		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.Register); err != nil {
-			return err
-		}
-	case *MsgRequest_TopicRequest:
-		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.TopicRequest); err != nil {
-			return err
-		}
-	case *MsgRequest_TopicQuery:
-		_ = b.EncodeVarint(3<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.TopicQuery); err != nil {
-			return err
-		}
-	case nil:
-	default:
-		return fmt.Errorf("MsgRequest.Request has unexpected type %T", x)
-	}
-	return nil
-}
-
-func _MsgRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
-	m := msg.(*MsgRequest)
-	switch tag {
-	case 1: // request.register
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(MsgRegister)
-		err := b.DecodeMessage(msg)
-		m.Request = &MsgRequest_Register{msg}
-		return true, err
-	case 2: // request.topic_request
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(MsgRequestTopic)
-		err := b.DecodeMessage(msg)
-		m.Request = &MsgRequest_TopicRequest{msg}
-		return true, err
-	case 3: // request.topic_query
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(MsgQueryTopic)
-		err := b.DecodeMessage(msg)
-		m.Request = &MsgRequest_TopicQuery{msg}
-		return true, err
-	default:
-		return false, nil
-	}
-}
-
-func _MsgRequest_OneofSizer(msg proto.Message) (n int) {
-	m := msg.(*MsgRequest)
-	// request
-	switch x := m.Request.(type) {
-	case *MsgRequest_Register:
-		s := proto.Size(x.Register)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case *MsgRequest_TopicRequest:
-		s := proto.Size(x.TopicRequest)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case *MsgRequest_TopicQuery:
-		s := proto.Size(x.TopicQuery)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case nil:
-	default:
-		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
-	}
-	return n
-}
-
-type MsgReply struct {
-	ErrMsg *ErrorMsg `protobuf:"bytes,1,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"`
-}
-
-func (m *MsgReply) Reset()         { *m = MsgReply{} }
-func (m *MsgReply) String() string { return proto.CompactTextString(m) }
-func (*MsgReply) ProtoMessage()    {}
-func (*MsgReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{7}
-}
-func (m *MsgReply) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgReply.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgReply.Merge(m, src)
-}
-func (m *MsgReply) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgReply proto.InternalMessageInfo
-
-func (m *MsgReply) GetErrMsg() *ErrorMsg {
-	if m != nil {
-		return m.ErrMsg
-	}
-	return nil
-}
-
-type BHMsgBody struct {
-	// Types that are valid to be assigned to Reqrep:
-	//	*BHMsgBody_Request
-	//	*BHMsgBody_Reply
-	Reqrep isBHMsgBody_Reqrep `protobuf_oneof:"reqrep"`
-}
-
-func (m *BHMsgBody) Reset()         { *m = BHMsgBody{} }
-func (m *BHMsgBody) String() string { return proto.CompactTextString(m) }
-func (*BHMsgBody) ProtoMessage()    {}
-func (*BHMsgBody) Descriptor() ([]byte, []int) {
-	return fileDescriptor_88ce6d52215a3d3f, []int{8}
-}
-func (m *BHMsgBody) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *BHMsgBody) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_BHMsgBody.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *BHMsgBody) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_BHMsgBody.Merge(m, src)
-}
-func (m *BHMsgBody) XXX_Size() int {
-	return m.Size()
-}
-func (m *BHMsgBody) XXX_DiscardUnknown() {
-	xxx_messageInfo_BHMsgBody.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_BHMsgBody proto.InternalMessageInfo
-
-type isBHMsgBody_Reqrep interface {
-	isBHMsgBody_Reqrep()
-	MarshalTo([]byte) (int, error)
-	Size() int
-}
-
-type BHMsgBody_Request struct {
-	Request *MsgRequest `protobuf:"bytes,1,opt,name=request,proto3,oneof"`
-}
-type BHMsgBody_Reply struct {
-	Reply *MsgReply `protobuf:"bytes,2,opt,name=reply,proto3,oneof"`
-}
-
-func (*BHMsgBody_Request) isBHMsgBody_Reqrep() {}
-func (*BHMsgBody_Reply) isBHMsgBody_Reqrep()   {}
-
-func (m *BHMsgBody) GetReqrep() isBHMsgBody_Reqrep {
-	if m != nil {
-		return m.Reqrep
-	}
-	return nil
-}
-
-func (m *BHMsgBody) GetRequest() *MsgRequest {
-	if x, ok := m.GetReqrep().(*BHMsgBody_Request); ok {
-		return x.Request
-	}
-	return nil
-}
-
-func (m *BHMsgBody) GetReply() *MsgReply {
-	if x, ok := m.GetReqrep().(*BHMsgBody_Reply); ok {
-		return x.Reply
-	}
-	return nil
-}
-
-// XXX_OneofFuncs is for the internal use of the proto package.
-func (*BHMsgBody) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
-	return _BHMsgBody_OneofMarshaler, _BHMsgBody_OneofUnmarshaler, _BHMsgBody_OneofSizer, []interface{}{
-		(*BHMsgBody_Request)(nil),
-		(*BHMsgBody_Reply)(nil),
-	}
-}
-
-func _BHMsgBody_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
-	m := msg.(*BHMsgBody)
-	// reqrep
-	switch x := m.Reqrep.(type) {
-	case *BHMsgBody_Request:
-		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.Request); err != nil {
-			return err
-		}
-	case *BHMsgBody_Reply:
-		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
-		if err := b.EncodeMessage(x.Reply); err != nil {
-			return err
-		}
-	case nil:
-	default:
-		return fmt.Errorf("BHMsgBody.Reqrep has unexpected type %T", x)
-	}
-	return nil
-}
-
-func _BHMsgBody_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
-	m := msg.(*BHMsgBody)
-	switch tag {
-	case 1: // reqrep.request
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(MsgRequest)
-		err := b.DecodeMessage(msg)
-		m.Reqrep = &BHMsgBody_Request{msg}
-		return true, err
-	case 2: // reqrep.reply
-		if wire != proto.WireBytes {
-			return true, proto.ErrInternalBadWireType
-		}
-		msg := new(MsgReply)
-		err := b.DecodeMessage(msg)
-		m.Reqrep = &BHMsgBody_Reply{msg}
-		return true, err
-	default:
-		return false, nil
-	}
-}
-
-func _BHMsgBody_OneofSizer(msg proto.Message) (n int) {
-	m := msg.(*BHMsgBody)
-	// reqrep
-	switch x := m.Reqrep.(type) {
-	case *BHMsgBody_Request:
-		s := proto.Size(x.Request)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case *BHMsgBody_Reply:
-		s := proto.Size(x.Reply)
-		n += 1 // tag and wire
-		n += proto.SizeVarint(uint64(s))
-		n += s
-	case nil:
-	default:
-		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
-	}
-	return n
-}
-
-func init() {
-	proto.RegisterEnum("bhome_msg.MsgType", MsgType_name, MsgType_value)
-	proto.RegisterType((*BHMsgHead)(nil), "bhome_msg.BHMsgHead")
-	proto.RegisterType((*MsgSubscribe)(nil), "bhome_msg.MsgSubscribe")
-	proto.RegisterType((*MsgUnsubscribe)(nil), "bhome_msg.MsgUnsubscribe")
-	proto.RegisterType((*MsgRegisterRPC)(nil), "bhome_msg.MsgRegisterRPC")
-	proto.RegisterType((*MsgProcInit)(nil), "bhome_msg.MsgProcInit")
-	proto.RegisterType((*MsgProcInitReply)(nil), "bhome_msg.MsgProcInitReply")
-	proto.RegisterType((*MsgRequest)(nil), "bhome_msg.MsgRequest")
-	proto.RegisterType((*MsgReply)(nil), "bhome_msg.MsgReply")
-	proto.RegisterType((*BHMsgBody)(nil), "bhome_msg.BHMsgBody")
-}
-
-func init() { proto.RegisterFile("bhome_msg.proto", fileDescriptor_88ce6d52215a3d3f) }
-
-var fileDescriptor_88ce6d52215a3d3f = []byte{
-	// 809 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x6e, 0xdb, 0x46,
-	0x10, 0x16, 0x2d, 0x53, 0xa2, 0x46, 0x6a, 0xbc, 0x19, 0xc9, 0x36, 0xa3, 0xc6, 0x02, 0xc1, 0x4b,
-	0x85, 0xa4, 0xb0, 0x11, 0xb5, 0x87, 0x02, 0xbd, 0xd4, 0x72, 0x0a, 0xd0, 0x40, 0x55, 0xb8, 0xdb,
-	0xe6, 0xd0, 0xf6, 0x20, 0x50, 0xe6, 0x82, 0x21, 0x22, 0xfe, 0x68, 0x77, 0xd9, 0x44, 0x6f, 0xd1,
-	0xf6, 0x8d, 0x7a, 0xeb, 0xa5, 0x40, 0x8e, 0x3d, 0x16, 0xf6, 0x0b, 0xf4, 0x11, 0x8a, 0x5d, 0x92,
-	0x12, 0xe3, 0xc4, 0x31, 0x7a, 0xc8, 0x6d, 0xf7, 0x9b, 0xf9, 0xbe, 0xf9, 0xd9, 0x19, 0x12, 0xf6,
-	0x16, 0xcf, 0xd3, 0x98, 0xcd, 0x63, 0x11, 0x1e, 0x67, 0x3c, 0x95, 0x29, 0x76, 0x36, 0xc0, 0xb0,
-	0xbf, 0x39, 0xce, 0xfd, 0x2c, 0x2a, 0xec, 0xc3, 0x3d, 0xc6, 0x79, 0xca, 0xb7, 0x04, 0xf7, 0x5f,
-	0x03, 0x3a, 0x53, 0x6f, 0x26, 0x42, 0x8f, 0xf9, 0x01, 0xee, 0x43, 0x4b, 0xf9, 0x47, 0x81, 0x6d,
-	0x38, 0xc6, 0xb8, 0x47, 0xcd, 0x58, 0x84, 0xe7, 0x01, 0x3e, 0x02, 0x93, 0xa7, 0xb9, 0x64, 0xf6,
-	0x8e, 0xd3, 0x1c, 0x77, 0x27, 0x83, 0xe3, 0x6d, 0xd8, 0xa9, 0x77, 0x1a, 0x04, 0x9c, 0x09, 0x41,
-	0x0b, 0x17, 0x7c, 0x08, 0x1d, 0x19, 0xc5, 0x4c, 0x48, 0x3f, 0xce, 0xec, 0xa6, 0x63, 0x8c, 0x9b,
-	0x74, 0x0b, 0x20, 0xc2, 0xae, 0x5c, 0x67, 0xcc, 0xde, 0x75, 0x8c, 0xb1, 0x49, 0xf5, 0x59, 0x05,
-	0x15, 0x22, 0x51, 0x41, 0x4d, 0xc7, 0x18, 0xef, 0x52, 0x53, 0x88, 0xe4, 0x3c, 0xc0, 0x43, 0x68,
-	0x67, 0x3c, 0xbd, 0x54, 0x78, 0x4b, 0x27, 0xd3, 0x52, 0xd7, 0xf3, 0x00, 0x07, 0x60, 0xca, 0x34,
-	0x8b, 0x2e, 0xed, 0x76, 0x91, 0xa3, 0xbe, 0xe0, 0x18, 0x76, 0x03, 0x26, 0xa4, 0x6d, 0x39, 0xc6,
-	0xad, 0x29, 0x6a, 0x0f, 0xf7, 0x47, 0xe8, 0xcd, 0x44, 0xf8, 0x7d, 0xbe, 0x10, 0x97, 0x3c, 0x5a,
-	0x30, 0x3c, 0x81, 0x96, 0x96, 0x10, 0xba, 0xe8, 0xee, 0xe4, 0xb0, 0xc6, 0x9d, 0x89, 0xf0, 0x07,
-	0x65, 0xfb, 0x26, 0x12, 0x92, 0x96, 0x6e, 0x68, 0x43, 0x3b, 0x61, 0xf2, 0x65, 0xca, 0x5f, 0xd8,
-	0x3b, 0x8e, 0x31, 0xb6, 0x68, 0x75, 0x75, 0x7f, 0x86, 0x7b, 0x33, 0x11, 0x3e, 0x4b, 0xc4, 0x87,
-	0x10, 0x3f, 0xd5, 0xe2, 0x94, 0x85, 0x91, 0x90, 0x8c, 0xd3, 0x8b, 0xb3, 0xff, 0x2d, 0xee, 0x9e,
-	0x40, 0x77, 0x26, 0xc2, 0x0b, 0xd5, 0xc7, 0x24, 0x92, 0xe8, 0x40, 0x8f, 0xbd, 0x92, 0xdc, 0x9f,
-	0xc7, 0xab, 0x79, 0x92, 0xc7, 0x5a, 0xc5, 0xa4, 0xa0, 0xb1, 0xd9, 0xea, 0xdb, 0x3c, 0x76, 0x7f,
-	0x33, 0x80, 0xd4, 0x18, 0x94, 0x65, 0xcb, 0x35, 0x3e, 0x86, 0x16, 0xe3, 0x3c, 0x16, 0x61, 0x19,
-	0xb6, 0x5f, 0x0b, 0xfb, 0xb5, 0x9a, 0x2f, 0x95, 0x66, 0xe9, 0x82, 0x47, 0x00, 0xc5, 0x33, 0x26,
-	0x01, 0x7b, 0xa5, 0x4b, 0x32, 0x69, 0x47, 0xbf, 0xa4, 0x02, 0xf0, 0x09, 0x74, 0xaa, 0x14, 0x84,
-	0xdd, 0x7c, 0xcf, 0x78, 0x59, 0x65, 0x56, 0xc2, 0xfd, 0xcb, 0x00, 0xd0, 0x8d, 0x58, 0xe5, 0x4c,
-	0x48, 0xfc, 0x1c, 0x2c, 0x5e, 0xf6, 0xa4, 0xcc, 0xe7, 0xe0, 0xcd, 0x36, 0x54, 0x1d, 0xf3, 0x1a,
-	0x74, 0xe3, 0x89, 0xa7, 0xf0, 0x91, 0xee, 0xc9, 0x9c, 0x17, 0x32, 0x3a, 0xb3, 0xee, 0x64, 0x78,
-	0x93, 0xaa, 0x8d, 0xba, 0x91, 0x5e, 0x83, 0xf6, 0x34, 0xa5, 0x0a, 0xfc, 0x25, 0x74, 0x0b, 0x89,
-	0x55, 0xce, 0xf8, 0x5a, 0xcf, 0x7a, 0x77, 0x62, 0xbf, 0x29, 0xf0, 0x9d, 0x32, 0x55, 0x74, 0xd0,
-	0xee, 0x1a, 0x9a, 0x76, 0xa0, 0x5d, 0x46, 0x76, 0xbf, 0x00, 0x4b, 0x87, 0x52, 0xad, 0xfd, 0x14,
-	0xda, 0x8c, 0xeb, 0xfd, 0xbc, 0xab, 0xb7, 0x33, 0x11, 0xba, 0x79, 0xb9, 0xbb, 0xd3, 0x34, 0x58,
-	0xe3, 0x93, 0x8d, 0x62, 0x49, 0xdd, 0x7f, 0x67, 0x2d, 0x5e, 0x83, 0x56, 0x7e, 0xf8, 0x18, 0x4c,
-	0xae, 0xc2, 0x96, 0xc5, 0xf7, 0x6f, 0x12, 0xb2, 0xe5, 0xda, 0x6b, 0xd0, 0xc2, 0x67, 0x6a, 0x41,
-	0x8b, 0xb3, 0x15, 0x67, 0xd9, 0xa3, 0x3f, 0x9a, 0xd0, 0x56, 0xe3, 0xa5, 0x96, 0xb7, 0x0f, 0x7b,
-	0x2f, 0xca, 0xf3, 0x79, 0xf2, 0x8b, 0xbf, 0x8c, 0x02, 0xd2, 0xa8, 0x83, 0xd4, 0x7f, 0xf9, 0xd4,
-	0x97, 0x3e, 0x31, 0xf0, 0x10, 0xfa, 0x15, 0x78, 0x96, 0xc6, 0x71, 0x9a, 0x68, 0x7d, 0xb2, 0x83,
-	0x03, 0x20, 0x95, 0xa1, 0x9a, 0x33, 0x62, 0xe1, 0x03, 0xd8, 0xbf, 0x89, 0x16, 0x84, 0x4e, 0x9d,
-	0x50, 0xbd, 0x2d, 0x01, 0xdc, 0x87, 0xfb, 0x15, 0xea, 0x31, 0x9f, 0xcb, 0x05, 0xf3, 0x25, 0xe9,
-	0xe1, 0x01, 0x60, 0x05, 0x6f, 0x1f, 0x83, 0xdc, 0xc3, 0x8f, 0xe1, 0xf0, 0x6d, 0xbc, 0x88, 0xb0,
-	0x87, 0x36, 0x0c, 0xb6, 0x11, 0xb6, 0x23, 0x40, 0x08, 0x1e, 0xc1, 0x83, 0x77, 0x59, 0x0a, 0xe2,
-	0xfd, 0x7a, 0x91, 0xb5, 0x45, 0x25, 0x58, 0x6f, 0xc9, 0x45, 0xbe, 0x58, 0x46, 0xe2, 0x39, 0x19,
-	0xd4, 0x53, 0xde, 0x7c, 0x8e, 0xc8, 0x41, 0x5d, 0xa4, 0xf6, 0x29, 0x21, 0x76, 0xbd, 0x96, 0x67,
-	0x49, 0x35, 0xca, 0x64, 0x58, 0xd7, 0xd1, 0xb5, 0xa8, 0x86, 0x91, 0x87, 0x38, 0x84, 0x83, 0xb7,
-	0xe0, 0x22, 0xd1, 0xa3, 0xc9, 0xef, 0x06, 0x58, 0x45, 0xe6, 0x17, 0x67, 0xf8, 0x15, 0x98, 0xda,
-	0x01, 0x6f, 0x9d, 0xde, 0xe1, 0xd1, 0x6d, 0x96, 0x62, 0x6e, 0x9f, 0x42, 0xbb, 0x5a, 0x8b, 0xf7,
-	0xac, 0xd0, 0x1d, 0x2a, 0xd3, 0x4f, 0xfe, 0xbc, 0x1a, 0x19, 0xaf, 0xaf, 0x46, 0xc6, 0x3f, 0x57,
-	0x23, 0xe3, 0xd7, 0xeb, 0x51, 0xe3, 0xf5, 0xf5, 0xa8, 0xf1, 0xf7, 0xf5, 0xa8, 0xe1, 0x35, 0x7f,
-	0xea, 0x1e, 0x9f, 0x6c, 0xb8, 0x8b, 0x96, 0xfe, 0x79, 0x7d, 0xf6, 0x5f, 0x00, 0x00, 0x00, 0xff,
-	0xff, 0x27, 0x28, 0x5d, 0xb5, 0x00, 0x07, 0x00, 0x00,
-}
-
-func (m *BHMsgHead) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *BHMsgHead) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.MsgId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(len(m.MsgId)))
-		i += copy(dAtA[i:], m.MsgId)
-	}
-	if len(m.Route) > 0 {
-		for _, msg := range m.Route {
-			dAtA[i] = 0x12
-			i++
-			i = encodeVarintBhomeMsg(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
-			if err != nil {
-				return 0, err
-			}
-			i += n
-		}
-	}
-	if m.Timestamp != 0 {
-		dAtA[i] = 0x18
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Timestamp))
-	}
-	if m.Type != 0 {
-		dAtA[i] = 0x20
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Type))
-	}
-	if m.SsnId != 0 {
-		dAtA[i] = 0x28
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.SsnId))
-	}
-	if len(m.ProcId) > 0 {
-		dAtA[i] = 0x32
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(len(m.ProcId)))
-		i += copy(dAtA[i:], m.ProcId)
-	}
-	if len(m.Topic) > 0 {
-		dAtA[i] = 0x3a
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(len(m.Topic)))
-		i += copy(dAtA[i:], m.Topic)
-	}
-	if m.Dest != nil {
-		dAtA[i] = 0x42
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Dest.Size()))
-		n1, err1 := m.Dest.MarshalTo(dAtA[i:])
-		if err1 != nil {
-			return 0, err1
-		}
-		i += n1
-	}
-	return i, nil
-}
-
-func (m *MsgSubscribe) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgSubscribe) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Topics != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Topics.Size()))
-		n2, err2 := m.Topics.MarshalTo(dAtA[i:])
-		if err2 != nil {
-			return 0, err2
-		}
-		i += n2
-	}
-	if m.Network {
-		dAtA[i] = 0x10
-		i++
-		if m.Network {
-			dAtA[i] = 1
-		} else {
-			dAtA[i] = 0
-		}
-		i++
-	}
-	return i, nil
-}
-
-func (m *MsgUnsubscribe) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgUnsubscribe) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Topics != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Topics.Size()))
-		n3, err3 := m.Topics.MarshalTo(dAtA[i:])
-		if err3 != nil {
-			return 0, err3
-		}
-		i += n3
-	}
-	if m.Network {
-		dAtA[i] = 0x10
-		i++
-		if m.Network {
-			dAtA[i] = 1
-		} else {
-			dAtA[i] = 0
-		}
-		i++
-	}
-	return i, nil
-}
-
-func (m *MsgRegisterRPC) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgRegisterRPC) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Topics != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Topics.Size()))
-		n4, err4 := m.Topics.MarshalTo(dAtA[i:])
-		if err4 != nil {
-			return 0, err4
-		}
-		i += n4
-	}
-	return i, nil
-}
-
-func (m *MsgProcInit) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgProcInit) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.ExtraMqNum != 0 {
-		dAtA[i] = 0x8
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.ExtraMqNum))
-	}
-	return i, nil
-}
-
-func (m *MsgProcInitReply) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgProcInitReply) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Errmsg.Size()))
-		n5, err5 := m.Errmsg.MarshalTo(dAtA[i:])
-		if err5 != nil {
-			return 0, err5
-		}
-		i += n5
-	}
-	if m.ProcIndex != 0 {
-		dAtA[i] = 0x10
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.ProcIndex))
-	}
-	if len(m.ExtraMqs) > 0 {
-		for _, msg := range m.ExtraMqs {
-			dAtA[i] = 0x1a
-			i++
-			i = encodeVarintBhomeMsg(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
-			if err != nil {
-				return 0, err
-			}
-			i += n
-		}
-	}
-	return i, nil
-}
-
-func (m *MsgRequest) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgRequest) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Request != nil {
-		nn6, err6 := m.Request.MarshalTo(dAtA[i:])
-		if err6 != nil {
-			return 0, err6
-		}
-		i += nn6
-	}
-	return i, nil
-}
-
-func (m *MsgRequest_Register) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
-	if m.Register != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Register.Size()))
-		n7, err7 := m.Register.MarshalTo(dAtA[i:])
-		if err7 != nil {
-			return 0, err7
-		}
-		i += n7
-	}
-	return i, nil
-}
-func (m *MsgRequest_TopicRequest) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
-	if m.TopicRequest != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.TopicRequest.Size()))
-		n8, err8 := m.TopicRequest.MarshalTo(dAtA[i:])
-		if err8 != nil {
-			return 0, err8
-		}
-		i += n8
-	}
-	return i, nil
-}
-func (m *MsgRequest_TopicQuery) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
-	if m.TopicQuery != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.TopicQuery.Size()))
-		n9, err9 := m.TopicQuery.MarshalTo(dAtA[i:])
-		if err9 != nil {
-			return 0, err9
-		}
-		i += n9
-	}
-	return i, nil
-}
-func (m *MsgReply) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgReply) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.ErrMsg != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.ErrMsg.Size()))
-		n10, err10 := m.ErrMsg.MarshalTo(dAtA[i:])
-		if err10 != nil {
-			return 0, err10
-		}
-		i += n10
-	}
-	return i, nil
-}
-
-func (m *BHMsgBody) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *BHMsgBody) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Reqrep != nil {
-		nn11, err11 := m.Reqrep.MarshalTo(dAtA[i:])
-		if err11 != nil {
-			return 0, err11
-		}
-		i += nn11
-	}
-	return i, nil
-}
-
-func (m *BHMsgBody_Request) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
-	if m.Request != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Request.Size()))
-		n12, err12 := m.Request.MarshalTo(dAtA[i:])
-		if err12 != nil {
-			return 0, err12
-		}
-		i += n12
-	}
-	return i, nil
-}
-func (m *BHMsgBody_Reply) MarshalTo(dAtA []byte) (int, error) {
-	i := 0
-	if m.Reply != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsg(dAtA, i, uint64(m.Reply.Size()))
-		n13, err13 := m.Reply.MarshalTo(dAtA[i:])
-		if err13 != nil {
-			return 0, err13
-		}
-		i += n13
-	}
-	return i, nil
-}
-func encodeVarintBhomeMsg(dAtA []byte, offset int, v uint64) int {
-	for v >= 1<<7 {
-		dAtA[offset] = uint8(v&0x7f | 0x80)
-		v >>= 7
-		offset++
-	}
-	dAtA[offset] = uint8(v)
-	return offset + 1
-}
-func (m *BHMsgHead) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.MsgId)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	if len(m.Route) > 0 {
-		for _, e := range m.Route {
-			l = e.Size()
-			n += 1 + l + sovBhomeMsg(uint64(l))
-		}
-	}
-	if m.Timestamp != 0 {
-		n += 1 + sovBhomeMsg(uint64(m.Timestamp))
-	}
-	if m.Type != 0 {
-		n += 1 + sovBhomeMsg(uint64(m.Type))
-	}
-	if m.SsnId != 0 {
-		n += 1 + sovBhomeMsg(uint64(m.SsnId))
-	}
-	l = len(m.ProcId)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	l = len(m.Topic)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	if m.Dest != nil {
-		l = m.Dest.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgSubscribe) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Topics != nil {
-		l = m.Topics.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	if m.Network {
-		n += 2
-	}
-	return n
-}
-
-func (m *MsgUnsubscribe) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Topics != nil {
-		l = m.Topics.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	if m.Network {
-		n += 2
-	}
-	return n
-}
-
-func (m *MsgRegisterRPC) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Topics != nil {
-		l = m.Topics.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgProcInit) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.ExtraMqNum != 0 {
-		n += 1 + sovBhomeMsg(uint64(m.ExtraMqNum))
-	}
-	return n
-}
-
-func (m *MsgProcInitReply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		l = m.Errmsg.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	if m.ProcIndex != 0 {
-		n += 1 + sovBhomeMsg(uint64(m.ProcIndex))
-	}
-	if len(m.ExtraMqs) > 0 {
-		for _, e := range m.ExtraMqs {
-			l = e.Size()
-			n += 1 + l + sovBhomeMsg(uint64(l))
-		}
-	}
-	return n
-}
-
-func (m *MsgRequest) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Request != nil {
-		n += m.Request.Size()
-	}
-	return n
-}
-
-func (m *MsgRequest_Register) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Register != nil {
-		l = m.Register.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-func (m *MsgRequest_TopicRequest) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.TopicRequest != nil {
-		l = m.TopicRequest.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-func (m *MsgRequest_TopicQuery) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.TopicQuery != nil {
-		l = m.TopicQuery.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-func (m *MsgReply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.ErrMsg != nil {
-		l = m.ErrMsg.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-
-func (m *BHMsgBody) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Reqrep != nil {
-		n += m.Reqrep.Size()
-	}
-	return n
-}
-
-func (m *BHMsgBody_Request) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Request != nil {
-		l = m.Request.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-func (m *BHMsgBody_Reply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Reply != nil {
-		l = m.Reply.Size()
-		n += 1 + l + sovBhomeMsg(uint64(l))
-	}
-	return n
-}
-
-func sovBhomeMsg(x uint64) (n int) {
-	return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozBhomeMsg(x uint64) (n int) {
-	return sovBhomeMsg(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
-func (m *BHMsgHead) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: BHMsgHead: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: BHMsgHead: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field MsgId", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.MsgId = append(m.MsgId[:0], dAtA[iNdEx:postIndex]...)
-			if m.MsgId == nil {
-				m.MsgId = []byte{}
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Route", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Route = append(m.Route, &BHAddress{})
-			if err := m.Route[len(m.Route)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 3:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
-			}
-			m.Timestamp = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.Timestamp |= int64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 4:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
-			}
-			m.Type = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.Type |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 5:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field SsnId", wireType)
-			}
-			m.SsnId = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.SsnId |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 6:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
-			if m.ProcId == nil {
-				m.ProcId = []byte{}
-			}
-			iNdEx = postIndex
-		case 7:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
-			if m.Topic == nil {
-				m.Topic = []byte{}
-			}
-			iNdEx = postIndex
-		case 8:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Dest", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Dest == nil {
-				m.Dest = &BHAddress{}
-			}
-			if err := m.Dest.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgSubscribe) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgSubscribe: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgSubscribe: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topics", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Topics == nil {
-				m.Topics = &MsgTopicList{}
-			}
-			if err := m.Topics.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
-			}
-			var v int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			m.Network = bool(v != 0)
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgUnsubscribe) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgUnsubscribe: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgUnsubscribe: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topics", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Topics == nil {
-				m.Topics = &MsgTopicList{}
-			}
-			if err := m.Topics.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType)
-			}
-			var v int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			m.Network = bool(v != 0)
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgRegisterRPC) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgRegisterRPC: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgRegisterRPC: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topics", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Topics == nil {
-				m.Topics = &MsgTopicList{}
-			}
-			if err := m.Topics.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgProcInit) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgProcInit: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgProcInit: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ExtraMqNum", wireType)
-			}
-			m.ExtraMqNum = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.ExtraMqNum |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgProcInitReply) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgProcInitReply: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgProcInitReply: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Errmsg == nil {
-				m.Errmsg = &ErrorMsg{}
-			}
-			if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProcIndex", wireType)
-			}
-			m.ProcIndex = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.ProcIndex |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ExtraMqs", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ExtraMqs = append(m.ExtraMqs, &BHAddress{})
-			if err := m.ExtraMqs[len(m.ExtraMqs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgRequest) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgRequest: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgRequest: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Register", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			v := &MsgRegister{}
-			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			m.Request = &MsgRequest_Register{v}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field TopicRequest", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			v := &MsgRequestTopic{}
-			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			m.Request = &MsgRequest_TopicRequest{v}
-			iNdEx = postIndex
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field TopicQuery", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			v := &MsgQueryTopic{}
-			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			m.Request = &MsgRequest_TopicQuery{v}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgReply) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgReply: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgReply: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ErrMsg", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.ErrMsg == nil {
-				m.ErrMsg = &ErrorMsg{}
-			}
-			if err := m.ErrMsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *BHMsgBody) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: BHMsgBody: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: BHMsgBody: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			v := &MsgRequest{}
-			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			m.Reqrep = &BHMsgBody_Request{v}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Reply", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			v := &MsgReply{}
-			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			m.Reqrep = &BHMsgBody_Reply{v}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func skipBhomeMsg(dAtA []byte) (n int, err error) {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return 0, ErrIntOverflowBhomeMsg
-			}
-			if iNdEx >= l {
-				return 0, io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		wireType := int(wire & 0x7)
-		switch wireType {
-		case 0:
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				iNdEx++
-				if dAtA[iNdEx-1] < 0x80 {
-					break
-				}
-			}
-			return iNdEx, nil
-		case 1:
-			iNdEx += 8
-			return iNdEx, nil
-		case 2:
-			var length int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowBhomeMsg
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				length |= (int(b) & 0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if length < 0 {
-				return 0, ErrInvalidLengthBhomeMsg
-			}
-			iNdEx += length
-			if iNdEx < 0 {
-				return 0, ErrInvalidLengthBhomeMsg
-			}
-			return iNdEx, nil
-		case 3:
-			for {
-				var innerWire uint64
-				var start int = iNdEx
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return 0, ErrIntOverflowBhomeMsg
-					}
-					if iNdEx >= l {
-						return 0, io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					innerWire |= (uint64(b) & 0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				innerWireType := int(innerWire & 0x7)
-				if innerWireType == 4 {
-					break
-				}
-				next, err := skipBhomeMsg(dAtA[start:])
-				if err != nil {
-					return 0, err
-				}
-				iNdEx = start + next
-				if iNdEx < 0 {
-					return 0, ErrInvalidLengthBhomeMsg
-				}
-			}
-			return iNdEx, nil
-		case 4:
-			return iNdEx, nil
-		case 5:
-			iNdEx += 4
-			return iNdEx, nil
-		default:
-			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
-		}
-	}
-	panic("unreachable")
-}
-
-var (
-	ErrInvalidLengthBhomeMsg = fmt.Errorf("proto: negative length found during unmarshaling")
-	ErrIntOverflowBhomeMsg   = fmt.Errorf("proto: integer overflow")
-)
diff --git a/proto/bhome_msg.pb.h b/proto/bhome_msg.pb.h
deleted file mode 100644
index 584a0ce..0000000
--- a/proto/bhome_msg.pb.h
+++ /dev/null
@@ -1,2492 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: bhome_msg.proto
-
-#ifndef GOOGLE_PROTOBUF_INCLUDED_bhome_5fmsg_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_bhome_5fmsg_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata_lite.h>
-#include <google/protobuf/message_lite.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/generated_enum_util.h>
-#include "bhome_msg_api.pb.h"
-#include "error_msg.pb.h"
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_2eproto
-PROTOBUF_NAMESPACE_OPEN
-namespace internal {
-class AnyMetadata;
-}  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_bhome_5fmsg_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[9]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
-};
-namespace bhome_msg {
-class BHMsgBody;
-class BHMsgBodyDefaultTypeInternal;
-extern BHMsgBodyDefaultTypeInternal _BHMsgBody_default_instance_;
-class BHMsgHead;
-class BHMsgHeadDefaultTypeInternal;
-extern BHMsgHeadDefaultTypeInternal _BHMsgHead_default_instance_;
-class MsgProcInit;
-class MsgProcInitDefaultTypeInternal;
-extern MsgProcInitDefaultTypeInternal _MsgProcInit_default_instance_;
-class MsgProcInitReply;
-class MsgProcInitReplyDefaultTypeInternal;
-extern MsgProcInitReplyDefaultTypeInternal _MsgProcInitReply_default_instance_;
-class MsgRegisterRPC;
-class MsgRegisterRPCDefaultTypeInternal;
-extern MsgRegisterRPCDefaultTypeInternal _MsgRegisterRPC_default_instance_;
-class MsgReply;
-class MsgReplyDefaultTypeInternal;
-extern MsgReplyDefaultTypeInternal _MsgReply_default_instance_;
-class MsgRequest;
-class MsgRequestDefaultTypeInternal;
-extern MsgRequestDefaultTypeInternal _MsgRequest_default_instance_;
-class MsgSubscribe;
-class MsgSubscribeDefaultTypeInternal;
-extern MsgSubscribeDefaultTypeInternal _MsgSubscribe_default_instance_;
-class MsgUnsubscribe;
-class MsgUnsubscribeDefaultTypeInternal;
-extern MsgUnsubscribeDefaultTypeInternal _MsgUnsubscribe_default_instance_;
-}  // namespace bhome_msg
-PROTOBUF_NAMESPACE_OPEN
-template<> ::bhome_msg::BHMsgBody* Arena::CreateMaybeMessage<::bhome_msg::BHMsgBody>(Arena*);
-template<> ::bhome_msg::BHMsgHead* Arena::CreateMaybeMessage<::bhome_msg::BHMsgHead>(Arena*);
-template<> ::bhome_msg::MsgProcInit* Arena::CreateMaybeMessage<::bhome_msg::MsgProcInit>(Arena*);
-template<> ::bhome_msg::MsgProcInitReply* Arena::CreateMaybeMessage<::bhome_msg::MsgProcInitReply>(Arena*);
-template<> ::bhome_msg::MsgRegisterRPC* Arena::CreateMaybeMessage<::bhome_msg::MsgRegisterRPC>(Arena*);
-template<> ::bhome_msg::MsgReply* Arena::CreateMaybeMessage<::bhome_msg::MsgReply>(Arena*);
-template<> ::bhome_msg::MsgRequest* Arena::CreateMaybeMessage<::bhome_msg::MsgRequest>(Arena*);
-template<> ::bhome_msg::MsgSubscribe* Arena::CreateMaybeMessage<::bhome_msg::MsgSubscribe>(Arena*);
-template<> ::bhome_msg::MsgUnsubscribe* Arena::CreateMaybeMessage<::bhome_msg::MsgUnsubscribe>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
-namespace bhome_msg {
-
-enum MsgType : int {
-  kMsgTypeInvalid = 0,
-  kMsgTypeRawData = 1,
-  kMsgTypeCommonReply = 2,
-  kMsgTypeProcInit = 8,
-  kMsgTypeProcInitReply = 9,
-  kMsgTypeRegister = 10,
-  kMsgTypeHeartbeat = 12,
-  kMsgTypeQueryTopic = 14,
-  kMsgTypeQueryTopicReply = 15,
-  kMsgTypeRequestTopic = 16,
-  kMsgTypeRequestTopicReply = 17,
-  kMsgTypeRegisterRPC = 18,
-  kMsgTypePublish = 20,
-  kMsgTypeSubscribe = 22,
-  kMsgTypeUnsubscribe = 24,
-  kMsgTypeUnregister = 26,
-  kMsgTypeQueryProc = 28,
-  kMsgTypeQueryProcReply = 29,
-  MsgType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
-  MsgType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
-};
-bool MsgType_IsValid(int value);
-constexpr MsgType MsgType_MIN = kMsgTypeInvalid;
-constexpr MsgType MsgType_MAX = kMsgTypeQueryProcReply;
-constexpr int MsgType_ARRAYSIZE = MsgType_MAX + 1;
-
-const std::string& MsgType_Name(MsgType value);
-template<typename T>
-inline const std::string& MsgType_Name(T enum_t_value) {
-  static_assert(::std::is_same<T, MsgType>::value ||
-    ::std::is_integral<T>::value,
-    "Incorrect type passed to function MsgType_Name.");
-  return MsgType_Name(static_cast<MsgType>(enum_t_value));
-}
-bool MsgType_Parse(
-    const std::string& name, MsgType* value);
-// ===================================================================
-
-class BHMsgHead :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.BHMsgHead) */ {
- public:
-  BHMsgHead();
-  virtual ~BHMsgHead();
-
-  BHMsgHead(const BHMsgHead& from);
-  BHMsgHead(BHMsgHead&& from) noexcept
-    : BHMsgHead() {
-    *this = ::std::move(from);
-  }
-
-  inline BHMsgHead& operator=(const BHMsgHead& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline BHMsgHead& operator=(BHMsgHead&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const BHMsgHead& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const BHMsgHead* internal_default_instance() {
-    return reinterpret_cast<const BHMsgHead*>(
-               &_BHMsgHead_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  friend void swap(BHMsgHead& a, BHMsgHead& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(BHMsgHead* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline BHMsgHead* New() const final {
-    return CreateMaybeMessage<BHMsgHead>(nullptr);
-  }
-
-  BHMsgHead* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<BHMsgHead>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const BHMsgHead& from);
-  void MergeFrom(const BHMsgHead& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(BHMsgHead* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.BHMsgHead";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kRouteFieldNumber = 2,
-    kMsgIdFieldNumber = 1,
-    kProcIdFieldNumber = 6,
-    kTopicFieldNumber = 7,
-    kDestFieldNumber = 8,
-    kTimestampFieldNumber = 3,
-    kSsnIdFieldNumber = 5,
-    kTypeFieldNumber = 4,
-  };
-  // repeated .bhome_msg.BHAddress route = 2;
-  int route_size() const;
-  private:
-  int _internal_route_size() const;
-  public:
-  void clear_route();
-  ::bhome_msg::BHAddress* mutable_route(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >*
-      mutable_route();
-  private:
-  const ::bhome_msg::BHAddress& _internal_route(int index) const;
-  ::bhome_msg::BHAddress* _internal_add_route();
-  public:
-  const ::bhome_msg::BHAddress& route(int index) const;
-  ::bhome_msg::BHAddress* add_route();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >&
-      route() const;
-
-  // bytes msg_id = 1;
-  void clear_msg_id();
-  const std::string& msg_id() const;
-  void set_msg_id(const std::string& value);
-  void set_msg_id(std::string&& value);
-  void set_msg_id(const char* value);
-  void set_msg_id(const void* value, size_t size);
-  std::string* mutable_msg_id();
-  std::string* release_msg_id();
-  void set_allocated_msg_id(std::string* msg_id);
-  private:
-  const std::string& _internal_msg_id() const;
-  void _internal_set_msg_id(const std::string& value);
-  std::string* _internal_mutable_msg_id();
-  public:
-
-  // bytes proc_id = 6;
-  void clear_proc_id();
-  const std::string& proc_id() const;
-  void set_proc_id(const std::string& value);
-  void set_proc_id(std::string&& value);
-  void set_proc_id(const char* value);
-  void set_proc_id(const void* value, size_t size);
-  std::string* mutable_proc_id();
-  std::string* release_proc_id();
-  void set_allocated_proc_id(std::string* proc_id);
-  private:
-  const std::string& _internal_proc_id() const;
-  void _internal_set_proc_id(const std::string& value);
-  std::string* _internal_mutable_proc_id();
-  public:
-
-  // bytes topic = 7;
-  void clear_topic();
-  const std::string& topic() const;
-  void set_topic(const std::string& value);
-  void set_topic(std::string&& value);
-  void set_topic(const char* value);
-  void set_topic(const void* value, size_t size);
-  std::string* mutable_topic();
-  std::string* release_topic();
-  void set_allocated_topic(std::string* topic);
-  private:
-  const std::string& _internal_topic() const;
-  void _internal_set_topic(const std::string& value);
-  std::string* _internal_mutable_topic();
-  public:
-
-  // .bhome_msg.BHAddress dest = 8;
-  bool has_dest() const;
-  private:
-  bool _internal_has_dest() const;
-  public:
-  void clear_dest();
-  const ::bhome_msg::BHAddress& dest() const;
-  ::bhome_msg::BHAddress* release_dest();
-  ::bhome_msg::BHAddress* mutable_dest();
-  void set_allocated_dest(::bhome_msg::BHAddress* dest);
-  private:
-  const ::bhome_msg::BHAddress& _internal_dest() const;
-  ::bhome_msg::BHAddress* _internal_mutable_dest();
-  public:
-
-  // int64 timestamp = 3;
-  void clear_timestamp();
-  ::PROTOBUF_NAMESPACE_ID::int64 timestamp() const;
-  void set_timestamp(::PROTOBUF_NAMESPACE_ID::int64 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int64 _internal_timestamp() const;
-  void _internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::int64 value);
-  public:
-
-  // uint64 ssn_id = 5;
-  void clear_ssn_id();
-  ::PROTOBUF_NAMESPACE_ID::uint64 ssn_id() const;
-  void set_ssn_id(::PROTOBUF_NAMESPACE_ID::uint64 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::uint64 _internal_ssn_id() const;
-  void _internal_set_ssn_id(::PROTOBUF_NAMESPACE_ID::uint64 value);
-  public:
-
-  // int32 type = 4;
-  void clear_type();
-  ::PROTOBUF_NAMESPACE_ID::int32 type() const;
-  void set_type(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_type() const;
-  void _internal_set_type(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.BHMsgHead)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress > route_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr msg_id_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr proc_id_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr topic_;
-  ::bhome_msg::BHAddress* dest_;
-  ::PROTOBUF_NAMESPACE_ID::int64 timestamp_;
-  ::PROTOBUF_NAMESPACE_ID::uint64 ssn_id_;
-  ::PROTOBUF_NAMESPACE_ID::int32 type_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgSubscribe :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgSubscribe) */ {
- public:
-  MsgSubscribe();
-  virtual ~MsgSubscribe();
-
-  MsgSubscribe(const MsgSubscribe& from);
-  MsgSubscribe(MsgSubscribe&& from) noexcept
-    : MsgSubscribe() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgSubscribe& operator=(const MsgSubscribe& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgSubscribe& operator=(MsgSubscribe&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgSubscribe& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgSubscribe* internal_default_instance() {
-    return reinterpret_cast<const MsgSubscribe*>(
-               &_MsgSubscribe_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    1;
-
-  friend void swap(MsgSubscribe& a, MsgSubscribe& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgSubscribe* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgSubscribe* New() const final {
-    return CreateMaybeMessage<MsgSubscribe>(nullptr);
-  }
-
-  MsgSubscribe* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgSubscribe>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgSubscribe& from);
-  void MergeFrom(const MsgSubscribe& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgSubscribe* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgSubscribe";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicsFieldNumber = 1,
-    kNetworkFieldNumber = 2,
-  };
-  // .bhome_msg.MsgTopicList topics = 1;
-  bool has_topics() const;
-  private:
-  bool _internal_has_topics() const;
-  public:
-  void clear_topics();
-  const ::bhome_msg::MsgTopicList& topics() const;
-  ::bhome_msg::MsgTopicList* release_topics();
-  ::bhome_msg::MsgTopicList* mutable_topics();
-  void set_allocated_topics(::bhome_msg::MsgTopicList* topics);
-  private:
-  const ::bhome_msg::MsgTopicList& _internal_topics() const;
-  ::bhome_msg::MsgTopicList* _internal_mutable_topics();
-  public:
-
-  // bool network = 2;
-  void clear_network();
-  bool network() const;
-  void set_network(bool value);
-  private:
-  bool _internal_network() const;
-  void _internal_set_network(bool value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgSubscribe)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::MsgTopicList* topics_;
-  bool network_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgUnsubscribe :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgUnsubscribe) */ {
- public:
-  MsgUnsubscribe();
-  virtual ~MsgUnsubscribe();
-
-  MsgUnsubscribe(const MsgUnsubscribe& from);
-  MsgUnsubscribe(MsgUnsubscribe&& from) noexcept
-    : MsgUnsubscribe() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgUnsubscribe& operator=(const MsgUnsubscribe& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgUnsubscribe& operator=(MsgUnsubscribe&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgUnsubscribe& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgUnsubscribe* internal_default_instance() {
-    return reinterpret_cast<const MsgUnsubscribe*>(
-               &_MsgUnsubscribe_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    2;
-
-  friend void swap(MsgUnsubscribe& a, MsgUnsubscribe& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgUnsubscribe* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgUnsubscribe* New() const final {
-    return CreateMaybeMessage<MsgUnsubscribe>(nullptr);
-  }
-
-  MsgUnsubscribe* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgUnsubscribe>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgUnsubscribe& from);
-  void MergeFrom(const MsgUnsubscribe& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgUnsubscribe* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgUnsubscribe";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicsFieldNumber = 1,
-    kNetworkFieldNumber = 2,
-  };
-  // .bhome_msg.MsgTopicList topics = 1;
-  bool has_topics() const;
-  private:
-  bool _internal_has_topics() const;
-  public:
-  void clear_topics();
-  const ::bhome_msg::MsgTopicList& topics() const;
-  ::bhome_msg::MsgTopicList* release_topics();
-  ::bhome_msg::MsgTopicList* mutable_topics();
-  void set_allocated_topics(::bhome_msg::MsgTopicList* topics);
-  private:
-  const ::bhome_msg::MsgTopicList& _internal_topics() const;
-  ::bhome_msg::MsgTopicList* _internal_mutable_topics();
-  public:
-
-  // bool network = 2;
-  void clear_network();
-  bool network() const;
-  void set_network(bool value);
-  private:
-  bool _internal_network() const;
-  void _internal_set_network(bool value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgUnsubscribe)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::MsgTopicList* topics_;
-  bool network_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgRegisterRPC :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgRegisterRPC) */ {
- public:
-  MsgRegisterRPC();
-  virtual ~MsgRegisterRPC();
-
-  MsgRegisterRPC(const MsgRegisterRPC& from);
-  MsgRegisterRPC(MsgRegisterRPC&& from) noexcept
-    : MsgRegisterRPC() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgRegisterRPC& operator=(const MsgRegisterRPC& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgRegisterRPC& operator=(MsgRegisterRPC&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgRegisterRPC& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgRegisterRPC* internal_default_instance() {
-    return reinterpret_cast<const MsgRegisterRPC*>(
-               &_MsgRegisterRPC_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    3;
-
-  friend void swap(MsgRegisterRPC& a, MsgRegisterRPC& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgRegisterRPC* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgRegisterRPC* New() const final {
-    return CreateMaybeMessage<MsgRegisterRPC>(nullptr);
-  }
-
-  MsgRegisterRPC* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgRegisterRPC>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgRegisterRPC& from);
-  void MergeFrom(const MsgRegisterRPC& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgRegisterRPC* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgRegisterRPC";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicsFieldNumber = 1,
-  };
-  // .bhome_msg.MsgTopicList topics = 1;
-  bool has_topics() const;
-  private:
-  bool _internal_has_topics() const;
-  public:
-  void clear_topics();
-  const ::bhome_msg::MsgTopicList& topics() const;
-  ::bhome_msg::MsgTopicList* release_topics();
-  ::bhome_msg::MsgTopicList* mutable_topics();
-  void set_allocated_topics(::bhome_msg::MsgTopicList* topics);
-  private:
-  const ::bhome_msg::MsgTopicList& _internal_topics() const;
-  ::bhome_msg::MsgTopicList* _internal_mutable_topics();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgRegisterRPC)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::MsgTopicList* topics_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgProcInit :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgProcInit) */ {
- public:
-  MsgProcInit();
-  virtual ~MsgProcInit();
-
-  MsgProcInit(const MsgProcInit& from);
-  MsgProcInit(MsgProcInit&& from) noexcept
-    : MsgProcInit() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgProcInit& operator=(const MsgProcInit& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgProcInit& operator=(MsgProcInit&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgProcInit& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgProcInit* internal_default_instance() {
-    return reinterpret_cast<const MsgProcInit*>(
-               &_MsgProcInit_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    4;
-
-  friend void swap(MsgProcInit& a, MsgProcInit& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgProcInit* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgProcInit* New() const final {
-    return CreateMaybeMessage<MsgProcInit>(nullptr);
-  }
-
-  MsgProcInit* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgProcInit>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgProcInit& from);
-  void MergeFrom(const MsgProcInit& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgProcInit* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgProcInit";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kExtraMqNumFieldNumber = 1,
-  };
-  // int32 extra_mq_num = 1;
-  void clear_extra_mq_num();
-  ::PROTOBUF_NAMESPACE_ID::int32 extra_mq_num() const;
-  void set_extra_mq_num(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_extra_mq_num() const;
-  void _internal_set_extra_mq_num(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgProcInit)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::int32 extra_mq_num_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgProcInitReply :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgProcInitReply) */ {
- public:
-  MsgProcInitReply();
-  virtual ~MsgProcInitReply();
-
-  MsgProcInitReply(const MsgProcInitReply& from);
-  MsgProcInitReply(MsgProcInitReply&& from) noexcept
-    : MsgProcInitReply() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgProcInitReply& operator=(const MsgProcInitReply& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgProcInitReply& operator=(MsgProcInitReply&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgProcInitReply& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgProcInitReply* internal_default_instance() {
-    return reinterpret_cast<const MsgProcInitReply*>(
-               &_MsgProcInitReply_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    5;
-
-  friend void swap(MsgProcInitReply& a, MsgProcInitReply& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgProcInitReply* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgProcInitReply* New() const final {
-    return CreateMaybeMessage<MsgProcInitReply>(nullptr);
-  }
-
-  MsgProcInitReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgProcInitReply>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgProcInitReply& from);
-  void MergeFrom(const MsgProcInitReply& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgProcInitReply* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgProcInitReply";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kExtraMqsFieldNumber = 3,
-    kErrmsgFieldNumber = 1,
-    kProcIndexFieldNumber = 2,
-  };
-  // repeated .bhome_msg.BHAddress extra_mqs = 3;
-  int extra_mqs_size() const;
-  private:
-  int _internal_extra_mqs_size() const;
-  public:
-  void clear_extra_mqs();
-  ::bhome_msg::BHAddress* mutable_extra_mqs(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >*
-      mutable_extra_mqs();
-  private:
-  const ::bhome_msg::BHAddress& _internal_extra_mqs(int index) const;
-  ::bhome_msg::BHAddress* _internal_add_extra_mqs();
-  public:
-  const ::bhome_msg::BHAddress& extra_mqs(int index) const;
-  ::bhome_msg::BHAddress* add_extra_mqs();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >&
-      extra_mqs() const;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  bool has_errmsg() const;
-  private:
-  bool _internal_has_errmsg() const;
-  public:
-  void clear_errmsg();
-  const ::bhome_msg::ErrorMsg& errmsg() const;
-  ::bhome_msg::ErrorMsg* release_errmsg();
-  ::bhome_msg::ErrorMsg* mutable_errmsg();
-  void set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg);
-  private:
-  const ::bhome_msg::ErrorMsg& _internal_errmsg() const;
-  ::bhome_msg::ErrorMsg* _internal_mutable_errmsg();
-  public:
-
-  // int32 proc_index = 2;
-  void clear_proc_index();
-  ::PROTOBUF_NAMESPACE_ID::int32 proc_index() const;
-  void set_proc_index(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_proc_index() const;
-  void _internal_set_proc_index(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgProcInitReply)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress > extra_mqs_;
-  ::bhome_msg::ErrorMsg* errmsg_;
-  ::PROTOBUF_NAMESPACE_ID::int32 proc_index_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgRequest :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgRequest) */ {
- public:
-  MsgRequest();
-  virtual ~MsgRequest();
-
-  MsgRequest(const MsgRequest& from);
-  MsgRequest(MsgRequest&& from) noexcept
-    : MsgRequest() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgRequest& operator=(const MsgRequest& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgRequest& operator=(MsgRequest&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgRequest& default_instance();
-
-  enum RequestCase {
-    kRegister = 1,
-    kTopicRequest = 2,
-    kTopicQuery = 3,
-    REQUEST_NOT_SET = 0,
-  };
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgRequest* internal_default_instance() {
-    return reinterpret_cast<const MsgRequest*>(
-               &_MsgRequest_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    6;
-
-  friend void swap(MsgRequest& a, MsgRequest& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgRequest* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgRequest* New() const final {
-    return CreateMaybeMessage<MsgRequest>(nullptr);
-  }
-
-  MsgRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgRequest>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgRequest& from);
-  void MergeFrom(const MsgRequest& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgRequest* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgRequest";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kRegisterFieldNumber = 1,
-    kTopicRequestFieldNumber = 2,
-    kTopicQueryFieldNumber = 3,
-  };
-  // .bhome_msg.MsgRegister register = 1;
-  bool has_register_() const;
-  private:
-  bool _internal_has_register_() const;
-  public:
-  void clear_register_();
-  const ::bhome_msg::MsgRegister& register_() const;
-  ::bhome_msg::MsgRegister* release_register_();
-  ::bhome_msg::MsgRegister* mutable_register_();
-  void set_allocated_register_(::bhome_msg::MsgRegister* register_);
-  private:
-  const ::bhome_msg::MsgRegister& _internal_register_() const;
-  ::bhome_msg::MsgRegister* _internal_mutable_register_();
-  public:
-
-  // .bhome_msg.MsgRequestTopic topic_request = 2;
-  bool has_topic_request() const;
-  private:
-  bool _internal_has_topic_request() const;
-  public:
-  void clear_topic_request();
-  const ::bhome_msg::MsgRequestTopic& topic_request() const;
-  ::bhome_msg::MsgRequestTopic* release_topic_request();
-  ::bhome_msg::MsgRequestTopic* mutable_topic_request();
-  void set_allocated_topic_request(::bhome_msg::MsgRequestTopic* topic_request);
-  private:
-  const ::bhome_msg::MsgRequestTopic& _internal_topic_request() const;
-  ::bhome_msg::MsgRequestTopic* _internal_mutable_topic_request();
-  public:
-
-  // .bhome_msg.MsgQueryTopic topic_query = 3;
-  bool has_topic_query() const;
-  private:
-  bool _internal_has_topic_query() const;
-  public:
-  void clear_topic_query();
-  const ::bhome_msg::MsgQueryTopic& topic_query() const;
-  ::bhome_msg::MsgQueryTopic* release_topic_query();
-  ::bhome_msg::MsgQueryTopic* mutable_topic_query();
-  void set_allocated_topic_query(::bhome_msg::MsgQueryTopic* topic_query);
-  private:
-  const ::bhome_msg::MsgQueryTopic& _internal_topic_query() const;
-  ::bhome_msg::MsgQueryTopic* _internal_mutable_topic_query();
-  public:
-
-  void clear_request();
-  RequestCase request_case() const;
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgRequest)
- private:
-  class _Internal;
-  void set_has_register_();
-  void set_has_topic_request();
-  void set_has_topic_query();
-
-  inline bool has_request() const;
-  inline void clear_has_request();
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  union RequestUnion {
-    RequestUnion() {}
-    ::bhome_msg::MsgRegister* register__;
-    ::bhome_msg::MsgRequestTopic* topic_request_;
-    ::bhome_msg::MsgQueryTopic* topic_query_;
-  } request_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];
-
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgReply :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgReply) */ {
- public:
-  MsgReply();
-  virtual ~MsgReply();
-
-  MsgReply(const MsgReply& from);
-  MsgReply(MsgReply&& from) noexcept
-    : MsgReply() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgReply& operator=(const MsgReply& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgReply& operator=(MsgReply&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgReply& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgReply* internal_default_instance() {
-    return reinterpret_cast<const MsgReply*>(
-               &_MsgReply_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    7;
-
-  friend void swap(MsgReply& a, MsgReply& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgReply* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgReply* New() const final {
-    return CreateMaybeMessage<MsgReply>(nullptr);
-  }
-
-  MsgReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgReply>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgReply& from);
-  void MergeFrom(const MsgReply& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgReply* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgReply";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kErrMsgFieldNumber = 1,
-  };
-  // .bhome_msg.ErrorMsg err_msg = 1;
-  bool has_err_msg() const;
-  private:
-  bool _internal_has_err_msg() const;
-  public:
-  void clear_err_msg();
-  const ::bhome_msg::ErrorMsg& err_msg() const;
-  ::bhome_msg::ErrorMsg* release_err_msg();
-  ::bhome_msg::ErrorMsg* mutable_err_msg();
-  void set_allocated_err_msg(::bhome_msg::ErrorMsg* err_msg);
-  private:
-  const ::bhome_msg::ErrorMsg& _internal_err_msg() const;
-  ::bhome_msg::ErrorMsg* _internal_mutable_err_msg();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgReply)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::ErrorMsg* err_msg_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// -------------------------------------------------------------------
-
-class BHMsgBody :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.BHMsgBody) */ {
- public:
-  BHMsgBody();
-  virtual ~BHMsgBody();
-
-  BHMsgBody(const BHMsgBody& from);
-  BHMsgBody(BHMsgBody&& from) noexcept
-    : BHMsgBody() {
-    *this = ::std::move(from);
-  }
-
-  inline BHMsgBody& operator=(const BHMsgBody& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline BHMsgBody& operator=(BHMsgBody&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const BHMsgBody& default_instance();
-
-  enum ReqrepCase {
-    kRequest = 1,
-    kReply = 2,
-    REQREP_NOT_SET = 0,
-  };
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const BHMsgBody* internal_default_instance() {
-    return reinterpret_cast<const BHMsgBody*>(
-               &_BHMsgBody_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    8;
-
-  friend void swap(BHMsgBody& a, BHMsgBody& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(BHMsgBody* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline BHMsgBody* New() const final {
-    return CreateMaybeMessage<BHMsgBody>(nullptr);
-  }
-
-  BHMsgBody* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<BHMsgBody>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const BHMsgBody& from);
-  void MergeFrom(const BHMsgBody& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(BHMsgBody* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.BHMsgBody";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kRequestFieldNumber = 1,
-    kReplyFieldNumber = 2,
-  };
-  // .bhome_msg.MsgRequest request = 1;
-  bool has_request() const;
-  private:
-  bool _internal_has_request() const;
-  public:
-  void clear_request();
-  const ::bhome_msg::MsgRequest& request() const;
-  ::bhome_msg::MsgRequest* release_request();
-  ::bhome_msg::MsgRequest* mutable_request();
-  void set_allocated_request(::bhome_msg::MsgRequest* request);
-  private:
-  const ::bhome_msg::MsgRequest& _internal_request() const;
-  ::bhome_msg::MsgRequest* _internal_mutable_request();
-  public:
-
-  // .bhome_msg.MsgReply reply = 2;
-  bool has_reply() const;
-  private:
-  bool _internal_has_reply() const;
-  public:
-  void clear_reply();
-  const ::bhome_msg::MsgReply& reply() const;
-  ::bhome_msg::MsgReply* release_reply();
-  ::bhome_msg::MsgReply* mutable_reply();
-  void set_allocated_reply(::bhome_msg::MsgReply* reply);
-  private:
-  const ::bhome_msg::MsgReply& _internal_reply() const;
-  ::bhome_msg::MsgReply* _internal_mutable_reply();
-  public:
-
-  void clear_reqrep();
-  ReqrepCase reqrep_case() const;
-  // @@protoc_insertion_point(class_scope:bhome_msg.BHMsgBody)
- private:
-  class _Internal;
-  void set_has_request();
-  void set_has_reply();
-
-  inline bool has_reqrep() const;
-  inline void clear_has_reqrep();
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  union ReqrepUnion {
-    ReqrepUnion() {}
-    ::bhome_msg::MsgRequest* request_;
-    ::bhome_msg::MsgReply* reply_;
-  } reqrep_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];
-
-  friend struct ::TableStruct_bhome_5fmsg_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// BHMsgHead
-
-// bytes msg_id = 1;
-inline void BHMsgHead::clear_msg_id() {
-  msg_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& BHMsgHead::msg_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.msg_id)
-  return _internal_msg_id();
-}
-inline void BHMsgHead::set_msg_id(const std::string& value) {
-  _internal_set_msg_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHMsgHead.msg_id)
-}
-inline std::string* BHMsgHead::mutable_msg_id() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgHead.msg_id)
-  return _internal_mutable_msg_id();
-}
-inline const std::string& BHMsgHead::_internal_msg_id() const {
-  return msg_id_.GetNoArena();
-}
-inline void BHMsgHead::_internal_set_msg_id(const std::string& value) {
-  
-  msg_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void BHMsgHead::set_msg_id(std::string&& value) {
-  
-  msg_id_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.BHMsgHead.msg_id)
-}
-inline void BHMsgHead::set_msg_id(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  msg_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.BHMsgHead.msg_id)
-}
-inline void BHMsgHead::set_msg_id(const void* value, size_t size) {
-  
-  msg_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.BHMsgHead.msg_id)
-}
-inline std::string* BHMsgHead::_internal_mutable_msg_id() {
-  
-  return msg_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* BHMsgHead::release_msg_id() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHMsgHead.msg_id)
-  
-  return msg_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void BHMsgHead::set_allocated_msg_id(std::string* msg_id) {
-  if (msg_id != nullptr) {
-    
-  } else {
-    
-  }
-  msg_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), msg_id);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHMsgHead.msg_id)
-}
-
-// repeated .bhome_msg.BHAddress route = 2;
-inline int BHMsgHead::_internal_route_size() const {
-  return route_.size();
-}
-inline int BHMsgHead::route_size() const {
-  return _internal_route_size();
-}
-inline ::bhome_msg::BHAddress* BHMsgHead::mutable_route(int index) {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgHead.route)
-  return route_.Mutable(index);
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >*
-BHMsgHead::mutable_route() {
-  // @@protoc_insertion_point(field_mutable_list:bhome_msg.BHMsgHead.route)
-  return &route_;
-}
-inline const ::bhome_msg::BHAddress& BHMsgHead::_internal_route(int index) const {
-  return route_.Get(index);
-}
-inline const ::bhome_msg::BHAddress& BHMsgHead::route(int index) const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.route)
-  return _internal_route(index);
-}
-inline ::bhome_msg::BHAddress* BHMsgHead::_internal_add_route() {
-  return route_.Add();
-}
-inline ::bhome_msg::BHAddress* BHMsgHead::add_route() {
-  // @@protoc_insertion_point(field_add:bhome_msg.BHMsgHead.route)
-  return _internal_add_route();
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >&
-BHMsgHead::route() const {
-  // @@protoc_insertion_point(field_list:bhome_msg.BHMsgHead.route)
-  return route_;
-}
-
-// int64 timestamp = 3;
-inline void BHMsgHead::clear_timestamp() {
-  timestamp_ = PROTOBUF_LONGLONG(0);
-}
-inline ::PROTOBUF_NAMESPACE_ID::int64 BHMsgHead::_internal_timestamp() const {
-  return timestamp_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int64 BHMsgHead::timestamp() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.timestamp)
-  return _internal_timestamp();
-}
-inline void BHMsgHead::_internal_set_timestamp(::PROTOBUF_NAMESPACE_ID::int64 value) {
-  
-  timestamp_ = value;
-}
-inline void BHMsgHead::set_timestamp(::PROTOBUF_NAMESPACE_ID::int64 value) {
-  _internal_set_timestamp(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHMsgHead.timestamp)
-}
-
-// int32 type = 4;
-inline void BHMsgHead::clear_type() {
-  type_ = 0;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 BHMsgHead::_internal_type() const {
-  return type_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 BHMsgHead::type() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.type)
-  return _internal_type();
-}
-inline void BHMsgHead::_internal_set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  type_ = value;
-}
-inline void BHMsgHead::set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_type(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHMsgHead.type)
-}
-
-// uint64 ssn_id = 5;
-inline void BHMsgHead::clear_ssn_id() {
-  ssn_id_ = PROTOBUF_ULONGLONG(0);
-}
-inline ::PROTOBUF_NAMESPACE_ID::uint64 BHMsgHead::_internal_ssn_id() const {
-  return ssn_id_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::uint64 BHMsgHead::ssn_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.ssn_id)
-  return _internal_ssn_id();
-}
-inline void BHMsgHead::_internal_set_ssn_id(::PROTOBUF_NAMESPACE_ID::uint64 value) {
-  
-  ssn_id_ = value;
-}
-inline void BHMsgHead::set_ssn_id(::PROTOBUF_NAMESPACE_ID::uint64 value) {
-  _internal_set_ssn_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHMsgHead.ssn_id)
-}
-
-// bytes proc_id = 6;
-inline void BHMsgHead::clear_proc_id() {
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& BHMsgHead::proc_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.proc_id)
-  return _internal_proc_id();
-}
-inline void BHMsgHead::set_proc_id(const std::string& value) {
-  _internal_set_proc_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHMsgHead.proc_id)
-}
-inline std::string* BHMsgHead::mutable_proc_id() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgHead.proc_id)
-  return _internal_mutable_proc_id();
-}
-inline const std::string& BHMsgHead::_internal_proc_id() const {
-  return proc_id_.GetNoArena();
-}
-inline void BHMsgHead::_internal_set_proc_id(const std::string& value) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void BHMsgHead::set_proc_id(std::string&& value) {
-  
-  proc_id_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.BHMsgHead.proc_id)
-}
-inline void BHMsgHead::set_proc_id(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.BHMsgHead.proc_id)
-}
-inline void BHMsgHead::set_proc_id(const void* value, size_t size) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.BHMsgHead.proc_id)
-}
-inline std::string* BHMsgHead::_internal_mutable_proc_id() {
-  
-  return proc_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* BHMsgHead::release_proc_id() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHMsgHead.proc_id)
-  
-  return proc_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void BHMsgHead::set_allocated_proc_id(std::string* proc_id) {
-  if (proc_id != nullptr) {
-    
-  } else {
-    
-  }
-  proc_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), proc_id);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHMsgHead.proc_id)
-}
-
-// bytes topic = 7;
-inline void BHMsgHead::clear_topic() {
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& BHMsgHead::topic() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.topic)
-  return _internal_topic();
-}
-inline void BHMsgHead::set_topic(const std::string& value) {
-  _internal_set_topic(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHMsgHead.topic)
-}
-inline std::string* BHMsgHead::mutable_topic() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgHead.topic)
-  return _internal_mutable_topic();
-}
-inline const std::string& BHMsgHead::_internal_topic() const {
-  return topic_.GetNoArena();
-}
-inline void BHMsgHead::_internal_set_topic(const std::string& value) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void BHMsgHead::set_topic(std::string&& value) {
-  
-  topic_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.BHMsgHead.topic)
-}
-inline void BHMsgHead::set_topic(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.BHMsgHead.topic)
-}
-inline void BHMsgHead::set_topic(const void* value, size_t size) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.BHMsgHead.topic)
-}
-inline std::string* BHMsgHead::_internal_mutable_topic() {
-  
-  return topic_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* BHMsgHead::release_topic() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHMsgHead.topic)
-  
-  return topic_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void BHMsgHead::set_allocated_topic(std::string* topic) {
-  if (topic != nullptr) {
-    
-  } else {
-    
-  }
-  topic_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), topic);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHMsgHead.topic)
-}
-
-// .bhome_msg.BHAddress dest = 8;
-inline bool BHMsgHead::_internal_has_dest() const {
-  return this != internal_default_instance() && dest_ != nullptr;
-}
-inline bool BHMsgHead::has_dest() const {
-  return _internal_has_dest();
-}
-inline const ::bhome_msg::BHAddress& BHMsgHead::_internal_dest() const {
-  const ::bhome_msg::BHAddress* p = dest_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::BHAddress*>(
-      &::bhome_msg::_BHAddress_default_instance_);
-}
-inline const ::bhome_msg::BHAddress& BHMsgHead::dest() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgHead.dest)
-  return _internal_dest();
-}
-inline ::bhome_msg::BHAddress* BHMsgHead::release_dest() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHMsgHead.dest)
-  
-  ::bhome_msg::BHAddress* temp = dest_;
-  dest_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::BHAddress* BHMsgHead::_internal_mutable_dest() {
-  
-  if (dest_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::BHAddress>(GetArenaNoVirtual());
-    dest_ = p;
-  }
-  return dest_;
-}
-inline ::bhome_msg::BHAddress* BHMsgHead::mutable_dest() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgHead.dest)
-  return _internal_mutable_dest();
-}
-inline void BHMsgHead::set_allocated_dest(::bhome_msg::BHAddress* dest) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(dest_);
-  }
-  if (dest) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      dest = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, dest, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  dest_ = dest;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHMsgHead.dest)
-}
-
-// -------------------------------------------------------------------
-
-// MsgSubscribe
-
-// .bhome_msg.MsgTopicList topics = 1;
-inline bool MsgSubscribe::_internal_has_topics() const {
-  return this != internal_default_instance() && topics_ != nullptr;
-}
-inline bool MsgSubscribe::has_topics() const {
-  return _internal_has_topics();
-}
-inline const ::bhome_msg::MsgTopicList& MsgSubscribe::_internal_topics() const {
-  const ::bhome_msg::MsgTopicList* p = topics_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::MsgTopicList*>(
-      &::bhome_msg::_MsgTopicList_default_instance_);
-}
-inline const ::bhome_msg::MsgTopicList& MsgSubscribe::topics() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgSubscribe.topics)
-  return _internal_topics();
-}
-inline ::bhome_msg::MsgTopicList* MsgSubscribe::release_topics() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgSubscribe.topics)
-  
-  ::bhome_msg::MsgTopicList* temp = topics_;
-  topics_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::MsgTopicList* MsgSubscribe::_internal_mutable_topics() {
-  
-  if (topics_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::MsgTopicList>(GetArenaNoVirtual());
-    topics_ = p;
-  }
-  return topics_;
-}
-inline ::bhome_msg::MsgTopicList* MsgSubscribe::mutable_topics() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgSubscribe.topics)
-  return _internal_mutable_topics();
-}
-inline void MsgSubscribe::set_allocated_topics(::bhome_msg::MsgTopicList* topics) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(topics_);
-  }
-  if (topics) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      topics = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, topics, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  topics_ = topics;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgSubscribe.topics)
-}
-
-// bool network = 2;
-inline void MsgSubscribe::clear_network() {
-  network_ = false;
-}
-inline bool MsgSubscribe::_internal_network() const {
-  return network_;
-}
-inline bool MsgSubscribe::network() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgSubscribe.network)
-  return _internal_network();
-}
-inline void MsgSubscribe::_internal_set_network(bool value) {
-  
-  network_ = value;
-}
-inline void MsgSubscribe::set_network(bool value) {
-  _internal_set_network(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgSubscribe.network)
-}
-
-// -------------------------------------------------------------------
-
-// MsgUnsubscribe
-
-// .bhome_msg.MsgTopicList topics = 1;
-inline bool MsgUnsubscribe::_internal_has_topics() const {
-  return this != internal_default_instance() && topics_ != nullptr;
-}
-inline bool MsgUnsubscribe::has_topics() const {
-  return _internal_has_topics();
-}
-inline const ::bhome_msg::MsgTopicList& MsgUnsubscribe::_internal_topics() const {
-  const ::bhome_msg::MsgTopicList* p = topics_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::MsgTopicList*>(
-      &::bhome_msg::_MsgTopicList_default_instance_);
-}
-inline const ::bhome_msg::MsgTopicList& MsgUnsubscribe::topics() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgUnsubscribe.topics)
-  return _internal_topics();
-}
-inline ::bhome_msg::MsgTopicList* MsgUnsubscribe::release_topics() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgUnsubscribe.topics)
-  
-  ::bhome_msg::MsgTopicList* temp = topics_;
-  topics_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::MsgTopicList* MsgUnsubscribe::_internal_mutable_topics() {
-  
-  if (topics_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::MsgTopicList>(GetArenaNoVirtual());
-    topics_ = p;
-  }
-  return topics_;
-}
-inline ::bhome_msg::MsgTopicList* MsgUnsubscribe::mutable_topics() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgUnsubscribe.topics)
-  return _internal_mutable_topics();
-}
-inline void MsgUnsubscribe::set_allocated_topics(::bhome_msg::MsgTopicList* topics) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(topics_);
-  }
-  if (topics) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      topics = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, topics, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  topics_ = topics;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgUnsubscribe.topics)
-}
-
-// bool network = 2;
-inline void MsgUnsubscribe::clear_network() {
-  network_ = false;
-}
-inline bool MsgUnsubscribe::_internal_network() const {
-  return network_;
-}
-inline bool MsgUnsubscribe::network() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgUnsubscribe.network)
-  return _internal_network();
-}
-inline void MsgUnsubscribe::_internal_set_network(bool value) {
-  
-  network_ = value;
-}
-inline void MsgUnsubscribe::set_network(bool value) {
-  _internal_set_network(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgUnsubscribe.network)
-}
-
-// -------------------------------------------------------------------
-
-// MsgRegisterRPC
-
-// .bhome_msg.MsgTopicList topics = 1;
-inline bool MsgRegisterRPC::_internal_has_topics() const {
-  return this != internal_default_instance() && topics_ != nullptr;
-}
-inline bool MsgRegisterRPC::has_topics() const {
-  return _internal_has_topics();
-}
-inline const ::bhome_msg::MsgTopicList& MsgRegisterRPC::_internal_topics() const {
-  const ::bhome_msg::MsgTopicList* p = topics_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::MsgTopicList*>(
-      &::bhome_msg::_MsgTopicList_default_instance_);
-}
-inline const ::bhome_msg::MsgTopicList& MsgRegisterRPC::topics() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRegisterRPC.topics)
-  return _internal_topics();
-}
-inline ::bhome_msg::MsgTopicList* MsgRegisterRPC::release_topics() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRegisterRPC.topics)
-  
-  ::bhome_msg::MsgTopicList* temp = topics_;
-  topics_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::MsgTopicList* MsgRegisterRPC::_internal_mutable_topics() {
-  
-  if (topics_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::MsgTopicList>(GetArenaNoVirtual());
-    topics_ = p;
-  }
-  return topics_;
-}
-inline ::bhome_msg::MsgTopicList* MsgRegisterRPC::mutable_topics() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRegisterRPC.topics)
-  return _internal_mutable_topics();
-}
-inline void MsgRegisterRPC::set_allocated_topics(::bhome_msg::MsgTopicList* topics) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(topics_);
-  }
-  if (topics) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      topics = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, topics, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  topics_ = topics;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRegisterRPC.topics)
-}
-
-// -------------------------------------------------------------------
-
-// MsgProcInit
-
-// int32 extra_mq_num = 1;
-inline void MsgProcInit::clear_extra_mq_num() {
-  extra_mq_num_ = 0;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 MsgProcInit::_internal_extra_mq_num() const {
-  return extra_mq_num_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 MsgProcInit::extra_mq_num() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgProcInit.extra_mq_num)
-  return _internal_extra_mq_num();
-}
-inline void MsgProcInit::_internal_set_extra_mq_num(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  extra_mq_num_ = value;
-}
-inline void MsgProcInit::set_extra_mq_num(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_extra_mq_num(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgProcInit.extra_mq_num)
-}
-
-// -------------------------------------------------------------------
-
-// MsgProcInitReply
-
-// .bhome_msg.ErrorMsg errmsg = 1;
-inline bool MsgProcInitReply::_internal_has_errmsg() const {
-  return this != internal_default_instance() && errmsg_ != nullptr;
-}
-inline bool MsgProcInitReply::has_errmsg() const {
-  return _internal_has_errmsg();
-}
-inline const ::bhome_msg::ErrorMsg& MsgProcInitReply::_internal_errmsg() const {
-  const ::bhome_msg::ErrorMsg* p = errmsg_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ErrorMsg*>(
-      &::bhome_msg::_ErrorMsg_default_instance_);
-}
-inline const ::bhome_msg::ErrorMsg& MsgProcInitReply::errmsg() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgProcInitReply.errmsg)
-  return _internal_errmsg();
-}
-inline ::bhome_msg::ErrorMsg* MsgProcInitReply::release_errmsg() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgProcInitReply.errmsg)
-  
-  ::bhome_msg::ErrorMsg* temp = errmsg_;
-  errmsg_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ErrorMsg* MsgProcInitReply::_internal_mutable_errmsg() {
-  
-  if (errmsg_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ErrorMsg>(GetArenaNoVirtual());
-    errmsg_ = p;
-  }
-  return errmsg_;
-}
-inline ::bhome_msg::ErrorMsg* MsgProcInitReply::mutable_errmsg() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgProcInitReply.errmsg)
-  return _internal_mutable_errmsg();
-}
-inline void MsgProcInitReply::set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(errmsg_);
-  }
-  if (errmsg) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      errmsg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, errmsg, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  errmsg_ = errmsg;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgProcInitReply.errmsg)
-}
-
-// int32 proc_index = 2;
-inline void MsgProcInitReply::clear_proc_index() {
-  proc_index_ = 0;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 MsgProcInitReply::_internal_proc_index() const {
-  return proc_index_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 MsgProcInitReply::proc_index() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgProcInitReply.proc_index)
-  return _internal_proc_index();
-}
-inline void MsgProcInitReply::_internal_set_proc_index(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  proc_index_ = value;
-}
-inline void MsgProcInitReply::set_proc_index(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_proc_index(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgProcInitReply.proc_index)
-}
-
-// repeated .bhome_msg.BHAddress extra_mqs = 3;
-inline int MsgProcInitReply::_internal_extra_mqs_size() const {
-  return extra_mqs_.size();
-}
-inline int MsgProcInitReply::extra_mqs_size() const {
-  return _internal_extra_mqs_size();
-}
-inline ::bhome_msg::BHAddress* MsgProcInitReply::mutable_extra_mqs(int index) {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgProcInitReply.extra_mqs)
-  return extra_mqs_.Mutable(index);
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >*
-MsgProcInitReply::mutable_extra_mqs() {
-  // @@protoc_insertion_point(field_mutable_list:bhome_msg.MsgProcInitReply.extra_mqs)
-  return &extra_mqs_;
-}
-inline const ::bhome_msg::BHAddress& MsgProcInitReply::_internal_extra_mqs(int index) const {
-  return extra_mqs_.Get(index);
-}
-inline const ::bhome_msg::BHAddress& MsgProcInitReply::extra_mqs(int index) const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgProcInitReply.extra_mqs)
-  return _internal_extra_mqs(index);
-}
-inline ::bhome_msg::BHAddress* MsgProcInitReply::_internal_add_extra_mqs() {
-  return extra_mqs_.Add();
-}
-inline ::bhome_msg::BHAddress* MsgProcInitReply::add_extra_mqs() {
-  // @@protoc_insertion_point(field_add:bhome_msg.MsgProcInitReply.extra_mqs)
-  return _internal_add_extra_mqs();
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::BHAddress >&
-MsgProcInitReply::extra_mqs() const {
-  // @@protoc_insertion_point(field_list:bhome_msg.MsgProcInitReply.extra_mqs)
-  return extra_mqs_;
-}
-
-// -------------------------------------------------------------------
-
-// MsgRequest
-
-// .bhome_msg.MsgRegister register = 1;
-inline bool MsgRequest::_internal_has_register_() const {
-  return request_case() == kRegister;
-}
-inline bool MsgRequest::has_register_() const {
-  return _internal_has_register_();
-}
-inline void MsgRequest::set_has_register_() {
-  _oneof_case_[0] = kRegister;
-}
-inline ::bhome_msg::MsgRegister* MsgRequest::release_register_() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequest.register)
-  if (_internal_has_register_()) {
-    clear_has_request();
-      ::bhome_msg::MsgRegister* temp = request_.register__;
-    request_.register__ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::bhome_msg::MsgRegister& MsgRequest::_internal_register_() const {
-  return _internal_has_register_()
-      ? *request_.register__
-      : *reinterpret_cast< ::bhome_msg::MsgRegister*>(&::bhome_msg::_MsgRegister_default_instance_);
-}
-inline const ::bhome_msg::MsgRegister& MsgRequest::register_() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequest.register)
-  return _internal_register_();
-}
-inline ::bhome_msg::MsgRegister* MsgRequest::_internal_mutable_register_() {
-  if (!_internal_has_register_()) {
-    clear_request();
-    set_has_register_();
-    request_.register__ = CreateMaybeMessage< ::bhome_msg::MsgRegister >(
-        GetArenaNoVirtual());
-  }
-  return request_.register__;
-}
-inline ::bhome_msg::MsgRegister* MsgRequest::mutable_register_() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequest.register)
-  return _internal_mutable_register_();
-}
-
-// .bhome_msg.MsgRequestTopic topic_request = 2;
-inline bool MsgRequest::_internal_has_topic_request() const {
-  return request_case() == kTopicRequest;
-}
-inline bool MsgRequest::has_topic_request() const {
-  return _internal_has_topic_request();
-}
-inline void MsgRequest::set_has_topic_request() {
-  _oneof_case_[0] = kTopicRequest;
-}
-inline ::bhome_msg::MsgRequestTopic* MsgRequest::release_topic_request() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequest.topic_request)
-  if (_internal_has_topic_request()) {
-    clear_has_request();
-      ::bhome_msg::MsgRequestTopic* temp = request_.topic_request_;
-    request_.topic_request_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::bhome_msg::MsgRequestTopic& MsgRequest::_internal_topic_request() const {
-  return _internal_has_topic_request()
-      ? *request_.topic_request_
-      : *reinterpret_cast< ::bhome_msg::MsgRequestTopic*>(&::bhome_msg::_MsgRequestTopic_default_instance_);
-}
-inline const ::bhome_msg::MsgRequestTopic& MsgRequest::topic_request() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequest.topic_request)
-  return _internal_topic_request();
-}
-inline ::bhome_msg::MsgRequestTopic* MsgRequest::_internal_mutable_topic_request() {
-  if (!_internal_has_topic_request()) {
-    clear_request();
-    set_has_topic_request();
-    request_.topic_request_ = CreateMaybeMessage< ::bhome_msg::MsgRequestTopic >(
-        GetArenaNoVirtual());
-  }
-  return request_.topic_request_;
-}
-inline ::bhome_msg::MsgRequestTopic* MsgRequest::mutable_topic_request() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequest.topic_request)
-  return _internal_mutable_topic_request();
-}
-
-// .bhome_msg.MsgQueryTopic topic_query = 3;
-inline bool MsgRequest::_internal_has_topic_query() const {
-  return request_case() == kTopicQuery;
-}
-inline bool MsgRequest::has_topic_query() const {
-  return _internal_has_topic_query();
-}
-inline void MsgRequest::set_has_topic_query() {
-  _oneof_case_[0] = kTopicQuery;
-}
-inline ::bhome_msg::MsgQueryTopic* MsgRequest::release_topic_query() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequest.topic_query)
-  if (_internal_has_topic_query()) {
-    clear_has_request();
-      ::bhome_msg::MsgQueryTopic* temp = request_.topic_query_;
-    request_.topic_query_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::bhome_msg::MsgQueryTopic& MsgRequest::_internal_topic_query() const {
-  return _internal_has_topic_query()
-      ? *request_.topic_query_
-      : *reinterpret_cast< ::bhome_msg::MsgQueryTopic*>(&::bhome_msg::_MsgQueryTopic_default_instance_);
-}
-inline const ::bhome_msg::MsgQueryTopic& MsgRequest::topic_query() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequest.topic_query)
-  return _internal_topic_query();
-}
-inline ::bhome_msg::MsgQueryTopic* MsgRequest::_internal_mutable_topic_query() {
-  if (!_internal_has_topic_query()) {
-    clear_request();
-    set_has_topic_query();
-    request_.topic_query_ = CreateMaybeMessage< ::bhome_msg::MsgQueryTopic >(
-        GetArenaNoVirtual());
-  }
-  return request_.topic_query_;
-}
-inline ::bhome_msg::MsgQueryTopic* MsgRequest::mutable_topic_query() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequest.topic_query)
-  return _internal_mutable_topic_query();
-}
-
-inline bool MsgRequest::has_request() const {
-  return request_case() != REQUEST_NOT_SET;
-}
-inline void MsgRequest::clear_has_request() {
-  _oneof_case_[0] = REQUEST_NOT_SET;
-}
-inline MsgRequest::RequestCase MsgRequest::request_case() const {
-  return MsgRequest::RequestCase(_oneof_case_[0]);
-}
-// -------------------------------------------------------------------
-
-// MsgReply
-
-// .bhome_msg.ErrorMsg err_msg = 1;
-inline bool MsgReply::_internal_has_err_msg() const {
-  return this != internal_default_instance() && err_msg_ != nullptr;
-}
-inline bool MsgReply::has_err_msg() const {
-  return _internal_has_err_msg();
-}
-inline const ::bhome_msg::ErrorMsg& MsgReply::_internal_err_msg() const {
-  const ::bhome_msg::ErrorMsg* p = err_msg_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ErrorMsg*>(
-      &::bhome_msg::_ErrorMsg_default_instance_);
-}
-inline const ::bhome_msg::ErrorMsg& MsgReply::err_msg() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgReply.err_msg)
-  return _internal_err_msg();
-}
-inline ::bhome_msg::ErrorMsg* MsgReply::release_err_msg() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgReply.err_msg)
-  
-  ::bhome_msg::ErrorMsg* temp = err_msg_;
-  err_msg_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ErrorMsg* MsgReply::_internal_mutable_err_msg() {
-  
-  if (err_msg_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ErrorMsg>(GetArenaNoVirtual());
-    err_msg_ = p;
-  }
-  return err_msg_;
-}
-inline ::bhome_msg::ErrorMsg* MsgReply::mutable_err_msg() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgReply.err_msg)
-  return _internal_mutable_err_msg();
-}
-inline void MsgReply::set_allocated_err_msg(::bhome_msg::ErrorMsg* err_msg) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(err_msg_);
-  }
-  if (err_msg) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      err_msg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, err_msg, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  err_msg_ = err_msg;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgReply.err_msg)
-}
-
-// -------------------------------------------------------------------
-
-// BHMsgBody
-
-// .bhome_msg.MsgRequest request = 1;
-inline bool BHMsgBody::_internal_has_request() const {
-  return reqrep_case() == kRequest;
-}
-inline bool BHMsgBody::has_request() const {
-  return _internal_has_request();
-}
-inline void BHMsgBody::set_has_request() {
-  _oneof_case_[0] = kRequest;
-}
-inline void BHMsgBody::clear_request() {
-  if (_internal_has_request()) {
-    delete reqrep_.request_;
-    clear_has_reqrep();
-  }
-}
-inline ::bhome_msg::MsgRequest* BHMsgBody::release_request() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHMsgBody.request)
-  if (_internal_has_request()) {
-    clear_has_reqrep();
-      ::bhome_msg::MsgRequest* temp = reqrep_.request_;
-    reqrep_.request_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::bhome_msg::MsgRequest& BHMsgBody::_internal_request() const {
-  return _internal_has_request()
-      ? *reqrep_.request_
-      : *reinterpret_cast< ::bhome_msg::MsgRequest*>(&::bhome_msg::_MsgRequest_default_instance_);
-}
-inline const ::bhome_msg::MsgRequest& BHMsgBody::request() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgBody.request)
-  return _internal_request();
-}
-inline ::bhome_msg::MsgRequest* BHMsgBody::_internal_mutable_request() {
-  if (!_internal_has_request()) {
-    clear_reqrep();
-    set_has_request();
-    reqrep_.request_ = CreateMaybeMessage< ::bhome_msg::MsgRequest >(
-        GetArenaNoVirtual());
-  }
-  return reqrep_.request_;
-}
-inline ::bhome_msg::MsgRequest* BHMsgBody::mutable_request() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgBody.request)
-  return _internal_mutable_request();
-}
-
-// .bhome_msg.MsgReply reply = 2;
-inline bool BHMsgBody::_internal_has_reply() const {
-  return reqrep_case() == kReply;
-}
-inline bool BHMsgBody::has_reply() const {
-  return _internal_has_reply();
-}
-inline void BHMsgBody::set_has_reply() {
-  _oneof_case_[0] = kReply;
-}
-inline void BHMsgBody::clear_reply() {
-  if (_internal_has_reply()) {
-    delete reqrep_.reply_;
-    clear_has_reqrep();
-  }
-}
-inline ::bhome_msg::MsgReply* BHMsgBody::release_reply() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHMsgBody.reply)
-  if (_internal_has_reply()) {
-    clear_has_reqrep();
-      ::bhome_msg::MsgReply* temp = reqrep_.reply_;
-    reqrep_.reply_ = nullptr;
-    return temp;
-  } else {
-    return nullptr;
-  }
-}
-inline const ::bhome_msg::MsgReply& BHMsgBody::_internal_reply() const {
-  return _internal_has_reply()
-      ? *reqrep_.reply_
-      : *reinterpret_cast< ::bhome_msg::MsgReply*>(&::bhome_msg::_MsgReply_default_instance_);
-}
-inline const ::bhome_msg::MsgReply& BHMsgBody::reply() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHMsgBody.reply)
-  return _internal_reply();
-}
-inline ::bhome_msg::MsgReply* BHMsgBody::_internal_mutable_reply() {
-  if (!_internal_has_reply()) {
-    clear_reqrep();
-    set_has_reply();
-    reqrep_.reply_ = CreateMaybeMessage< ::bhome_msg::MsgReply >(
-        GetArenaNoVirtual());
-  }
-  return reqrep_.reply_;
-}
-inline ::bhome_msg::MsgReply* BHMsgBody::mutable_reply() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHMsgBody.reply)
-  return _internal_mutable_reply();
-}
-
-inline bool BHMsgBody::has_reqrep() const {
-  return reqrep_case() != REQREP_NOT_SET;
-}
-inline void BHMsgBody::clear_has_reqrep() {
-  _oneof_case_[0] = REQREP_NOT_SET;
-}
-inline BHMsgBody::ReqrepCase BHMsgBody::reqrep_case() const {
-  return BHMsgBody::ReqrepCase(_oneof_case_[0]);
-}
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace bhome_msg
-
-PROTOBUF_NAMESPACE_OPEN
-
-template <> struct is_proto_enum< ::bhome_msg::MsgType> : ::std::true_type {};
-
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_bhome_5fmsg_2eproto
diff --git a/proto/bhome_msg.proto b/proto/bhome_msg.proto
deleted file mode 100644
index b1f9772..0000000
--- a/proto/bhome_msg.proto
+++ /dev/null
@@ -1,104 +0,0 @@
-syntax = "proto3";
-option optimize_for = LITE_RUNTIME;
-option go_package="./bhome_msg";
-
-// import "google/protobuf/descriptor.proto";
-import "bhome_msg_api.proto";
-import "error_msg.proto";
-
-package bhome_msg;
-
-
-// message format : head_len(4) + head(BHMsgHead) + body_len(4) + body(variable types)
-
-message BHMsgHead {
-	bytes msg_id = 1;
-	repeated BHAddress route = 2; // for reply and proxy.
-	int64 timestamp = 3;
-	int32 type = 4;
-	uint64 ssn_id = 5; // node mq id
-	bytes proc_id = 6;
-	bytes topic = 7; // for request route
-	BHAddress dest = 8; // other host
-}
-
-
-enum MsgType {
-	kMsgTypeInvalid = 0;
-	kMsgTypeRawData = 1;
-
-	kMsgTypeCommonReply = 2;
-
-	kMsgTypeProcInit = 8;
-	kMsgTypeProcInitReply = 9;
-	kMsgTypeRegister= 10;
-	// kMsgTypeRegisterReply= 11;
-	kMsgTypeHeartbeat = 12;
-	// kMsgTypeHeartbeatReply = 13;
-	kMsgTypeQueryTopic = 14;
-	kMsgTypeQueryTopicReply = 15;
-	kMsgTypeRequestTopic = 16;
-	kMsgTypeRequestTopicReply = 17;
-	kMsgTypeRegisterRPC = 18;
-	// reply
-
-	kMsgTypePublish = 20;
-	// kMsgTypePublishReply = 21;
-	kMsgTypeSubscribe = 22;
-	// kMsgTypeSubscribeReply = 23;
-	kMsgTypeUnsubscribe = 24;
-	// kMsgTypeUnsubscribeReply = 25;
-	kMsgTypeUnregister = 26;
-	// kMsgTypeUnregisterReply = 27;
-	kMsgTypeQueryProc = 28;
-	kMsgTypeQueryProcReply = 29;
-
-}
-
-message MsgSubscribe {
-	MsgTopicList topics = 1;
-	bool network = 2;
-}
-message MsgUnsubscribe {
-	MsgTopicList topics = 1;
-	bool network = 2;
-}
-message MsgRegisterRPC {
-	MsgTopicList topics = 1;
-}
-
-message MsgProcInit{ 
-	int32 extra_mq_num = 1;
-} // proc_id is in header.
-
-message MsgProcInitReply {
-	ErrorMsg errmsg = 1;
-	int32 proc_index = 2;
-	repeated BHAddress extra_mqs = 3;
-}
-
-service TopicRPC {
-	rpc Query (MsgQueryTopic) returns (MsgQueryTopicReply);
-	rpc Request (MsgRequestTopic) returns (MsgQueryTopicReply);
-}
-
-message MsgRequest {
-	// oneof body;
-	oneof request {
-		MsgRegister register = 1;
-		MsgRequestTopic topic_request = 2;
-		MsgQueryTopic topic_query = 3;
-	}
-}
-
-message MsgReply {
-	ErrorMsg err_msg = 1;
-	// oneof reply
-}
-
-message BHMsgBody {
-	oneof reqrep {
-		MsgRequest request = 1;
-		MsgReply reply = 2;
-	}
-}
diff --git a/proto/bhome_msg_api.pb.cc b/proto/bhome_msg_api.pb.cc
deleted file mode 100644
index 4530955..0000000
--- a/proto/bhome_msg_api.pb.cc
+++ /dev/null
@@ -1,3857 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: bhome_msg_api.proto
-
-#include "bhome_msg_api.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_error_5fmsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ErrorMsg_error_5fmsg_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto;
-namespace bhome_msg {
-class BHAddressDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BHAddress> _instance;
-} _BHAddress_default_instance_;
-class ProcInfoDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ProcInfo> _instance;
-} _ProcInfo_default_instance_;
-class MsgTopicListDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgTopicList> _instance;
-} _MsgTopicList_default_instance_;
-class MsgPublishDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgPublish> _instance;
-} _MsgPublish_default_instance_;
-class MsgCommonReplyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgCommonReply> _instance;
-} _MsgCommonReply_default_instance_;
-class MsgRequestTopicDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgRequestTopic> _instance;
-} _MsgRequestTopic_default_instance_;
-class MsgRequestTopicReplyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgRequestTopicReply> _instance;
-} _MsgRequestTopicReply_default_instance_;
-class MsgRegisterDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgRegister> _instance;
-} _MsgRegister_default_instance_;
-class MsgUnregisterDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgUnregister> _instance;
-} _MsgUnregister_default_instance_;
-class MsgHeartbeatDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgHeartbeat> _instance;
-} _MsgHeartbeat_default_instance_;
-class MsgQueryTopicDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgQueryTopic> _instance;
-} _MsgQueryTopic_default_instance_;
-class MsgQueryTopicReply_BHNodeAddressDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgQueryTopicReply_BHNodeAddress> _instance;
-} _MsgQueryTopicReply_BHNodeAddress_default_instance_;
-class MsgQueryTopicReplyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgQueryTopicReply> _instance;
-} _MsgQueryTopicReply_default_instance_;
-class MsgQueryProcDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgQueryProc> _instance;
-} _MsgQueryProc_default_instance_;
-class MsgQueryProcReply_InfoDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgQueryProcReply_Info> _instance;
-} _MsgQueryProcReply_Info_default_instance_;
-class MsgQueryProcReplyDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<MsgQueryProcReply> _instance;
-} _MsgQueryProcReply_default_instance_;
-}  // namespace bhome_msg
-static void InitDefaultsscc_info_BHAddress_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_BHAddress_default_instance_;
-    new (ptr) ::bhome_msg::BHAddress();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::BHAddress::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BHAddress_bhome_5fmsg_5fapi_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgCommonReply_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgCommonReply_default_instance_;
-    new (ptr) ::bhome_msg::MsgCommonReply();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgCommonReply::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgCommonReply_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgCommonReply_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ErrorMsg_error_5fmsg_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgHeartbeat_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgHeartbeat_default_instance_;
-    new (ptr) ::bhome_msg::MsgHeartbeat();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgHeartbeat::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgHeartbeat_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgHeartbeat_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgPublish_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgPublish_default_instance_;
-    new (ptr) ::bhome_msg::MsgPublish();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgPublish::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgPublish_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_MsgPublish_bhome_5fmsg_5fapi_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgQueryProc_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgQueryProc_default_instance_;
-    new (ptr) ::bhome_msg::MsgQueryProc();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgQueryProc::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgQueryProc_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_MsgQueryProc_bhome_5fmsg_5fapi_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgQueryProcReply_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgQueryProcReply_default_instance_;
-    new (ptr) ::bhome_msg::MsgQueryProcReply();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgQueryProcReply::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_MsgQueryProcReply_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_MsgQueryProcReply_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ErrorMsg_error_5fmsg_2eproto.base,
-      &scc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgQueryProcReply_Info_default_instance_;
-    new (ptr) ::bhome_msg::MsgQueryProcReply_Info();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgQueryProcReply_Info::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto.base,
-      &scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgQueryTopic_default_instance_;
-    new (ptr) ::bhome_msg::MsgQueryTopic();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgQueryTopic::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgQueryTopicReply_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgQueryTopicReply_default_instance_;
-    new (ptr) ::bhome_msg::MsgQueryTopicReply();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgQueryTopicReply::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_MsgQueryTopicReply_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_MsgQueryTopicReply_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ErrorMsg_error_5fmsg_2eproto.base,
-      &scc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgQueryTopicReply_BHNodeAddress_default_instance_;
-    new (ptr) ::bhome_msg::MsgQueryTopicReply_BHNodeAddress();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgQueryTopicReply_BHNodeAddress::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgRegister_default_instance_;
-    new (ptr) ::bhome_msg::MsgRegister();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgRegister::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgRequestTopic_default_instance_;
-    new (ptr) ::bhome_msg::MsgRequestTopic();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgRequestTopic::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgRequestTopicReply_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgRequestTopicReply_default_instance_;
-    new (ptr) ::bhome_msg::MsgRequestTopicReply();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgRequestTopicReply::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgRequestTopicReply_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgRequestTopicReply_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ErrorMsg_error_5fmsg_2eproto.base,}};
-
-static void InitDefaultsscc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgTopicList_default_instance_;
-    new (ptr) ::bhome_msg::MsgTopicList();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgTopicList::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto}, {}};
-
-static void InitDefaultsscc_info_MsgUnregister_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_MsgUnregister_default_instance_;
-    new (ptr) ::bhome_msg::MsgUnregister();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::MsgUnregister::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_MsgUnregister_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_MsgUnregister_bhome_5fmsg_5fapi_2eproto}, {
-      &scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto.base,}};
-
-static void InitDefaultsscc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_ProcInfo_default_instance_;
-    new (ptr) ::bhome_msg::ProcInfo();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::ProcInfo::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto}, {}};
-
-namespace bhome_msg {
-
-// ===================================================================
-
-void BHAddress::InitAsDefaultInstance() {
-}
-class BHAddress::_Internal {
- public:
-};
-
-BHAddress::BHAddress()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.BHAddress)
-}
-BHAddress::BHAddress(const BHAddress& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ip_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_ip().empty()) {
-    ip_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.ip_);
-  }
-  ::memcpy(&mq_id_, &from.mq_id_,
-    static_cast<size_t>(reinterpret_cast<char*>(&port_) -
-    reinterpret_cast<char*>(&mq_id_)) + sizeof(port_));
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.BHAddress)
-}
-
-void BHAddress::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto.base);
-  ip_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  ::memset(&mq_id_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&port_) -
-      reinterpret_cast<char*>(&mq_id_)) + sizeof(port_));
-}
-
-BHAddress::~BHAddress() {
-  // @@protoc_insertion_point(destructor:bhome_msg.BHAddress)
-  SharedDtor();
-}
-
-void BHAddress::SharedDtor() {
-  ip_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void BHAddress::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const BHAddress& BHAddress::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BHAddress_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void BHAddress::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.BHAddress)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  ip_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  ::memset(&mq_id_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&port_) -
-      reinterpret_cast<char*>(&mq_id_)) + sizeof(port_));
-  _internal_metadata_.Clear();
-}
-
-const char* BHAddress::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // uint64 mq_id = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          mq_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // int64 abs_addr = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          abs_addr_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes ip = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          auto str = _internal_mutable_ip();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // int32 port = 4;
-      case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
-          port_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* BHAddress::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.BHAddress)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // uint64 mq_id = 1;
-  if (this->mq_id() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(1, this->_internal_mq_id(), target);
-  }
-
-  // int64 abs_addr = 2;
-  if (this->abs_addr() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_abs_addr(), target);
-  }
-
-  // bytes ip = 3;
-  if (this->ip().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        3, this->_internal_ip(), target);
-  }
-
-  // int32 port = 4;
-  if (this->port() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_port(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.BHAddress)
-  return target;
-}
-
-size_t BHAddress::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.BHAddress)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes ip = 3;
-  if (this->ip().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_ip());
-  }
-
-  // uint64 mq_id = 1;
-  if (this->mq_id() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
-        this->_internal_mq_id());
-  }
-
-  // int64 abs_addr = 2;
-  if (this->abs_addr() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
-        this->_internal_abs_addr());
-  }
-
-  // int32 port = 4;
-  if (this->port() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
-        this->_internal_port());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void BHAddress::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const BHAddress*>(
-      &from));
-}
-
-void BHAddress::MergeFrom(const BHAddress& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.BHAddress)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.ip().size() > 0) {
-
-    ip_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.ip_);
-  }
-  if (from.mq_id() != 0) {
-    _internal_set_mq_id(from._internal_mq_id());
-  }
-  if (from.abs_addr() != 0) {
-    _internal_set_abs_addr(from._internal_abs_addr());
-  }
-  if (from.port() != 0) {
-    _internal_set_port(from._internal_port());
-  }
-}
-
-void BHAddress::CopyFrom(const BHAddress& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.BHAddress)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool BHAddress::IsInitialized() const {
-  return true;
-}
-
-void BHAddress::InternalSwap(BHAddress* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  ip_.Swap(&other->ip_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(mq_id_, other->mq_id_);
-  swap(abs_addr_, other->abs_addr_);
-  swap(port_, other->port_);
-}
-
-std::string BHAddress::GetTypeName() const {
-  return "bhome_msg.BHAddress";
-}
-
-
-// ===================================================================
-
-void ProcInfo::InitAsDefaultInstance() {
-}
-class ProcInfo::_Internal {
- public:
-};
-
-ProcInfo::ProcInfo()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.ProcInfo)
-}
-ProcInfo::ProcInfo(const ProcInfo& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_proc_id().empty()) {
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_name().empty()) {
-    name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.name_);
-  }
-  public_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_public_info().empty()) {
-    public_info_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.public_info_);
-  }
-  private_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_private_info().empty()) {
-    private_info_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.private_info_);
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.ProcInfo)
-}
-
-void ProcInfo::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto.base);
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  public_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  private_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-ProcInfo::~ProcInfo() {
-  // @@protoc_insertion_point(destructor:bhome_msg.ProcInfo)
-  SharedDtor();
-}
-
-void ProcInfo::SharedDtor() {
-  proc_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  public_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  private_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void ProcInfo::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const ProcInfo& ProcInfo::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ProcInfo_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void ProcInfo::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.ProcInfo)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  public_info_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  private_info_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
-}
-
-const char* ProcInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes proc_id = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_proc_id();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes name = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_name();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes public_info = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          auto str = _internal_mutable_public_info();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes private_info = 4;
-      case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
-          auto str = _internal_mutable_private_info();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* ProcInfo::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.ProcInfo)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes proc_id = 1;
-  if (this->proc_id().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_proc_id(), target);
-  }
-
-  // bytes name = 2;
-  if (this->name().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        2, this->_internal_name(), target);
-  }
-
-  // bytes public_info = 3;
-  if (this->public_info().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        3, this->_internal_public_info(), target);
-  }
-
-  // bytes private_info = 4;
-  if (this->private_info().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        4, this->_internal_private_info(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.ProcInfo)
-  return target;
-}
-
-size_t ProcInfo::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.ProcInfo)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes proc_id = 1;
-  if (this->proc_id().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_proc_id());
-  }
-
-  // bytes name = 2;
-  if (this->name().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_name());
-  }
-
-  // bytes public_info = 3;
-  if (this->public_info().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_public_info());
-  }
-
-  // bytes private_info = 4;
-  if (this->private_info().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_private_info());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void ProcInfo::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const ProcInfo*>(
-      &from));
-}
-
-void ProcInfo::MergeFrom(const ProcInfo& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.ProcInfo)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.proc_id().size() > 0) {
-
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  if (from.name().size() > 0) {
-
-    name_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.name_);
-  }
-  if (from.public_info().size() > 0) {
-
-    public_info_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.public_info_);
-  }
-  if (from.private_info().size() > 0) {
-
-    private_info_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.private_info_);
-  }
-}
-
-void ProcInfo::CopyFrom(const ProcInfo& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.ProcInfo)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ProcInfo::IsInitialized() const {
-  return true;
-}
-
-void ProcInfo::InternalSwap(ProcInfo* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  proc_id_.Swap(&other->proc_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  public_info_.Swap(&other->public_info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  private_info_.Swap(&other->private_info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-}
-
-std::string ProcInfo::GetTypeName() const {
-  return "bhome_msg.ProcInfo";
-}
-
-
-// ===================================================================
-
-void MsgTopicList::InitAsDefaultInstance() {
-}
-class MsgTopicList::_Internal {
- public:
-};
-
-MsgTopicList::MsgTopicList()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgTopicList)
-}
-MsgTopicList::MsgTopicList(const MsgTopicList& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr),
-      topic_list_(from.topic_list_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgTopicList)
-}
-
-void MsgTopicList::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto.base);
-}
-
-MsgTopicList::~MsgTopicList() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgTopicList)
-  SharedDtor();
-}
-
-void MsgTopicList::SharedDtor() {
-}
-
-void MsgTopicList::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgTopicList& MsgTopicList::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgTopicList_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgTopicList::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgTopicList)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  topic_list_.Clear();
-  _internal_metadata_.Clear();
-}
-
-const char* MsgTopicList::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // repeated bytes topic_list = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            auto str = _internal_add_topic_list();
-            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgTopicList::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgTopicList)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // repeated bytes topic_list = 1;
-  for (int i = 0, n = this->_internal_topic_list_size(); i < n; i++) {
-    const auto& s = this->_internal_topic_list(i);
-    target = stream->WriteBytes(1, s, target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgTopicList)
-  return target;
-}
-
-size_t MsgTopicList::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgTopicList)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated bytes topic_list = 1;
-  total_size += 1 *
-      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(topic_list_.size());
-  for (int i = 0, n = topic_list_.size(); i < n; i++) {
-    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-      topic_list_.Get(i));
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgTopicList::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgTopicList*>(
-      &from));
-}
-
-void MsgTopicList::MergeFrom(const MsgTopicList& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgTopicList)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  topic_list_.MergeFrom(from.topic_list_);
-}
-
-void MsgTopicList::CopyFrom(const MsgTopicList& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgTopicList)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgTopicList::IsInitialized() const {
-  return true;
-}
-
-void MsgTopicList::InternalSwap(MsgTopicList* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  topic_list_.InternalSwap(&other->topic_list_);
-}
-
-std::string MsgTopicList::GetTypeName() const {
-  return "bhome_msg.MsgTopicList";
-}
-
-
-// ===================================================================
-
-void MsgPublish::InitAsDefaultInstance() {
-}
-class MsgPublish::_Internal {
- public:
-};
-
-MsgPublish::MsgPublish()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgPublish)
-}
-MsgPublish::MsgPublish(const MsgPublish& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_topic().empty()) {
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_data().empty()) {
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgPublish)
-}
-
-void MsgPublish::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgPublish_bhome_5fmsg_5fapi_2eproto.base);
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-MsgPublish::~MsgPublish() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgPublish)
-  SharedDtor();
-}
-
-void MsgPublish::SharedDtor() {
-  topic_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void MsgPublish::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgPublish& MsgPublish::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgPublish_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgPublish::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgPublish)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
-}
-
-const char* MsgPublish::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes topic = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_topic();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes data = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_data();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgPublish::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgPublish)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes topic = 1;
-  if (this->topic().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_topic(), target);
-  }
-
-  // bytes data = 2;
-  if (this->data().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        2, this->_internal_data(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgPublish)
-  return target;
-}
-
-size_t MsgPublish::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgPublish)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes topic = 1;
-  if (this->topic().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_topic());
-  }
-
-  // bytes data = 2;
-  if (this->data().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_data());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgPublish::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgPublish*>(
-      &from));
-}
-
-void MsgPublish::MergeFrom(const MsgPublish& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgPublish)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.topic().size() > 0) {
-
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  if (from.data().size() > 0) {
-
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
-  }
-}
-
-void MsgPublish::CopyFrom(const MsgPublish& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgPublish)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgPublish::IsInitialized() const {
-  return true;
-}
-
-void MsgPublish::InternalSwap(MsgPublish* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  topic_.Swap(&other->topic_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-}
-
-std::string MsgPublish::GetTypeName() const {
-  return "bhome_msg.MsgPublish";
-}
-
-
-// ===================================================================
-
-void MsgCommonReply::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgCommonReply_default_instance_._instance.get_mutable()->errmsg_ = const_cast< ::bhome_msg::ErrorMsg*>(
-      ::bhome_msg::ErrorMsg::internal_default_instance());
-}
-class MsgCommonReply::_Internal {
- public:
-  static const ::bhome_msg::ErrorMsg& errmsg(const MsgCommonReply* msg);
-};
-
-const ::bhome_msg::ErrorMsg&
-MsgCommonReply::_Internal::errmsg(const MsgCommonReply* msg) {
-  return *msg->errmsg_;
-}
-void MsgCommonReply::clear_errmsg() {
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-}
-MsgCommonReply::MsgCommonReply()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgCommonReply)
-}
-MsgCommonReply::MsgCommonReply(const MsgCommonReply& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_errmsg()) {
-    errmsg_ = new ::bhome_msg::ErrorMsg(*from.errmsg_);
-  } else {
-    errmsg_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgCommonReply)
-}
-
-void MsgCommonReply::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgCommonReply_bhome_5fmsg_5fapi_2eproto.base);
-  errmsg_ = nullptr;
-}
-
-MsgCommonReply::~MsgCommonReply() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgCommonReply)
-  SharedDtor();
-}
-
-void MsgCommonReply::SharedDtor() {
-  if (this != internal_default_instance()) delete errmsg_;
-}
-
-void MsgCommonReply::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgCommonReply& MsgCommonReply::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgCommonReply_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgCommonReply::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgCommonReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgCommonReply::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorMsg errmsg = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_errmsg(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgCommonReply::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgCommonReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::errmsg(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgCommonReply)
-  return target;
-}
-
-size_t MsgCommonReply::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgCommonReply)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *errmsg_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgCommonReply::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgCommonReply*>(
-      &from));
-}
-
-void MsgCommonReply::MergeFrom(const MsgCommonReply& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgCommonReply)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_errmsg()) {
-    _internal_mutable_errmsg()->::bhome_msg::ErrorMsg::MergeFrom(from._internal_errmsg());
-  }
-}
-
-void MsgCommonReply::CopyFrom(const MsgCommonReply& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgCommonReply)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgCommonReply::IsInitialized() const {
-  return true;
-}
-
-void MsgCommonReply::InternalSwap(MsgCommonReply* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(errmsg_, other->errmsg_);
-}
-
-std::string MsgCommonReply::GetTypeName() const {
-  return "bhome_msg.MsgCommonReply";
-}
-
-
-// ===================================================================
-
-void MsgRequestTopic::InitAsDefaultInstance() {
-}
-class MsgRequestTopic::_Internal {
- public:
-};
-
-MsgRequestTopic::MsgRequestTopic()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgRequestTopic)
-}
-MsgRequestTopic::MsgRequestTopic(const MsgRequestTopic& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_topic().empty()) {
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_data().empty()) {
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgRequestTopic)
-}
-
-void MsgRequestTopic::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto.base);
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-MsgRequestTopic::~MsgRequestTopic() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgRequestTopic)
-  SharedDtor();
-}
-
-void MsgRequestTopic::SharedDtor() {
-  topic_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void MsgRequestTopic::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgRequestTopic& MsgRequestTopic::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgRequestTopic_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgRequestTopic::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgRequestTopic)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
-}
-
-const char* MsgRequestTopic::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes topic = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_topic();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes data = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_data();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgRequestTopic::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgRequestTopic)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes topic = 1;
-  if (this->topic().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_topic(), target);
-  }
-
-  // bytes data = 2;
-  if (this->data().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        2, this->_internal_data(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgRequestTopic)
-  return target;
-}
-
-size_t MsgRequestTopic::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgRequestTopic)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes topic = 1;
-  if (this->topic().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_topic());
-  }
-
-  // bytes data = 2;
-  if (this->data().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_data());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgRequestTopic::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgRequestTopic*>(
-      &from));
-}
-
-void MsgRequestTopic::MergeFrom(const MsgRequestTopic& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgRequestTopic)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.topic().size() > 0) {
-
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  if (from.data().size() > 0) {
-
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
-  }
-}
-
-void MsgRequestTopic::CopyFrom(const MsgRequestTopic& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgRequestTopic)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgRequestTopic::IsInitialized() const {
-  return true;
-}
-
-void MsgRequestTopic::InternalSwap(MsgRequestTopic* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  topic_.Swap(&other->topic_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-}
-
-std::string MsgRequestTopic::GetTypeName() const {
-  return "bhome_msg.MsgRequestTopic";
-}
-
-
-// ===================================================================
-
-void MsgRequestTopicReply::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgRequestTopicReply_default_instance_._instance.get_mutable()->errmsg_ = const_cast< ::bhome_msg::ErrorMsg*>(
-      ::bhome_msg::ErrorMsg::internal_default_instance());
-}
-class MsgRequestTopicReply::_Internal {
- public:
-  static const ::bhome_msg::ErrorMsg& errmsg(const MsgRequestTopicReply* msg);
-};
-
-const ::bhome_msg::ErrorMsg&
-MsgRequestTopicReply::_Internal::errmsg(const MsgRequestTopicReply* msg) {
-  return *msg->errmsg_;
-}
-void MsgRequestTopicReply::clear_errmsg() {
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-}
-MsgRequestTopicReply::MsgRequestTopicReply()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgRequestTopicReply)
-}
-MsgRequestTopicReply::MsgRequestTopicReply(const MsgRequestTopicReply& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_data().empty()) {
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
-  }
-  if (from._internal_has_errmsg()) {
-    errmsg_ = new ::bhome_msg::ErrorMsg(*from.errmsg_);
-  } else {
-    errmsg_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgRequestTopicReply)
-}
-
-void MsgRequestTopicReply::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgRequestTopicReply_bhome_5fmsg_5fapi_2eproto.base);
-  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  errmsg_ = nullptr;
-}
-
-MsgRequestTopicReply::~MsgRequestTopicReply() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgRequestTopicReply)
-  SharedDtor();
-}
-
-void MsgRequestTopicReply::SharedDtor() {
-  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (this != internal_default_instance()) delete errmsg_;
-}
-
-void MsgRequestTopicReply::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgRequestTopicReply& MsgRequestTopicReply::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgRequestTopicReply_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgRequestTopicReply::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgRequestTopicReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgRequestTopicReply::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorMsg errmsg = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_errmsg(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bytes data = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_data();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgRequestTopicReply::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgRequestTopicReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::errmsg(this), target, stream);
-  }
-
-  // bytes data = 2;
-  if (this->data().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        2, this->_internal_data(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgRequestTopicReply)
-  return target;
-}
-
-size_t MsgRequestTopicReply::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgRequestTopicReply)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes data = 2;
-  if (this->data().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_data());
-  }
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *errmsg_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgRequestTopicReply::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgRequestTopicReply*>(
-      &from));
-}
-
-void MsgRequestTopicReply::MergeFrom(const MsgRequestTopicReply& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgRequestTopicReply)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.data().size() > 0) {
-
-    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
-  }
-  if (from.has_errmsg()) {
-    _internal_mutable_errmsg()->::bhome_msg::ErrorMsg::MergeFrom(from._internal_errmsg());
-  }
-}
-
-void MsgRequestTopicReply::CopyFrom(const MsgRequestTopicReply& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgRequestTopicReply)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgRequestTopicReply::IsInitialized() const {
-  return true;
-}
-
-void MsgRequestTopicReply::InternalSwap(MsgRequestTopicReply* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(errmsg_, other->errmsg_);
-}
-
-std::string MsgRequestTopicReply::GetTypeName() const {
-  return "bhome_msg.MsgRequestTopicReply";
-}
-
-
-// ===================================================================
-
-void MsgRegister::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgRegister_default_instance_._instance.get_mutable()->proc_ = const_cast< ::bhome_msg::ProcInfo*>(
-      ::bhome_msg::ProcInfo::internal_default_instance());
-}
-class MsgRegister::_Internal {
- public:
-  static const ::bhome_msg::ProcInfo& proc(const MsgRegister* msg);
-};
-
-const ::bhome_msg::ProcInfo&
-MsgRegister::_Internal::proc(const MsgRegister* msg) {
-  return *msg->proc_;
-}
-MsgRegister::MsgRegister()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgRegister)
-}
-MsgRegister::MsgRegister(const MsgRegister& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_proc()) {
-    proc_ = new ::bhome_msg::ProcInfo(*from.proc_);
-  } else {
-    proc_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgRegister)
-}
-
-void MsgRegister::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto.base);
-  proc_ = nullptr;
-}
-
-MsgRegister::~MsgRegister() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgRegister)
-  SharedDtor();
-}
-
-void MsgRegister::SharedDtor() {
-  if (this != internal_default_instance()) delete proc_;
-}
-
-void MsgRegister::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgRegister& MsgRegister::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgRegister_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgRegister::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgRegister)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgRegister::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ProcInfo proc = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_proc(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgRegister::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgRegister)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::proc(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgRegister)
-  return target;
-}
-
-size_t MsgRegister::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgRegister)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *proc_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgRegister::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgRegister*>(
-      &from));
-}
-
-void MsgRegister::MergeFrom(const MsgRegister& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgRegister)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_proc()) {
-    _internal_mutable_proc()->::bhome_msg::ProcInfo::MergeFrom(from._internal_proc());
-  }
-}
-
-void MsgRegister::CopyFrom(const MsgRegister& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgRegister)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgRegister::IsInitialized() const {
-  return true;
-}
-
-void MsgRegister::InternalSwap(MsgRegister* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(proc_, other->proc_);
-}
-
-std::string MsgRegister::GetTypeName() const {
-  return "bhome_msg.MsgRegister";
-}
-
-
-// ===================================================================
-
-void MsgUnregister::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgUnregister_default_instance_._instance.get_mutable()->proc_ = const_cast< ::bhome_msg::ProcInfo*>(
-      ::bhome_msg::ProcInfo::internal_default_instance());
-}
-class MsgUnregister::_Internal {
- public:
-  static const ::bhome_msg::ProcInfo& proc(const MsgUnregister* msg);
-};
-
-const ::bhome_msg::ProcInfo&
-MsgUnregister::_Internal::proc(const MsgUnregister* msg) {
-  return *msg->proc_;
-}
-MsgUnregister::MsgUnregister()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgUnregister)
-}
-MsgUnregister::MsgUnregister(const MsgUnregister& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_proc()) {
-    proc_ = new ::bhome_msg::ProcInfo(*from.proc_);
-  } else {
-    proc_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgUnregister)
-}
-
-void MsgUnregister::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgUnregister_bhome_5fmsg_5fapi_2eproto.base);
-  proc_ = nullptr;
-}
-
-MsgUnregister::~MsgUnregister() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgUnregister)
-  SharedDtor();
-}
-
-void MsgUnregister::SharedDtor() {
-  if (this != internal_default_instance()) delete proc_;
-}
-
-void MsgUnregister::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgUnregister& MsgUnregister::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgUnregister_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgUnregister::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgUnregister)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgUnregister::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ProcInfo proc = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_proc(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgUnregister::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgUnregister)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::proc(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgUnregister)
-  return target;
-}
-
-size_t MsgUnregister::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgUnregister)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *proc_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgUnregister::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgUnregister*>(
-      &from));
-}
-
-void MsgUnregister::MergeFrom(const MsgUnregister& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgUnregister)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_proc()) {
-    _internal_mutable_proc()->::bhome_msg::ProcInfo::MergeFrom(from._internal_proc());
-  }
-}
-
-void MsgUnregister::CopyFrom(const MsgUnregister& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgUnregister)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgUnregister::IsInitialized() const {
-  return true;
-}
-
-void MsgUnregister::InternalSwap(MsgUnregister* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(proc_, other->proc_);
-}
-
-std::string MsgUnregister::GetTypeName() const {
-  return "bhome_msg.MsgUnregister";
-}
-
-
-// ===================================================================
-
-void MsgHeartbeat::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgHeartbeat_default_instance_._instance.get_mutable()->proc_ = const_cast< ::bhome_msg::ProcInfo*>(
-      ::bhome_msg::ProcInfo::internal_default_instance());
-}
-class MsgHeartbeat::_Internal {
- public:
-  static const ::bhome_msg::ProcInfo& proc(const MsgHeartbeat* msg);
-};
-
-const ::bhome_msg::ProcInfo&
-MsgHeartbeat::_Internal::proc(const MsgHeartbeat* msg) {
-  return *msg->proc_;
-}
-MsgHeartbeat::MsgHeartbeat()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgHeartbeat)
-}
-MsgHeartbeat::MsgHeartbeat(const MsgHeartbeat& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_proc()) {
-    proc_ = new ::bhome_msg::ProcInfo(*from.proc_);
-  } else {
-    proc_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgHeartbeat)
-}
-
-void MsgHeartbeat::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgHeartbeat_bhome_5fmsg_5fapi_2eproto.base);
-  proc_ = nullptr;
-}
-
-MsgHeartbeat::~MsgHeartbeat() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgHeartbeat)
-  SharedDtor();
-}
-
-void MsgHeartbeat::SharedDtor() {
-  if (this != internal_default_instance()) delete proc_;
-}
-
-void MsgHeartbeat::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgHeartbeat& MsgHeartbeat::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgHeartbeat_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgHeartbeat::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgHeartbeat)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgHeartbeat::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ProcInfo proc = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_proc(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgHeartbeat::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgHeartbeat)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::proc(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgHeartbeat)
-  return target;
-}
-
-size_t MsgHeartbeat::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgHeartbeat)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *proc_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgHeartbeat::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgHeartbeat*>(
-      &from));
-}
-
-void MsgHeartbeat::MergeFrom(const MsgHeartbeat& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgHeartbeat)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_proc()) {
-    _internal_mutable_proc()->::bhome_msg::ProcInfo::MergeFrom(from._internal_proc());
-  }
-}
-
-void MsgHeartbeat::CopyFrom(const MsgHeartbeat& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgHeartbeat)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgHeartbeat::IsInitialized() const {
-  return true;
-}
-
-void MsgHeartbeat::InternalSwap(MsgHeartbeat* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(proc_, other->proc_);
-}
-
-std::string MsgHeartbeat::GetTypeName() const {
-  return "bhome_msg.MsgHeartbeat";
-}
-
-
-// ===================================================================
-
-void MsgQueryTopic::InitAsDefaultInstance() {
-}
-class MsgQueryTopic::_Internal {
- public:
-};
-
-MsgQueryTopic::MsgQueryTopic()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgQueryTopic)
-}
-MsgQueryTopic::MsgQueryTopic(const MsgQueryTopic& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_topic().empty()) {
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgQueryTopic)
-}
-
-void MsgQueryTopic::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto.base);
-  topic_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-MsgQueryTopic::~MsgQueryTopic() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgQueryTopic)
-  SharedDtor();
-}
-
-void MsgQueryTopic::SharedDtor() {
-  topic_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void MsgQueryTopic::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgQueryTopic& MsgQueryTopic::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgQueryTopic_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgQueryTopic::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgQueryTopic)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
-}
-
-const char* MsgQueryTopic::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes topic = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_topic();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgQueryTopic::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgQueryTopic)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes topic = 1;
-  if (this->topic().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_topic(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgQueryTopic)
-  return target;
-}
-
-size_t MsgQueryTopic::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgQueryTopic)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes topic = 1;
-  if (this->topic().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_topic());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgQueryTopic::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgQueryTopic*>(
-      &from));
-}
-
-void MsgQueryTopic::MergeFrom(const MsgQueryTopic& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgQueryTopic)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.topic().size() > 0) {
-
-    topic_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.topic_);
-  }
-}
-
-void MsgQueryTopic::CopyFrom(const MsgQueryTopic& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgQueryTopic)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgQueryTopic::IsInitialized() const {
-  return true;
-}
-
-void MsgQueryTopic::InternalSwap(MsgQueryTopic* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  topic_.Swap(&other->topic_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-}
-
-std::string MsgQueryTopic::GetTypeName() const {
-  return "bhome_msg.MsgQueryTopic";
-}
-
-
-// ===================================================================
-
-void MsgQueryTopicReply_BHNodeAddress::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgQueryTopicReply_BHNodeAddress_default_instance_._instance.get_mutable()->addr_ = const_cast< ::bhome_msg::BHAddress*>(
-      ::bhome_msg::BHAddress::internal_default_instance());
-}
-class MsgQueryTopicReply_BHNodeAddress::_Internal {
- public:
-  static const ::bhome_msg::BHAddress& addr(const MsgQueryTopicReply_BHNodeAddress* msg);
-};
-
-const ::bhome_msg::BHAddress&
-MsgQueryTopicReply_BHNodeAddress::_Internal::addr(const MsgQueryTopicReply_BHNodeAddress* msg) {
-  return *msg->addr_;
-}
-MsgQueryTopicReply_BHNodeAddress::MsgQueryTopicReply_BHNodeAddress()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-}
-MsgQueryTopicReply_BHNodeAddress::MsgQueryTopicReply_BHNodeAddress(const MsgQueryTopicReply_BHNodeAddress& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_proc_id().empty()) {
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  if (from._internal_has_addr()) {
-    addr_ = new ::bhome_msg::BHAddress(*from.addr_);
-  } else {
-    addr_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-}
-
-void MsgQueryTopicReply_BHNodeAddress::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto.base);
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  addr_ = nullptr;
-}
-
-MsgQueryTopicReply_BHNodeAddress::~MsgQueryTopicReply_BHNodeAddress() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  SharedDtor();
-}
-
-void MsgQueryTopicReply_BHNodeAddress::SharedDtor() {
-  proc_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (this != internal_default_instance()) delete addr_;
-}
-
-void MsgQueryTopicReply_BHNodeAddress::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgQueryTopicReply_BHNodeAddress& MsgQueryTopicReply_BHNodeAddress::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgQueryTopicReply_BHNodeAddress_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgQueryTopicReply_BHNodeAddress::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (GetArenaNoVirtual() == nullptr && addr_ != nullptr) {
-    delete addr_;
-  }
-  addr_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgQueryTopicReply_BHNodeAddress::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes proc_id = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_proc_id();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.BHAddress addr = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr = ctx->ParseMessage(_internal_mutable_addr(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgQueryTopicReply_BHNodeAddress::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes proc_id = 1;
-  if (this->proc_id().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_proc_id(), target);
-  }
-
-  // .bhome_msg.BHAddress addr = 2;
-  if (this->has_addr()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        2, _Internal::addr(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  return target;
-}
-
-size_t MsgQueryTopicReply_BHNodeAddress::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes proc_id = 1;
-  if (this->proc_id().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_proc_id());
-  }
-
-  // .bhome_msg.BHAddress addr = 2;
-  if (this->has_addr()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *addr_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgQueryTopicReply_BHNodeAddress::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgQueryTopicReply_BHNodeAddress*>(
-      &from));
-}
-
-void MsgQueryTopicReply_BHNodeAddress::MergeFrom(const MsgQueryTopicReply_BHNodeAddress& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.proc_id().size() > 0) {
-
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  if (from.has_addr()) {
-    _internal_mutable_addr()->::bhome_msg::BHAddress::MergeFrom(from._internal_addr());
-  }
-}
-
-void MsgQueryTopicReply_BHNodeAddress::CopyFrom(const MsgQueryTopicReply_BHNodeAddress& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgQueryTopicReply_BHNodeAddress::IsInitialized() const {
-  return true;
-}
-
-void MsgQueryTopicReply_BHNodeAddress::InternalSwap(MsgQueryTopicReply_BHNodeAddress* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  proc_id_.Swap(&other->proc_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(addr_, other->addr_);
-}
-
-std::string MsgQueryTopicReply_BHNodeAddress::GetTypeName() const {
-  return "bhome_msg.MsgQueryTopicReply.BHNodeAddress";
-}
-
-
-// ===================================================================
-
-void MsgQueryTopicReply::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgQueryTopicReply_default_instance_._instance.get_mutable()->errmsg_ = const_cast< ::bhome_msg::ErrorMsg*>(
-      ::bhome_msg::ErrorMsg::internal_default_instance());
-}
-class MsgQueryTopicReply::_Internal {
- public:
-  static const ::bhome_msg::ErrorMsg& errmsg(const MsgQueryTopicReply* msg);
-};
-
-const ::bhome_msg::ErrorMsg&
-MsgQueryTopicReply::_Internal::errmsg(const MsgQueryTopicReply* msg) {
-  return *msg->errmsg_;
-}
-void MsgQueryTopicReply::clear_errmsg() {
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-}
-MsgQueryTopicReply::MsgQueryTopicReply()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgQueryTopicReply)
-}
-MsgQueryTopicReply::MsgQueryTopicReply(const MsgQueryTopicReply& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr),
-      node_address_(from.node_address_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_errmsg()) {
-    errmsg_ = new ::bhome_msg::ErrorMsg(*from.errmsg_);
-  } else {
-    errmsg_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgQueryTopicReply)
-}
-
-void MsgQueryTopicReply::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgQueryTopicReply_bhome_5fmsg_5fapi_2eproto.base);
-  errmsg_ = nullptr;
-}
-
-MsgQueryTopicReply::~MsgQueryTopicReply() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgQueryTopicReply)
-  SharedDtor();
-}
-
-void MsgQueryTopicReply::SharedDtor() {
-  if (this != internal_default_instance()) delete errmsg_;
-}
-
-void MsgQueryTopicReply::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgQueryTopicReply& MsgQueryTopicReply::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgQueryTopicReply_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgQueryTopicReply::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgQueryTopicReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  node_address_.Clear();
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgQueryTopicReply::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorMsg errmsg = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_errmsg(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated .bhome_msg.MsgQueryTopicReply.BHNodeAddress node_address = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_node_address(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgQueryTopicReply::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgQueryTopicReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::errmsg(this), target, stream);
-  }
-
-  // repeated .bhome_msg.MsgQueryTopicReply.BHNodeAddress node_address = 2;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_node_address_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(2, this->_internal_node_address(i), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgQueryTopicReply)
-  return target;
-}
-
-size_t MsgQueryTopicReply::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgQueryTopicReply)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .bhome_msg.MsgQueryTopicReply.BHNodeAddress node_address = 2;
-  total_size += 1UL * this->_internal_node_address_size();
-  for (const auto& msg : this->node_address_) {
-    total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
-  }
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *errmsg_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgQueryTopicReply::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgQueryTopicReply*>(
-      &from));
-}
-
-void MsgQueryTopicReply::MergeFrom(const MsgQueryTopicReply& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgQueryTopicReply)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  node_address_.MergeFrom(from.node_address_);
-  if (from.has_errmsg()) {
-    _internal_mutable_errmsg()->::bhome_msg::ErrorMsg::MergeFrom(from._internal_errmsg());
-  }
-}
-
-void MsgQueryTopicReply::CopyFrom(const MsgQueryTopicReply& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgQueryTopicReply)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgQueryTopicReply::IsInitialized() const {
-  return true;
-}
-
-void MsgQueryTopicReply::InternalSwap(MsgQueryTopicReply* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  node_address_.InternalSwap(&other->node_address_);
-  swap(errmsg_, other->errmsg_);
-}
-
-std::string MsgQueryTopicReply::GetTypeName() const {
-  return "bhome_msg.MsgQueryTopicReply";
-}
-
-
-// ===================================================================
-
-void MsgQueryProc::InitAsDefaultInstance() {
-}
-class MsgQueryProc::_Internal {
- public:
-};
-
-MsgQueryProc::MsgQueryProc()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgQueryProc)
-}
-MsgQueryProc::MsgQueryProc(const MsgQueryProc& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_proc_id().empty()) {
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgQueryProc)
-}
-
-void MsgQueryProc::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgQueryProc_bhome_5fmsg_5fapi_2eproto.base);
-  proc_id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-MsgQueryProc::~MsgQueryProc() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgQueryProc)
-  SharedDtor();
-}
-
-void MsgQueryProc::SharedDtor() {
-  proc_id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void MsgQueryProc::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgQueryProc& MsgQueryProc::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgQueryProc_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgQueryProc::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgQueryProc)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  _internal_metadata_.Clear();
-}
-
-const char* MsgQueryProc::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes proc_id = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_proc_id();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgQueryProc::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgQueryProc)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // bytes proc_id = 1;
-  if (this->proc_id().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_proc_id(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgQueryProc)
-  return target;
-}
-
-size_t MsgQueryProc::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgQueryProc)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes proc_id = 1;
-  if (this->proc_id().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_proc_id());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgQueryProc::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgQueryProc*>(
-      &from));
-}
-
-void MsgQueryProc::MergeFrom(const MsgQueryProc& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgQueryProc)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.proc_id().size() > 0) {
-
-    proc_id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.proc_id_);
-  }
-}
-
-void MsgQueryProc::CopyFrom(const MsgQueryProc& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgQueryProc)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgQueryProc::IsInitialized() const {
-  return true;
-}
-
-void MsgQueryProc::InternalSwap(MsgQueryProc* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  proc_id_.Swap(&other->proc_id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-}
-
-std::string MsgQueryProc::GetTypeName() const {
-  return "bhome_msg.MsgQueryProc";
-}
-
-
-// ===================================================================
-
-void MsgQueryProcReply_Info::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgQueryProcReply_Info_default_instance_._instance.get_mutable()->proc_ = const_cast< ::bhome_msg::ProcInfo*>(
-      ::bhome_msg::ProcInfo::internal_default_instance());
-  ::bhome_msg::_MsgQueryProcReply_Info_default_instance_._instance.get_mutable()->service_ = const_cast< ::bhome_msg::MsgTopicList*>(
-      ::bhome_msg::MsgTopicList::internal_default_instance());
-  ::bhome_msg::_MsgQueryProcReply_Info_default_instance_._instance.get_mutable()->local_sub_ = const_cast< ::bhome_msg::MsgTopicList*>(
-      ::bhome_msg::MsgTopicList::internal_default_instance());
-  ::bhome_msg::_MsgQueryProcReply_Info_default_instance_._instance.get_mutable()->net_sub_ = const_cast< ::bhome_msg::MsgTopicList*>(
-      ::bhome_msg::MsgTopicList::internal_default_instance());
-}
-class MsgQueryProcReply_Info::_Internal {
- public:
-  static const ::bhome_msg::ProcInfo& proc(const MsgQueryProcReply_Info* msg);
-  static const ::bhome_msg::MsgTopicList& service(const MsgQueryProcReply_Info* msg);
-  static const ::bhome_msg::MsgTopicList& local_sub(const MsgQueryProcReply_Info* msg);
-  static const ::bhome_msg::MsgTopicList& net_sub(const MsgQueryProcReply_Info* msg);
-};
-
-const ::bhome_msg::ProcInfo&
-MsgQueryProcReply_Info::_Internal::proc(const MsgQueryProcReply_Info* msg) {
-  return *msg->proc_;
-}
-const ::bhome_msg::MsgTopicList&
-MsgQueryProcReply_Info::_Internal::service(const MsgQueryProcReply_Info* msg) {
-  return *msg->service_;
-}
-const ::bhome_msg::MsgTopicList&
-MsgQueryProcReply_Info::_Internal::local_sub(const MsgQueryProcReply_Info* msg) {
-  return *msg->local_sub_;
-}
-const ::bhome_msg::MsgTopicList&
-MsgQueryProcReply_Info::_Internal::net_sub(const MsgQueryProcReply_Info* msg) {
-  return *msg->net_sub_;
-}
-MsgQueryProcReply_Info::MsgQueryProcReply_Info()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgQueryProcReply.Info)
-}
-MsgQueryProcReply_Info::MsgQueryProcReply_Info(const MsgQueryProcReply_Info& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_proc()) {
-    proc_ = new ::bhome_msg::ProcInfo(*from.proc_);
-  } else {
-    proc_ = nullptr;
-  }
-  if (from._internal_has_service()) {
-    service_ = new ::bhome_msg::MsgTopicList(*from.service_);
-  } else {
-    service_ = nullptr;
-  }
-  if (from._internal_has_local_sub()) {
-    local_sub_ = new ::bhome_msg::MsgTopicList(*from.local_sub_);
-  } else {
-    local_sub_ = nullptr;
-  }
-  if (from._internal_has_net_sub()) {
-    net_sub_ = new ::bhome_msg::MsgTopicList(*from.net_sub_);
-  } else {
-    net_sub_ = nullptr;
-  }
-  online_ = from.online_;
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgQueryProcReply.Info)
-}
-
-void MsgQueryProcReply_Info::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto.base);
-  ::memset(&proc_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&online_) -
-      reinterpret_cast<char*>(&proc_)) + sizeof(online_));
-}
-
-MsgQueryProcReply_Info::~MsgQueryProcReply_Info() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgQueryProcReply.Info)
-  SharedDtor();
-}
-
-void MsgQueryProcReply_Info::SharedDtor() {
-  if (this != internal_default_instance()) delete proc_;
-  if (this != internal_default_instance()) delete service_;
-  if (this != internal_default_instance()) delete local_sub_;
-  if (this != internal_default_instance()) delete net_sub_;
-}
-
-void MsgQueryProcReply_Info::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgQueryProcReply_Info& MsgQueryProcReply_Info::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgQueryProcReply_Info_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgQueryProcReply_Info::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgQueryProcReply.Info)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-  if (GetArenaNoVirtual() == nullptr && service_ != nullptr) {
-    delete service_;
-  }
-  service_ = nullptr;
-  if (GetArenaNoVirtual() == nullptr && local_sub_ != nullptr) {
-    delete local_sub_;
-  }
-  local_sub_ = nullptr;
-  if (GetArenaNoVirtual() == nullptr && net_sub_ != nullptr) {
-    delete net_sub_;
-  }
-  net_sub_ = nullptr;
-  online_ = false;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgQueryProcReply_Info::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ProcInfo proc = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_proc(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // bool online = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          online_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.MsgTopicList service = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr = ctx->ParseMessage(_internal_mutable_service(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.MsgTopicList local_sub = 4;
-      case 4:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
-          ptr = ctx->ParseMessage(_internal_mutable_local_sub(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // .bhome_msg.MsgTopicList net_sub = 5;
-      case 5:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
-          ptr = ctx->ParseMessage(_internal_mutable_net_sub(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgQueryProcReply_Info::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgQueryProcReply.Info)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::proc(this), target, stream);
-  }
-
-  // bool online = 2;
-  if (this->online() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_online(), target);
-  }
-
-  // .bhome_msg.MsgTopicList service = 3;
-  if (this->has_service()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        3, _Internal::service(this), target, stream);
-  }
-
-  // .bhome_msg.MsgTopicList local_sub = 4;
-  if (this->has_local_sub()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        4, _Internal::local_sub(this), target, stream);
-  }
-
-  // .bhome_msg.MsgTopicList net_sub = 5;
-  if (this->has_net_sub()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        5, _Internal::net_sub(this), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgQueryProcReply.Info)
-  return target;
-}
-
-size_t MsgQueryProcReply_Info::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgQueryProcReply.Info)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // .bhome_msg.ProcInfo proc = 1;
-  if (this->has_proc()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *proc_);
-  }
-
-  // .bhome_msg.MsgTopicList service = 3;
-  if (this->has_service()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *service_);
-  }
-
-  // .bhome_msg.MsgTopicList local_sub = 4;
-  if (this->has_local_sub()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *local_sub_);
-  }
-
-  // .bhome_msg.MsgTopicList net_sub = 5;
-  if (this->has_net_sub()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *net_sub_);
-  }
-
-  // bool online = 2;
-  if (this->online() != 0) {
-    total_size += 1 + 1;
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgQueryProcReply_Info::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgQueryProcReply_Info*>(
-      &from));
-}
-
-void MsgQueryProcReply_Info::MergeFrom(const MsgQueryProcReply_Info& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgQueryProcReply.Info)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.has_proc()) {
-    _internal_mutable_proc()->::bhome_msg::ProcInfo::MergeFrom(from._internal_proc());
-  }
-  if (from.has_service()) {
-    _internal_mutable_service()->::bhome_msg::MsgTopicList::MergeFrom(from._internal_service());
-  }
-  if (from.has_local_sub()) {
-    _internal_mutable_local_sub()->::bhome_msg::MsgTopicList::MergeFrom(from._internal_local_sub());
-  }
-  if (from.has_net_sub()) {
-    _internal_mutable_net_sub()->::bhome_msg::MsgTopicList::MergeFrom(from._internal_net_sub());
-  }
-  if (from.online() != 0) {
-    _internal_set_online(from._internal_online());
-  }
-}
-
-void MsgQueryProcReply_Info::CopyFrom(const MsgQueryProcReply_Info& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgQueryProcReply.Info)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgQueryProcReply_Info::IsInitialized() const {
-  return true;
-}
-
-void MsgQueryProcReply_Info::InternalSwap(MsgQueryProcReply_Info* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(proc_, other->proc_);
-  swap(service_, other->service_);
-  swap(local_sub_, other->local_sub_);
-  swap(net_sub_, other->net_sub_);
-  swap(online_, other->online_);
-}
-
-std::string MsgQueryProcReply_Info::GetTypeName() const {
-  return "bhome_msg.MsgQueryProcReply.Info";
-}
-
-
-// ===================================================================
-
-void MsgQueryProcReply::InitAsDefaultInstance() {
-  ::bhome_msg::_MsgQueryProcReply_default_instance_._instance.get_mutable()->errmsg_ = const_cast< ::bhome_msg::ErrorMsg*>(
-      ::bhome_msg::ErrorMsg::internal_default_instance());
-}
-class MsgQueryProcReply::_Internal {
- public:
-  static const ::bhome_msg::ErrorMsg& errmsg(const MsgQueryProcReply* msg);
-};
-
-const ::bhome_msg::ErrorMsg&
-MsgQueryProcReply::_Internal::errmsg(const MsgQueryProcReply* msg) {
-  return *msg->errmsg_;
-}
-void MsgQueryProcReply::clear_errmsg() {
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-}
-MsgQueryProcReply::MsgQueryProcReply()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.MsgQueryProcReply)
-}
-MsgQueryProcReply::MsgQueryProcReply(const MsgQueryProcReply& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr),
-      proc_list_(from.proc_list_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_errmsg()) {
-    errmsg_ = new ::bhome_msg::ErrorMsg(*from.errmsg_);
-  } else {
-    errmsg_ = nullptr;
-  }
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.MsgQueryProcReply)
-}
-
-void MsgQueryProcReply::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_MsgQueryProcReply_bhome_5fmsg_5fapi_2eproto.base);
-  errmsg_ = nullptr;
-}
-
-MsgQueryProcReply::~MsgQueryProcReply() {
-  // @@protoc_insertion_point(destructor:bhome_msg.MsgQueryProcReply)
-  SharedDtor();
-}
-
-void MsgQueryProcReply::SharedDtor() {
-  if (this != internal_default_instance()) delete errmsg_;
-}
-
-void MsgQueryProcReply::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const MsgQueryProcReply& MsgQueryProcReply::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_MsgQueryProcReply_bhome_5fmsg_5fapi_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void MsgQueryProcReply::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.MsgQueryProcReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  proc_list_.Clear();
-  if (GetArenaNoVirtual() == nullptr && errmsg_ != nullptr) {
-    delete errmsg_;
-  }
-  errmsg_ = nullptr;
-  _internal_metadata_.Clear();
-}
-
-const char* MsgQueryProcReply::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorMsg errmsg = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_errmsg(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated .bhome_msg.MsgQueryProcReply.Info proc_list = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_proc_list(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* MsgQueryProcReply::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.MsgQueryProcReply)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::errmsg(this), target, stream);
-  }
-
-  // repeated .bhome_msg.MsgQueryProcReply.Info proc_list = 2;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_proc_list_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(2, this->_internal_proc_list(i), target, stream);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.MsgQueryProcReply)
-  return target;
-}
-
-size_t MsgQueryProcReply::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.MsgQueryProcReply)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // repeated .bhome_msg.MsgQueryProcReply.Info proc_list = 2;
-  total_size += 1UL * this->_internal_proc_list_size();
-  for (const auto& msg : this->proc_list_) {
-    total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
-  }
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  if (this->has_errmsg()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *errmsg_);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void MsgQueryProcReply::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const MsgQueryProcReply*>(
-      &from));
-}
-
-void MsgQueryProcReply::MergeFrom(const MsgQueryProcReply& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.MsgQueryProcReply)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  proc_list_.MergeFrom(from.proc_list_);
-  if (from.has_errmsg()) {
-    _internal_mutable_errmsg()->::bhome_msg::ErrorMsg::MergeFrom(from._internal_errmsg());
-  }
-}
-
-void MsgQueryProcReply::CopyFrom(const MsgQueryProcReply& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.MsgQueryProcReply)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool MsgQueryProcReply::IsInitialized() const {
-  return true;
-}
-
-void MsgQueryProcReply::InternalSwap(MsgQueryProcReply* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  proc_list_.InternalSwap(&other->proc_list_);
-  swap(errmsg_, other->errmsg_);
-}
-
-std::string MsgQueryProcReply::GetTypeName() const {
-  return "bhome_msg.MsgQueryProcReply";
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace bhome_msg
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::bhome_msg::BHAddress* Arena::CreateMaybeMessage< ::bhome_msg::BHAddress >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::BHAddress >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::ProcInfo* Arena::CreateMaybeMessage< ::bhome_msg::ProcInfo >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::ProcInfo >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgTopicList* Arena::CreateMaybeMessage< ::bhome_msg::MsgTopicList >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgTopicList >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgPublish* Arena::CreateMaybeMessage< ::bhome_msg::MsgPublish >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgPublish >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgCommonReply* Arena::CreateMaybeMessage< ::bhome_msg::MsgCommonReply >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgCommonReply >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgRequestTopic* Arena::CreateMaybeMessage< ::bhome_msg::MsgRequestTopic >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgRequestTopic >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgRequestTopicReply* Arena::CreateMaybeMessage< ::bhome_msg::MsgRequestTopicReply >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgRequestTopicReply >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgRegister* Arena::CreateMaybeMessage< ::bhome_msg::MsgRegister >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgRegister >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgUnregister* Arena::CreateMaybeMessage< ::bhome_msg::MsgUnregister >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgUnregister >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgHeartbeat* Arena::CreateMaybeMessage< ::bhome_msg::MsgHeartbeat >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgHeartbeat >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgQueryTopic* Arena::CreateMaybeMessage< ::bhome_msg::MsgQueryTopic >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgQueryTopic >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* Arena::CreateMaybeMessage< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgQueryTopicReply* Arena::CreateMaybeMessage< ::bhome_msg::MsgQueryTopicReply >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgQueryTopicReply >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgQueryProc* Arena::CreateMaybeMessage< ::bhome_msg::MsgQueryProc >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgQueryProc >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgQueryProcReply_Info* Arena::CreateMaybeMessage< ::bhome_msg::MsgQueryProcReply_Info >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgQueryProcReply_Info >(arena);
-}
-template<> PROTOBUF_NOINLINE ::bhome_msg::MsgQueryProcReply* Arena::CreateMaybeMessage< ::bhome_msg::MsgQueryProcReply >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::MsgQueryProcReply >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/proto/bhome_msg_api.pb.go b/proto/bhome_msg_api.pb.go
deleted file mode 100644
index 8a62e34..0000000
--- a/proto/bhome_msg_api.pb.go
+++ /dev/null
@@ -1,3762 +0,0 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: bhome_msg_api.proto
-
-package bhome_msg
-
-import (
-	fmt "fmt"
-	proto "github.com/gogo/protobuf/proto"
-	io "io"
-	math "math"
-	math_bits "math/bits"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-
-type BHAddress struct {
-	MqId    uint64 `protobuf:"varint,1,opt,name=mq_id,json=mqId,proto3" json:"mq_id,omitempty"`
-	AbsAddr int64  `protobuf:"varint,2,opt,name=abs_addr,json=absAddr,proto3" json:"abs_addr,omitempty"`
-	Ip      []byte `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"`
-	Port    int32  `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"`
-}
-
-func (m *BHAddress) Reset()         { *m = BHAddress{} }
-func (m *BHAddress) String() string { return proto.CompactTextString(m) }
-func (*BHAddress) ProtoMessage()    {}
-func (*BHAddress) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{0}
-}
-func (m *BHAddress) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *BHAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_BHAddress.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *BHAddress) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_BHAddress.Merge(m, src)
-}
-func (m *BHAddress) XXX_Size() int {
-	return m.Size()
-}
-func (m *BHAddress) XXX_DiscardUnknown() {
-	xxx_messageInfo_BHAddress.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_BHAddress proto.InternalMessageInfo
-
-func (m *BHAddress) GetMqId() uint64 {
-	if m != nil {
-		return m.MqId
-	}
-	return 0
-}
-
-func (m *BHAddress) GetAbsAddr() int64 {
-	if m != nil {
-		return m.AbsAddr
-	}
-	return 0
-}
-
-func (m *BHAddress) GetIp() []byte {
-	if m != nil {
-		return m.Ip
-	}
-	return nil
-}
-
-func (m *BHAddress) GetPort() int32 {
-	if m != nil {
-		return m.Port
-	}
-	return 0
-}
-
-type ProcInfo struct {
-	ProcId      []byte `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
-	Name        []byte `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	PublicInfo  []byte `protobuf:"bytes,3,opt,name=public_info,json=publicInfo,proto3" json:"public_info,omitempty"`
-	PrivateInfo []byte `protobuf:"bytes,4,opt,name=private_info,json=privateInfo,proto3" json:"private_info,omitempty"`
-}
-
-func (m *ProcInfo) Reset()         { *m = ProcInfo{} }
-func (m *ProcInfo) String() string { return proto.CompactTextString(m) }
-func (*ProcInfo) ProtoMessage()    {}
-func (*ProcInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{1}
-}
-func (m *ProcInfo) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *ProcInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_ProcInfo.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *ProcInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ProcInfo.Merge(m, src)
-}
-func (m *ProcInfo) XXX_Size() int {
-	return m.Size()
-}
-func (m *ProcInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_ProcInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ProcInfo proto.InternalMessageInfo
-
-func (m *ProcInfo) GetProcId() []byte {
-	if m != nil {
-		return m.ProcId
-	}
-	return nil
-}
-
-func (m *ProcInfo) GetName() []byte {
-	if m != nil {
-		return m.Name
-	}
-	return nil
-}
-
-func (m *ProcInfo) GetPublicInfo() []byte {
-	if m != nil {
-		return m.PublicInfo
-	}
-	return nil
-}
-
-func (m *ProcInfo) GetPrivateInfo() []byte {
-	if m != nil {
-		return m.PrivateInfo
-	}
-	return nil
-}
-
-type MsgTopicList struct {
-	TopicList [][]byte `protobuf:"bytes,1,rep,name=topic_list,json=topicList,proto3" json:"topic_list,omitempty"`
-}
-
-func (m *MsgTopicList) Reset()         { *m = MsgTopicList{} }
-func (m *MsgTopicList) String() string { return proto.CompactTextString(m) }
-func (*MsgTopicList) ProtoMessage()    {}
-func (*MsgTopicList) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{2}
-}
-func (m *MsgTopicList) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgTopicList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgTopicList.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgTopicList) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgTopicList.Merge(m, src)
-}
-func (m *MsgTopicList) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgTopicList) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgTopicList.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgTopicList proto.InternalMessageInfo
-
-func (m *MsgTopicList) GetTopicList() [][]byte {
-	if m != nil {
-		return m.TopicList
-	}
-	return nil
-}
-
-type MsgPublish struct {
-	Topic []byte `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
-	Data  []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-}
-
-func (m *MsgPublish) Reset()         { *m = MsgPublish{} }
-func (m *MsgPublish) String() string { return proto.CompactTextString(m) }
-func (*MsgPublish) ProtoMessage()    {}
-func (*MsgPublish) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{3}
-}
-func (m *MsgPublish) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgPublish) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgPublish.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgPublish) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgPublish.Merge(m, src)
-}
-func (m *MsgPublish) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgPublish) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgPublish.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgPublish proto.InternalMessageInfo
-
-func (m *MsgPublish) GetTopic() []byte {
-	if m != nil {
-		return m.Topic
-	}
-	return nil
-}
-
-func (m *MsgPublish) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-type MsgCommonReply struct {
-	Errmsg *ErrorMsg `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
-}
-
-func (m *MsgCommonReply) Reset()         { *m = MsgCommonReply{} }
-func (m *MsgCommonReply) String() string { return proto.CompactTextString(m) }
-func (*MsgCommonReply) ProtoMessage()    {}
-func (*MsgCommonReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{4}
-}
-func (m *MsgCommonReply) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgCommonReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgCommonReply.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgCommonReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgCommonReply.Merge(m, src)
-}
-func (m *MsgCommonReply) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgCommonReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgCommonReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgCommonReply proto.InternalMessageInfo
-
-func (m *MsgCommonReply) GetErrmsg() *ErrorMsg {
-	if m != nil {
-		return m.Errmsg
-	}
-	return nil
-}
-
-type MsgRequestTopic struct {
-	Topic []byte `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
-	Data  []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-}
-
-func (m *MsgRequestTopic) Reset()         { *m = MsgRequestTopic{} }
-func (m *MsgRequestTopic) String() string { return proto.CompactTextString(m) }
-func (*MsgRequestTopic) ProtoMessage()    {}
-func (*MsgRequestTopic) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{5}
-}
-func (m *MsgRequestTopic) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgRequestTopic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgRequestTopic.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgRequestTopic) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgRequestTopic.Merge(m, src)
-}
-func (m *MsgRequestTopic) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgRequestTopic) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgRequestTopic.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRequestTopic proto.InternalMessageInfo
-
-func (m *MsgRequestTopic) GetTopic() []byte {
-	if m != nil {
-		return m.Topic
-	}
-	return nil
-}
-
-func (m *MsgRequestTopic) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-type MsgRequestTopicReply struct {
-	Errmsg *ErrorMsg `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
-	Data   []byte    `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-}
-
-func (m *MsgRequestTopicReply) Reset()         { *m = MsgRequestTopicReply{} }
-func (m *MsgRequestTopicReply) String() string { return proto.CompactTextString(m) }
-func (*MsgRequestTopicReply) ProtoMessage()    {}
-func (*MsgRequestTopicReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{6}
-}
-func (m *MsgRequestTopicReply) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgRequestTopicReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgRequestTopicReply.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgRequestTopicReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgRequestTopicReply.Merge(m, src)
-}
-func (m *MsgRequestTopicReply) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgRequestTopicReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgRequestTopicReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRequestTopicReply proto.InternalMessageInfo
-
-func (m *MsgRequestTopicReply) GetErrmsg() *ErrorMsg {
-	if m != nil {
-		return m.Errmsg
-	}
-	return nil
-}
-
-func (m *MsgRequestTopicReply) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-type MsgRegister struct {
-	Proc *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
-}
-
-func (m *MsgRegister) Reset()         { *m = MsgRegister{} }
-func (m *MsgRegister) String() string { return proto.CompactTextString(m) }
-func (*MsgRegister) ProtoMessage()    {}
-func (*MsgRegister) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{7}
-}
-func (m *MsgRegister) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgRegister) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgRegister.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgRegister) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgRegister.Merge(m, src)
-}
-func (m *MsgRegister) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgRegister) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgRegister.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRegister proto.InternalMessageInfo
-
-func (m *MsgRegister) GetProc() *ProcInfo {
-	if m != nil {
-		return m.Proc
-	}
-	return nil
-}
-
-type MsgUnregister struct {
-	Proc *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
-}
-
-func (m *MsgUnregister) Reset()         { *m = MsgUnregister{} }
-func (m *MsgUnregister) String() string { return proto.CompactTextString(m) }
-func (*MsgUnregister) ProtoMessage()    {}
-func (*MsgUnregister) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{8}
-}
-func (m *MsgUnregister) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgUnregister) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgUnregister.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgUnregister) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgUnregister.Merge(m, src)
-}
-func (m *MsgUnregister) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgUnregister) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgUnregister.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgUnregister proto.InternalMessageInfo
-
-func (m *MsgUnregister) GetProc() *ProcInfo {
-	if m != nil {
-		return m.Proc
-	}
-	return nil
-}
-
-type MsgHeartbeat struct {
-	Proc *ProcInfo `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
-}
-
-func (m *MsgHeartbeat) Reset()         { *m = MsgHeartbeat{} }
-func (m *MsgHeartbeat) String() string { return proto.CompactTextString(m) }
-func (*MsgHeartbeat) ProtoMessage()    {}
-func (*MsgHeartbeat) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{9}
-}
-func (m *MsgHeartbeat) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgHeartbeat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgHeartbeat.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgHeartbeat) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgHeartbeat.Merge(m, src)
-}
-func (m *MsgHeartbeat) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgHeartbeat) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgHeartbeat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgHeartbeat proto.InternalMessageInfo
-
-func (m *MsgHeartbeat) GetProc() *ProcInfo {
-	if m != nil {
-		return m.Proc
-	}
-	return nil
-}
-
-type MsgQueryTopic struct {
-	Topic []byte `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
-}
-
-func (m *MsgQueryTopic) Reset()         { *m = MsgQueryTopic{} }
-func (m *MsgQueryTopic) String() string { return proto.CompactTextString(m) }
-func (*MsgQueryTopic) ProtoMessage()    {}
-func (*MsgQueryTopic) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{10}
-}
-func (m *MsgQueryTopic) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgQueryTopic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgQueryTopic.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgQueryTopic) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgQueryTopic.Merge(m, src)
-}
-func (m *MsgQueryTopic) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgQueryTopic) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgQueryTopic.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgQueryTopic proto.InternalMessageInfo
-
-func (m *MsgQueryTopic) GetTopic() []byte {
-	if m != nil {
-		return m.Topic
-	}
-	return nil
-}
-
-type MsgQueryTopicReply struct {
-	Errmsg      *ErrorMsg                           `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
-	NodeAddress []*MsgQueryTopicReply_BHNodeAddress `protobuf:"bytes,2,rep,name=node_address,json=nodeAddress,proto3" json:"node_address,omitempty"`
-}
-
-func (m *MsgQueryTopicReply) Reset()         { *m = MsgQueryTopicReply{} }
-func (m *MsgQueryTopicReply) String() string { return proto.CompactTextString(m) }
-func (*MsgQueryTopicReply) ProtoMessage()    {}
-func (*MsgQueryTopicReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{11}
-}
-func (m *MsgQueryTopicReply) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgQueryTopicReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgQueryTopicReply.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgQueryTopicReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgQueryTopicReply.Merge(m, src)
-}
-func (m *MsgQueryTopicReply) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgQueryTopicReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgQueryTopicReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgQueryTopicReply proto.InternalMessageInfo
-
-func (m *MsgQueryTopicReply) GetErrmsg() *ErrorMsg {
-	if m != nil {
-		return m.Errmsg
-	}
-	return nil
-}
-
-func (m *MsgQueryTopicReply) GetNodeAddress() []*MsgQueryTopicReply_BHNodeAddress {
-	if m != nil {
-		return m.NodeAddress
-	}
-	return nil
-}
-
-type MsgQueryTopicReply_BHNodeAddress struct {
-	ProcId []byte     `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
-	Addr   *BHAddress `protobuf:"bytes,2,opt,name=addr,proto3" json:"addr,omitempty"`
-}
-
-func (m *MsgQueryTopicReply_BHNodeAddress) Reset()         { *m = MsgQueryTopicReply_BHNodeAddress{} }
-func (m *MsgQueryTopicReply_BHNodeAddress) String() string { return proto.CompactTextString(m) }
-func (*MsgQueryTopicReply_BHNodeAddress) ProtoMessage()    {}
-func (*MsgQueryTopicReply_BHNodeAddress) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{11, 0}
-}
-func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.Merge(m, src)
-}
-func (m *MsgQueryTopicReply_BHNodeAddress) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgQueryTopicReply_BHNodeAddress) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgQueryTopicReply_BHNodeAddress proto.InternalMessageInfo
-
-func (m *MsgQueryTopicReply_BHNodeAddress) GetProcId() []byte {
-	if m != nil {
-		return m.ProcId
-	}
-	return nil
-}
-
-func (m *MsgQueryTopicReply_BHNodeAddress) GetAddr() *BHAddress {
-	if m != nil {
-		return m.Addr
-	}
-	return nil
-}
-
-type MsgQueryProc struct {
-	ProcId []byte `protobuf:"bytes,1,opt,name=proc_id,json=procId,proto3" json:"proc_id,omitempty"`
-}
-
-func (m *MsgQueryProc) Reset()         { *m = MsgQueryProc{} }
-func (m *MsgQueryProc) String() string { return proto.CompactTextString(m) }
-func (*MsgQueryProc) ProtoMessage()    {}
-func (*MsgQueryProc) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{12}
-}
-func (m *MsgQueryProc) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgQueryProc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgQueryProc.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgQueryProc) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgQueryProc.Merge(m, src)
-}
-func (m *MsgQueryProc) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgQueryProc) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgQueryProc.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgQueryProc proto.InternalMessageInfo
-
-func (m *MsgQueryProc) GetProcId() []byte {
-	if m != nil {
-		return m.ProcId
-	}
-	return nil
-}
-
-type MsgQueryProcReply struct {
-	Errmsg   *ErrorMsg                 `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
-	ProcList []*MsgQueryProcReply_Info `protobuf:"bytes,2,rep,name=proc_list,json=procList,proto3" json:"proc_list,omitempty"`
-}
-
-func (m *MsgQueryProcReply) Reset()         { *m = MsgQueryProcReply{} }
-func (m *MsgQueryProcReply) String() string { return proto.CompactTextString(m) }
-func (*MsgQueryProcReply) ProtoMessage()    {}
-func (*MsgQueryProcReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{13}
-}
-func (m *MsgQueryProcReply) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgQueryProcReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgQueryProcReply.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgQueryProcReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgQueryProcReply.Merge(m, src)
-}
-func (m *MsgQueryProcReply) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgQueryProcReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgQueryProcReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgQueryProcReply proto.InternalMessageInfo
-
-func (m *MsgQueryProcReply) GetErrmsg() *ErrorMsg {
-	if m != nil {
-		return m.Errmsg
-	}
-	return nil
-}
-
-func (m *MsgQueryProcReply) GetProcList() []*MsgQueryProcReply_Info {
-	if m != nil {
-		return m.ProcList
-	}
-	return nil
-}
-
-type MsgQueryProcReply_Info struct {
-	Proc     *ProcInfo     `protobuf:"bytes,1,opt,name=proc,proto3" json:"proc,omitempty"`
-	Online   bool          `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"`
-	Service  *MsgTopicList `protobuf:"bytes,3,opt,name=service,proto3" json:"service,omitempty"`
-	LocalSub *MsgTopicList `protobuf:"bytes,4,opt,name=local_sub,json=localSub,proto3" json:"local_sub,omitempty"`
-	NetSub   *MsgTopicList `protobuf:"bytes,5,opt,name=net_sub,json=netSub,proto3" json:"net_sub,omitempty"`
-}
-
-func (m *MsgQueryProcReply_Info) Reset()         { *m = MsgQueryProcReply_Info{} }
-func (m *MsgQueryProcReply_Info) String() string { return proto.CompactTextString(m) }
-func (*MsgQueryProcReply_Info) ProtoMessage()    {}
-func (*MsgQueryProcReply_Info) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a49c9c1f511a168c, []int{13, 0}
-}
-func (m *MsgQueryProcReply_Info) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *MsgQueryProcReply_Info) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_MsgQueryProcReply_Info.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *MsgQueryProcReply_Info) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MsgQueryProcReply_Info.Merge(m, src)
-}
-func (m *MsgQueryProcReply_Info) XXX_Size() int {
-	return m.Size()
-}
-func (m *MsgQueryProcReply_Info) XXX_DiscardUnknown() {
-	xxx_messageInfo_MsgQueryProcReply_Info.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgQueryProcReply_Info proto.InternalMessageInfo
-
-func (m *MsgQueryProcReply_Info) GetProc() *ProcInfo {
-	if m != nil {
-		return m.Proc
-	}
-	return nil
-}
-
-func (m *MsgQueryProcReply_Info) GetOnline() bool {
-	if m != nil {
-		return m.Online
-	}
-	return false
-}
-
-func (m *MsgQueryProcReply_Info) GetService() *MsgTopicList {
-	if m != nil {
-		return m.Service
-	}
-	return nil
-}
-
-func (m *MsgQueryProcReply_Info) GetLocalSub() *MsgTopicList {
-	if m != nil {
-		return m.LocalSub
-	}
-	return nil
-}
-
-func (m *MsgQueryProcReply_Info) GetNetSub() *MsgTopicList {
-	if m != nil {
-		return m.NetSub
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterType((*BHAddress)(nil), "bhome_msg.BHAddress")
-	proto.RegisterType((*ProcInfo)(nil), "bhome_msg.ProcInfo")
-	proto.RegisterType((*MsgTopicList)(nil), "bhome_msg.MsgTopicList")
-	proto.RegisterType((*MsgPublish)(nil), "bhome_msg.MsgPublish")
-	proto.RegisterType((*MsgCommonReply)(nil), "bhome_msg.MsgCommonReply")
-	proto.RegisterType((*MsgRequestTopic)(nil), "bhome_msg.MsgRequestTopic")
-	proto.RegisterType((*MsgRequestTopicReply)(nil), "bhome_msg.MsgRequestTopicReply")
-	proto.RegisterType((*MsgRegister)(nil), "bhome_msg.MsgRegister")
-	proto.RegisterType((*MsgUnregister)(nil), "bhome_msg.MsgUnregister")
-	proto.RegisterType((*MsgHeartbeat)(nil), "bhome_msg.MsgHeartbeat")
-	proto.RegisterType((*MsgQueryTopic)(nil), "bhome_msg.MsgQueryTopic")
-	proto.RegisterType((*MsgQueryTopicReply)(nil), "bhome_msg.MsgQueryTopicReply")
-	proto.RegisterType((*MsgQueryTopicReply_BHNodeAddress)(nil), "bhome_msg.MsgQueryTopicReply.BHNodeAddress")
-	proto.RegisterType((*MsgQueryProc)(nil), "bhome_msg.MsgQueryProc")
-	proto.RegisterType((*MsgQueryProcReply)(nil), "bhome_msg.MsgQueryProcReply")
-	proto.RegisterType((*MsgQueryProcReply_Info)(nil), "bhome_msg.MsgQueryProcReply.Info")
-}
-
-func init() { proto.RegisterFile("bhome_msg_api.proto", fileDescriptor_a49c9c1f511a168c) }
-
-var fileDescriptor_a49c9c1f511a168c = []byte{
-	// 640 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x6f, 0x6b, 0x13, 0x4f,
-	0x10, 0xee, 0x25, 0x97, 0x7f, 0x73, 0xd7, 0x96, 0xdf, 0xb6, 0xfc, 0x1a, 0x0b, 0xc6, 0xf4, 0x40,
-	0x7a, 0x50, 0x8c, 0x1a, 0xa5, 0x0a, 0xa2, 0x60, 0x45, 0x48, 0xc1, 0x94, 0xba, 0x55, 0x04, 0xdf,
-	0x1c, 0x77, 0xb9, 0xed, 0x75, 0x21, 0x77, 0x7b, 0xdd, 0xdd, 0x14, 0x8a, 0x5f, 0xc2, 0x8f, 0xe5,
-	0xcb, 0xbe, 0xf4, 0xa5, 0xa4, 0xf4, 0x7b, 0xc8, 0x4e, 0x92, 0xb3, 0xd5, 0xb6, 0xb4, 0x7d, 0xb7,
-	0xb3, 0xf3, 0x3c, 0xcf, 0x0c, 0x33, 0x3c, 0x03, 0x4b, 0xd1, 0x81, 0x48, 0x59, 0x90, 0xaa, 0x24,
-	0x08, 0x73, 0xde, 0xc9, 0xa5, 0xd0, 0x82, 0x34, 0x8a, 0xcf, 0xd5, 0x45, 0x26, 0xa5, 0x90, 0xe6,
-	0x39, 0xc9, 0x79, 0x01, 0x34, 0xb6, 0x7a, 0x6f, 0xe3, 0x58, 0x32, 0xa5, 0xc8, 0x12, 0x54, 0xd2,
-	0xc3, 0x80, 0xc7, 0x4d, 0xab, 0x6d, 0xf9, 0x36, 0xb5, 0xd3, 0xc3, 0xed, 0x98, 0xdc, 0x83, 0x7a,
-	0x18, 0xa9, 0x20, 0x8c, 0x63, 0xd9, 0x2c, 0xb5, 0x2d, 0xbf, 0x4c, 0x6b, 0x61, 0xa4, 0x0c, 0x85,
-	0x2c, 0x40, 0x89, 0xe7, 0xcd, 0x72, 0xdb, 0xf2, 0x5d, 0x5a, 0xe2, 0x39, 0x21, 0x60, 0xe7, 0x42,
-	0xea, 0xa6, 0xdd, 0xb6, 0xfc, 0x0a, 0xc5, 0xb7, 0xf7, 0x0d, 0xea, 0xbb, 0x52, 0x0c, 0xb6, 0xb3,
-	0x7d, 0x41, 0x56, 0xa0, 0x96, 0x4b, 0x31, 0x98, 0x55, 0x70, 0x69, 0xd5, 0x84, 0xdb, 0xb1, 0x21,
-	0x66, 0x61, 0xca, 0x50, 0xdf, 0xa5, 0xf8, 0x26, 0x0f, 0xc0, 0xc9, 0x47, 0xd1, 0x90, 0x0f, 0x02,
-	0x9e, 0xed, 0x8b, 0x69, 0x15, 0x98, 0x7c, 0xa1, 0xda, 0x1a, 0xb8, 0xb9, 0xe4, 0x47, 0xa1, 0x66,
-	0x13, 0x84, 0x8d, 0x08, 0x67, 0xfa, 0x67, 0x20, 0xde, 0x23, 0x70, 0xfb, 0x2a, 0xf9, 0x24, 0x72,
-	0x3e, 0xf8, 0xc0, 0x95, 0x26, 0xf7, 0x01, 0xb4, 0x09, 0x82, 0x21, 0x57, 0xba, 0x69, 0xb5, 0xcb,
-	0xbe, 0x4b, 0x1b, 0x7a, 0x96, 0xf6, 0x36, 0x01, 0xfa, 0x2a, 0xd9, 0x35, 0x25, 0xd4, 0x01, 0x59,
-	0x86, 0x0a, 0xa6, 0xa6, 0xbd, 0x4e, 0x02, 0xd3, 0x6a, 0x1c, 0xea, 0x70, 0xd6, 0xaa, 0x79, 0x7b,
-	0xaf, 0x61, 0xa1, 0xaf, 0x92, 0x77, 0x22, 0x4d, 0x45, 0x46, 0x59, 0x3e, 0x3c, 0x26, 0x1b, 0x50,
-	0x65, 0x52, 0xa6, 0x2a, 0x41, 0xb2, 0xd3, 0x5d, 0xea, 0x14, 0x3b, 0xe8, 0xbc, 0x37, 0x2b, 0xe8,
-	0xab, 0x84, 0x4e, 0x21, 0xde, 0x2b, 0x58, 0x34, 0x21, 0x3b, 0x1c, 0x31, 0xa5, 0xb1, 0xd9, 0x5b,
-	0xd4, 0xfe, 0x02, 0xcb, 0x7f, 0x91, 0x6f, 0xdf, 0xc1, 0xa5, 0xc2, 0x9b, 0xe0, 0xa0, 0x70, 0xc2,
-	0x95, 0x66, 0x92, 0xac, 0x83, 0x6d, 0x96, 0x75, 0x89, 0xda, 0x6c, 0xbd, 0x14, 0x01, 0xde, 0x4b,
-	0x98, 0xef, 0xab, 0xe4, 0x73, 0x26, 0x6f, 0xcd, 0x7c, 0x81, 0xdb, 0xea, 0xb1, 0x50, 0xea, 0x88,
-	0x85, 0xfa, 0xe6, 0xc4, 0x87, 0x58, 0xf2, 0xe3, 0x88, 0xc9, 0xe3, 0x6b, 0xc6, 0xe7, 0x9d, 0x59,
-	0x40, 0x2e, 0xe0, 0xee, 0x30, 0xa9, 0x1d, 0x70, 0x33, 0x11, 0x33, 0xb4, 0x03, 0x53, 0xaa, 0x59,
-	0x6a, 0x97, 0x7d, 0xa7, 0xbb, 0x71, 0x8e, 0xf2, 0x6f, 0x85, 0xce, 0x56, 0x6f, 0x47, 0xc4, 0x6c,
-	0xea, 0x32, 0xea, 0x64, 0x7f, 0x82, 0x55, 0x0a, 0xf3, 0x17, 0xb2, 0x57, 0x7b, 0xc4, 0x07, 0xbb,
-	0xf0, 0xa0, 0xd3, 0x5d, 0x3e, 0x57, 0xb1, 0x30, 0x30, 0x45, 0x84, 0xb7, 0x8e, 0x73, 0xc4, 0x26,
-	0xcc, 0xa0, 0xae, 0x94, 0xf4, 0xce, 0x4a, 0xf0, 0xdf, 0x79, 0xe4, 0x1d, 0xe6, 0xf1, 0x06, 0x1a,
-	0xa8, 0x8d, 0x86, 0x9a, 0x0c, 0x63, 0xed, 0x92, 0x61, 0x14, 0xea, 0x1d, 0x5c, 0x5b, 0xdd, 0x70,
-	0x8c, 0xe5, 0x56, 0xc7, 0x16, 0xd8, 0xe8, 0xe6, 0x9b, 0x2e, 0x9b, 0xfc, 0x0f, 0x55, 0x91, 0x0d,
-	0x79, 0x36, 0xb9, 0x16, 0x75, 0x3a, 0x8d, 0xc8, 0x53, 0xa8, 0x29, 0x26, 0x8f, 0xf8, 0x80, 0xe1,
-	0xad, 0x70, 0xba, 0x2b, 0x17, 0xfb, 0x28, 0xae, 0x00, 0x9d, 0xe1, 0xc8, 0x73, 0x68, 0x0c, 0xc5,
-	0x20, 0x1c, 0x06, 0x6a, 0x14, 0xe1, 0xf9, 0xb8, 0x86, 0x54, 0x47, 0xe4, 0xde, 0x28, 0x22, 0x4f,
-	0xa0, 0x96, 0x31, 0x8d, 0x9c, 0xca, 0xf5, 0x9c, 0x6a, 0xc6, 0xf4, 0xde, 0x28, 0xda, 0x5a, 0xff,
-	0x31, 0x6e, 0x59, 0x27, 0xe3, 0x96, 0xf5, 0x6b, 0xdc, 0xb2, 0xbe, 0x9f, 0xb6, 0xe6, 0x4e, 0x4e,
-	0x5b, 0x73, 0x3f, 0x4f, 0x5b, 0x73, 0xbd, 0xf2, 0x57, 0xa7, 0xf3, 0xb8, 0x60, 0x47, 0x55, 0x3c,
-	0xca, 0xcf, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x71, 0x22, 0x26, 0xc9, 0xc7, 0x05, 0x00, 0x00,
-}
-
-func (m *BHAddress) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *BHAddress) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.MqId != 0 {
-		dAtA[i] = 0x8
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.MqId))
-	}
-	if m.AbsAddr != 0 {
-		dAtA[i] = 0x10
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.AbsAddr))
-	}
-	if len(m.Ip) > 0 {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Ip)))
-		i += copy(dAtA[i:], m.Ip)
-	}
-	if m.Port != 0 {
-		dAtA[i] = 0x20
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Port))
-	}
-	return i, nil
-}
-
-func (m *ProcInfo) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *ProcInfo) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.ProcId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.ProcId)))
-		i += copy(dAtA[i:], m.ProcId)
-	}
-	if len(m.Name) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Name)))
-		i += copy(dAtA[i:], m.Name)
-	}
-	if len(m.PublicInfo) > 0 {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.PublicInfo)))
-		i += copy(dAtA[i:], m.PublicInfo)
-	}
-	if len(m.PrivateInfo) > 0 {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.PrivateInfo)))
-		i += copy(dAtA[i:], m.PrivateInfo)
-	}
-	return i, nil
-}
-
-func (m *MsgTopicList) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgTopicList) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.TopicList) > 0 {
-		for _, b := range m.TopicList {
-			dAtA[i] = 0xa
-			i++
-			i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(b)))
-			i += copy(dAtA[i:], b)
-		}
-	}
-	return i, nil
-}
-
-func (m *MsgPublish) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgPublish) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.Topic) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Topic)))
-		i += copy(dAtA[i:], m.Topic)
-	}
-	if len(m.Data) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Data)))
-		i += copy(dAtA[i:], m.Data)
-	}
-	return i, nil
-}
-
-func (m *MsgCommonReply) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgCommonReply) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
-		n1, err1 := m.Errmsg.MarshalTo(dAtA[i:])
-		if err1 != nil {
-			return 0, err1
-		}
-		i += n1
-	}
-	return i, nil
-}
-
-func (m *MsgRequestTopic) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgRequestTopic) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.Topic) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Topic)))
-		i += copy(dAtA[i:], m.Topic)
-	}
-	if len(m.Data) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Data)))
-		i += copy(dAtA[i:], m.Data)
-	}
-	return i, nil
-}
-
-func (m *MsgRequestTopicReply) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgRequestTopicReply) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
-		n2, err2 := m.Errmsg.MarshalTo(dAtA[i:])
-		if err2 != nil {
-			return 0, err2
-		}
-		i += n2
-	}
-	if len(m.Data) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Data)))
-		i += copy(dAtA[i:], m.Data)
-	}
-	return i, nil
-}
-
-func (m *MsgRegister) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgRegister) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Proc != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
-		n3, err3 := m.Proc.MarshalTo(dAtA[i:])
-		if err3 != nil {
-			return 0, err3
-		}
-		i += n3
-	}
-	return i, nil
-}
-
-func (m *MsgUnregister) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgUnregister) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Proc != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
-		n4, err4 := m.Proc.MarshalTo(dAtA[i:])
-		if err4 != nil {
-			return 0, err4
-		}
-		i += n4
-	}
-	return i, nil
-}
-
-func (m *MsgHeartbeat) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgHeartbeat) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Proc != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
-		n5, err5 := m.Proc.MarshalTo(dAtA[i:])
-		if err5 != nil {
-			return 0, err5
-		}
-		i += n5
-	}
-	return i, nil
-}
-
-func (m *MsgQueryTopic) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgQueryTopic) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.Topic) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.Topic)))
-		i += copy(dAtA[i:], m.Topic)
-	}
-	return i, nil
-}
-
-func (m *MsgQueryTopicReply) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgQueryTopicReply) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
-		n6, err6 := m.Errmsg.MarshalTo(dAtA[i:])
-		if err6 != nil {
-			return 0, err6
-		}
-		i += n6
-	}
-	if len(m.NodeAddress) > 0 {
-		for _, msg := range m.NodeAddress {
-			dAtA[i] = 0x12
-			i++
-			i = encodeVarintBhomeMsgApi(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
-			if err != nil {
-				return 0, err
-			}
-			i += n
-		}
-	}
-	return i, nil
-}
-
-func (m *MsgQueryTopicReply_BHNodeAddress) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgQueryTopicReply_BHNodeAddress) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.ProcId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.ProcId)))
-		i += copy(dAtA[i:], m.ProcId)
-	}
-	if m.Addr != nil {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Addr.Size()))
-		n7, err7 := m.Addr.MarshalTo(dAtA[i:])
-		if err7 != nil {
-			return 0, err7
-		}
-		i += n7
-	}
-	return i, nil
-}
-
-func (m *MsgQueryProc) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgQueryProc) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if len(m.ProcId) > 0 {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(len(m.ProcId)))
-		i += copy(dAtA[i:], m.ProcId)
-	}
-	return i, nil
-}
-
-func (m *MsgQueryProcReply) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgQueryProcReply) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Errmsg.Size()))
-		n8, err8 := m.Errmsg.MarshalTo(dAtA[i:])
-		if err8 != nil {
-			return 0, err8
-		}
-		i += n8
-	}
-	if len(m.ProcList) > 0 {
-		for _, msg := range m.ProcList {
-			dAtA[i] = 0x12
-			i++
-			i = encodeVarintBhomeMsgApi(dAtA, i, uint64(msg.Size()))
-			n, err := msg.MarshalTo(dAtA[i:])
-			if err != nil {
-				return 0, err
-			}
-			i += n
-		}
-	}
-	return i, nil
-}
-
-func (m *MsgQueryProcReply_Info) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *MsgQueryProcReply_Info) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.Proc != nil {
-		dAtA[i] = 0xa
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Proc.Size()))
-		n9, err9 := m.Proc.MarshalTo(dAtA[i:])
-		if err9 != nil {
-			return 0, err9
-		}
-		i += n9
-	}
-	if m.Online {
-		dAtA[i] = 0x10
-		i++
-		if m.Online {
-			dAtA[i] = 1
-		} else {
-			dAtA[i] = 0
-		}
-		i++
-	}
-	if m.Service != nil {
-		dAtA[i] = 0x1a
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.Service.Size()))
-		n10, err10 := m.Service.MarshalTo(dAtA[i:])
-		if err10 != nil {
-			return 0, err10
-		}
-		i += n10
-	}
-	if m.LocalSub != nil {
-		dAtA[i] = 0x22
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.LocalSub.Size()))
-		n11, err11 := m.LocalSub.MarshalTo(dAtA[i:])
-		if err11 != nil {
-			return 0, err11
-		}
-		i += n11
-	}
-	if m.NetSub != nil {
-		dAtA[i] = 0x2a
-		i++
-		i = encodeVarintBhomeMsgApi(dAtA, i, uint64(m.NetSub.Size()))
-		n12, err12 := m.NetSub.MarshalTo(dAtA[i:])
-		if err12 != nil {
-			return 0, err12
-		}
-		i += n12
-	}
-	return i, nil
-}
-
-func encodeVarintBhomeMsgApi(dAtA []byte, offset int, v uint64) int {
-	for v >= 1<<7 {
-		dAtA[offset] = uint8(v&0x7f | 0x80)
-		v >>= 7
-		offset++
-	}
-	dAtA[offset] = uint8(v)
-	return offset + 1
-}
-func (m *BHAddress) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.MqId != 0 {
-		n += 1 + sovBhomeMsgApi(uint64(m.MqId))
-	}
-	if m.AbsAddr != 0 {
-		n += 1 + sovBhomeMsgApi(uint64(m.AbsAddr))
-	}
-	l = len(m.Ip)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if m.Port != 0 {
-		n += 1 + sovBhomeMsgApi(uint64(m.Port))
-	}
-	return n
-}
-
-func (m *ProcInfo) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.ProcId)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	l = len(m.Name)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	l = len(m.PublicInfo)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	l = len(m.PrivateInfo)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgTopicList) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if len(m.TopicList) > 0 {
-		for _, b := range m.TopicList {
-			l = len(b)
-			n += 1 + l + sovBhomeMsgApi(uint64(l))
-		}
-	}
-	return n
-}
-
-func (m *MsgPublish) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.Topic)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	l = len(m.Data)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgCommonReply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		l = m.Errmsg.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgRequestTopic) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.Topic)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	l = len(m.Data)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgRequestTopicReply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		l = m.Errmsg.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	l = len(m.Data)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgRegister) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Proc != nil {
-		l = m.Proc.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgUnregister) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Proc != nil {
-		l = m.Proc.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgHeartbeat) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Proc != nil {
-		l = m.Proc.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgQueryTopic) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.Topic)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgQueryTopicReply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		l = m.Errmsg.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if len(m.NodeAddress) > 0 {
-		for _, e := range m.NodeAddress {
-			l = e.Size()
-			n += 1 + l + sovBhomeMsgApi(uint64(l))
-		}
-	}
-	return n
-}
-
-func (m *MsgQueryTopicReply_BHNodeAddress) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.ProcId)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if m.Addr != nil {
-		l = m.Addr.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgQueryProc) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	l = len(m.ProcId)
-	if l > 0 {
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func (m *MsgQueryProcReply) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Errmsg != nil {
-		l = m.Errmsg.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if len(m.ProcList) > 0 {
-		for _, e := range m.ProcList {
-			l = e.Size()
-			n += 1 + l + sovBhomeMsgApi(uint64(l))
-		}
-	}
-	return n
-}
-
-func (m *MsgQueryProcReply_Info) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.Proc != nil {
-		l = m.Proc.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if m.Online {
-		n += 2
-	}
-	if m.Service != nil {
-		l = m.Service.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if m.LocalSub != nil {
-		l = m.LocalSub.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	if m.NetSub != nil {
-		l = m.NetSub.Size()
-		n += 1 + l + sovBhomeMsgApi(uint64(l))
-	}
-	return n
-}
-
-func sovBhomeMsgApi(x uint64) (n int) {
-	return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozBhomeMsgApi(x uint64) (n int) {
-	return sovBhomeMsgApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
-func (m *BHAddress) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: BHAddress: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: BHAddress: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field MqId", wireType)
-			}
-			m.MqId = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.MqId |= uint64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field AbsAddr", wireType)
-			}
-			m.AbsAddr = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.AbsAddr |= int64(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Ip", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Ip = append(m.Ip[:0], dAtA[iNdEx:postIndex]...)
-			if m.Ip == nil {
-				m.Ip = []byte{}
-			}
-			iNdEx = postIndex
-		case 4:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
-			}
-			m.Port = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.Port |= int32(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *ProcInfo) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: ProcInfo: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: ProcInfo: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
-			if m.ProcId == nil {
-				m.ProcId = []byte{}
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Name = append(m.Name[:0], dAtA[iNdEx:postIndex]...)
-			if m.Name == nil {
-				m.Name = []byte{}
-			}
-			iNdEx = postIndex
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PublicInfo", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.PublicInfo = append(m.PublicInfo[:0], dAtA[iNdEx:postIndex]...)
-			if m.PublicInfo == nil {
-				m.PublicInfo = []byte{}
-			}
-			iNdEx = postIndex
-		case 4:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field PrivateInfo", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.PrivateInfo = append(m.PrivateInfo[:0], dAtA[iNdEx:postIndex]...)
-			if m.PrivateInfo == nil {
-				m.PrivateInfo = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgTopicList) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgTopicList: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgTopicList: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field TopicList", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.TopicList = append(m.TopicList, make([]byte, postIndex-iNdEx))
-			copy(m.TopicList[len(m.TopicList)-1], dAtA[iNdEx:postIndex])
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgPublish) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgPublish: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgPublish: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
-			if m.Topic == nil {
-				m.Topic = []byte{}
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
-			if m.Data == nil {
-				m.Data = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgCommonReply) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgCommonReply: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgCommonReply: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Errmsg == nil {
-				m.Errmsg = &ErrorMsg{}
-			}
-			if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgRequestTopic) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgRequestTopic: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgRequestTopic: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
-			if m.Topic == nil {
-				m.Topic = []byte{}
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
-			if m.Data == nil {
-				m.Data = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgRequestTopicReply) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgRequestTopicReply: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgRequestTopicReply: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Errmsg == nil {
-				m.Errmsg = &ErrorMsg{}
-			}
-			if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
-			if m.Data == nil {
-				m.Data = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgRegister) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgRegister: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgRegister: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Proc == nil {
-				m.Proc = &ProcInfo{}
-			}
-			if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgUnregister) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgUnregister: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgUnregister: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Proc == nil {
-				m.Proc = &ProcInfo{}
-			}
-			if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgHeartbeat) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgHeartbeat: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgHeartbeat: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Proc == nil {
-				m.Proc = &ProcInfo{}
-			}
-			if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgQueryTopic) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgQueryTopic: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgQueryTopic: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Topic", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.Topic = append(m.Topic[:0], dAtA[iNdEx:postIndex]...)
-			if m.Topic == nil {
-				m.Topic = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgQueryTopicReply) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgQueryTopicReply: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgQueryTopicReply: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Errmsg == nil {
-				m.Errmsg = &ErrorMsg{}
-			}
-			if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NodeAddress", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.NodeAddress = append(m.NodeAddress, &MsgQueryTopicReply_BHNodeAddress{})
-			if err := m.NodeAddress[len(m.NodeAddress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgQueryTopicReply_BHNodeAddress) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: BHNodeAddress: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: BHNodeAddress: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
-			if m.ProcId == nil {
-				m.ProcId = []byte{}
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Addr == nil {
-				m.Addr = &BHAddress{}
-			}
-			if err := m.Addr.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgQueryProc) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgQueryProc: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgQueryProc: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProcId", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ProcId = append(m.ProcId[:0], dAtA[iNdEx:postIndex]...)
-			if m.ProcId == nil {
-				m.ProcId = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgQueryProcReply) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: MsgQueryProcReply: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: MsgQueryProcReply: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Errmsg", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Errmsg == nil {
-				m.Errmsg = &ErrorMsg{}
-			}
-			if err := m.Errmsg.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ProcList", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ProcList = append(m.ProcList, &MsgQueryProcReply_Info{})
-			if err := m.ProcList[len(m.ProcList)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func (m *MsgQueryProcReply_Info) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: Info: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: Info: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Proc", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Proc == nil {
-				m.Proc = &ProcInfo{}
-			}
-			if err := m.Proc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 2:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Online", wireType)
-			}
-			var v int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				v |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			m.Online = bool(v != 0)
-		case 3:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.Service == nil {
-				m.Service = &MsgTopicList{}
-			}
-			if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 4:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field LocalSub", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.LocalSub == nil {
-				m.LocalSub = &MsgTopicList{}
-			}
-			if err := m.LocalSub.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		case 5:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field NetSub", wireType)
-			}
-			var msglen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				msglen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if msglen < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			postIndex := iNdEx + msglen
-			if postIndex < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			if m.NetSub == nil {
-				m.NetSub = &MsgTopicList{}
-			}
-			if err := m.NetSub.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
-				return err
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipBhomeMsgApi(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthBhomeMsgApi
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func skipBhomeMsgApi(dAtA []byte) (n int, err error) {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return 0, ErrIntOverflowBhomeMsgApi
-			}
-			if iNdEx >= l {
-				return 0, io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		wireType := int(wire & 0x7)
-		switch wireType {
-		case 0:
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				iNdEx++
-				if dAtA[iNdEx-1] < 0x80 {
-					break
-				}
-			}
-			return iNdEx, nil
-		case 1:
-			iNdEx += 8
-			return iNdEx, nil
-		case 2:
-			var length int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowBhomeMsgApi
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				length |= (int(b) & 0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if length < 0 {
-				return 0, ErrInvalidLengthBhomeMsgApi
-			}
-			iNdEx += length
-			if iNdEx < 0 {
-				return 0, ErrInvalidLengthBhomeMsgApi
-			}
-			return iNdEx, nil
-		case 3:
-			for {
-				var innerWire uint64
-				var start int = iNdEx
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return 0, ErrIntOverflowBhomeMsgApi
-					}
-					if iNdEx >= l {
-						return 0, io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					innerWire |= (uint64(b) & 0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				innerWireType := int(innerWire & 0x7)
-				if innerWireType == 4 {
-					break
-				}
-				next, err := skipBhomeMsgApi(dAtA[start:])
-				if err != nil {
-					return 0, err
-				}
-				iNdEx = start + next
-				if iNdEx < 0 {
-					return 0, ErrInvalidLengthBhomeMsgApi
-				}
-			}
-			return iNdEx, nil
-		case 4:
-			return iNdEx, nil
-		case 5:
-			iNdEx += 4
-			return iNdEx, nil
-		default:
-			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
-		}
-	}
-	panic("unreachable")
-}
-
-var (
-	ErrInvalidLengthBhomeMsgApi = fmt.Errorf("proto: negative length found during unmarshaling")
-	ErrIntOverflowBhomeMsgApi   = fmt.Errorf("proto: integer overflow")
-)
diff --git a/proto/bhome_msg_api.pb.h b/proto/bhome_msg_api.pb.h
deleted file mode 100644
index c686d00..0000000
--- a/proto/bhome_msg_api.pb.h
+++ /dev/null
@@ -1,4129 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: bhome_msg_api.proto
-
-#ifndef GOOGLE_PROTOBUF_INCLUDED_bhome_5fmsg_5fapi_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_bhome_5fmsg_5fapi_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata_lite.h>
-#include <google/protobuf/message_lite.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include "error_msg.pb.h"
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_bhome_5fmsg_5fapi_2eproto
-PROTOBUF_NAMESPACE_OPEN
-namespace internal {
-class AnyMetadata;
-}  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_bhome_5fmsg_5fapi_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[16]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
-};
-namespace bhome_msg {
-class BHAddress;
-class BHAddressDefaultTypeInternal;
-extern BHAddressDefaultTypeInternal _BHAddress_default_instance_;
-class MsgCommonReply;
-class MsgCommonReplyDefaultTypeInternal;
-extern MsgCommonReplyDefaultTypeInternal _MsgCommonReply_default_instance_;
-class MsgHeartbeat;
-class MsgHeartbeatDefaultTypeInternal;
-extern MsgHeartbeatDefaultTypeInternal _MsgHeartbeat_default_instance_;
-class MsgPublish;
-class MsgPublishDefaultTypeInternal;
-extern MsgPublishDefaultTypeInternal _MsgPublish_default_instance_;
-class MsgQueryProc;
-class MsgQueryProcDefaultTypeInternal;
-extern MsgQueryProcDefaultTypeInternal _MsgQueryProc_default_instance_;
-class MsgQueryProcReply;
-class MsgQueryProcReplyDefaultTypeInternal;
-extern MsgQueryProcReplyDefaultTypeInternal _MsgQueryProcReply_default_instance_;
-class MsgQueryProcReply_Info;
-class MsgQueryProcReply_InfoDefaultTypeInternal;
-extern MsgQueryProcReply_InfoDefaultTypeInternal _MsgQueryProcReply_Info_default_instance_;
-class MsgQueryTopic;
-class MsgQueryTopicDefaultTypeInternal;
-extern MsgQueryTopicDefaultTypeInternal _MsgQueryTopic_default_instance_;
-class MsgQueryTopicReply;
-class MsgQueryTopicReplyDefaultTypeInternal;
-extern MsgQueryTopicReplyDefaultTypeInternal _MsgQueryTopicReply_default_instance_;
-class MsgQueryTopicReply_BHNodeAddress;
-class MsgQueryTopicReply_BHNodeAddressDefaultTypeInternal;
-extern MsgQueryTopicReply_BHNodeAddressDefaultTypeInternal _MsgQueryTopicReply_BHNodeAddress_default_instance_;
-class MsgRegister;
-class MsgRegisterDefaultTypeInternal;
-extern MsgRegisterDefaultTypeInternal _MsgRegister_default_instance_;
-class MsgRequestTopic;
-class MsgRequestTopicDefaultTypeInternal;
-extern MsgRequestTopicDefaultTypeInternal _MsgRequestTopic_default_instance_;
-class MsgRequestTopicReply;
-class MsgRequestTopicReplyDefaultTypeInternal;
-extern MsgRequestTopicReplyDefaultTypeInternal _MsgRequestTopicReply_default_instance_;
-class MsgTopicList;
-class MsgTopicListDefaultTypeInternal;
-extern MsgTopicListDefaultTypeInternal _MsgTopicList_default_instance_;
-class MsgUnregister;
-class MsgUnregisterDefaultTypeInternal;
-extern MsgUnregisterDefaultTypeInternal _MsgUnregister_default_instance_;
-class ProcInfo;
-class ProcInfoDefaultTypeInternal;
-extern ProcInfoDefaultTypeInternal _ProcInfo_default_instance_;
-}  // namespace bhome_msg
-PROTOBUF_NAMESPACE_OPEN
-template<> ::bhome_msg::BHAddress* Arena::CreateMaybeMessage<::bhome_msg::BHAddress>(Arena*);
-template<> ::bhome_msg::MsgCommonReply* Arena::CreateMaybeMessage<::bhome_msg::MsgCommonReply>(Arena*);
-template<> ::bhome_msg::MsgHeartbeat* Arena::CreateMaybeMessage<::bhome_msg::MsgHeartbeat>(Arena*);
-template<> ::bhome_msg::MsgPublish* Arena::CreateMaybeMessage<::bhome_msg::MsgPublish>(Arena*);
-template<> ::bhome_msg::MsgQueryProc* Arena::CreateMaybeMessage<::bhome_msg::MsgQueryProc>(Arena*);
-template<> ::bhome_msg::MsgQueryProcReply* Arena::CreateMaybeMessage<::bhome_msg::MsgQueryProcReply>(Arena*);
-template<> ::bhome_msg::MsgQueryProcReply_Info* Arena::CreateMaybeMessage<::bhome_msg::MsgQueryProcReply_Info>(Arena*);
-template<> ::bhome_msg::MsgQueryTopic* Arena::CreateMaybeMessage<::bhome_msg::MsgQueryTopic>(Arena*);
-template<> ::bhome_msg::MsgQueryTopicReply* Arena::CreateMaybeMessage<::bhome_msg::MsgQueryTopicReply>(Arena*);
-template<> ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* Arena::CreateMaybeMessage<::bhome_msg::MsgQueryTopicReply_BHNodeAddress>(Arena*);
-template<> ::bhome_msg::MsgRegister* Arena::CreateMaybeMessage<::bhome_msg::MsgRegister>(Arena*);
-template<> ::bhome_msg::MsgRequestTopic* Arena::CreateMaybeMessage<::bhome_msg::MsgRequestTopic>(Arena*);
-template<> ::bhome_msg::MsgRequestTopicReply* Arena::CreateMaybeMessage<::bhome_msg::MsgRequestTopicReply>(Arena*);
-template<> ::bhome_msg::MsgTopicList* Arena::CreateMaybeMessage<::bhome_msg::MsgTopicList>(Arena*);
-template<> ::bhome_msg::MsgUnregister* Arena::CreateMaybeMessage<::bhome_msg::MsgUnregister>(Arena*);
-template<> ::bhome_msg::ProcInfo* Arena::CreateMaybeMessage<::bhome_msg::ProcInfo>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
-namespace bhome_msg {
-
-// ===================================================================
-
-class BHAddress :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.BHAddress) */ {
- public:
-  BHAddress();
-  virtual ~BHAddress();
-
-  BHAddress(const BHAddress& from);
-  BHAddress(BHAddress&& from) noexcept
-    : BHAddress() {
-    *this = ::std::move(from);
-  }
-
-  inline BHAddress& operator=(const BHAddress& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline BHAddress& operator=(BHAddress&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const BHAddress& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const BHAddress* internal_default_instance() {
-    return reinterpret_cast<const BHAddress*>(
-               &_BHAddress_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  friend void swap(BHAddress& a, BHAddress& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(BHAddress* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline BHAddress* New() const final {
-    return CreateMaybeMessage<BHAddress>(nullptr);
-  }
-
-  BHAddress* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<BHAddress>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const BHAddress& from);
-  void MergeFrom(const BHAddress& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(BHAddress* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.BHAddress";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kIpFieldNumber = 3,
-    kMqIdFieldNumber = 1,
-    kAbsAddrFieldNumber = 2,
-    kPortFieldNumber = 4,
-  };
-  // bytes ip = 3;
-  void clear_ip();
-  const std::string& ip() const;
-  void set_ip(const std::string& value);
-  void set_ip(std::string&& value);
-  void set_ip(const char* value);
-  void set_ip(const void* value, size_t size);
-  std::string* mutable_ip();
-  std::string* release_ip();
-  void set_allocated_ip(std::string* ip);
-  private:
-  const std::string& _internal_ip() const;
-  void _internal_set_ip(const std::string& value);
-  std::string* _internal_mutable_ip();
-  public:
-
-  // uint64 mq_id = 1;
-  void clear_mq_id();
-  ::PROTOBUF_NAMESPACE_ID::uint64 mq_id() const;
-  void set_mq_id(::PROTOBUF_NAMESPACE_ID::uint64 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::uint64 _internal_mq_id() const;
-  void _internal_set_mq_id(::PROTOBUF_NAMESPACE_ID::uint64 value);
-  public:
-
-  // int64 abs_addr = 2;
-  void clear_abs_addr();
-  ::PROTOBUF_NAMESPACE_ID::int64 abs_addr() const;
-  void set_abs_addr(::PROTOBUF_NAMESPACE_ID::int64 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int64 _internal_abs_addr() const;
-  void _internal_set_abs_addr(::PROTOBUF_NAMESPACE_ID::int64 value);
-  public:
-
-  // int32 port = 4;
-  void clear_port();
-  ::PROTOBUF_NAMESPACE_ID::int32 port() const;
-  void set_port(::PROTOBUF_NAMESPACE_ID::int32 value);
-  private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_port() const;
-  void _internal_set_port(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.BHAddress)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ip_;
-  ::PROTOBUF_NAMESPACE_ID::uint64 mq_id_;
-  ::PROTOBUF_NAMESPACE_ID::int64 abs_addr_;
-  ::PROTOBUF_NAMESPACE_ID::int32 port_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class ProcInfo :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.ProcInfo) */ {
- public:
-  ProcInfo();
-  virtual ~ProcInfo();
-
-  ProcInfo(const ProcInfo& from);
-  ProcInfo(ProcInfo&& from) noexcept
-    : ProcInfo() {
-    *this = ::std::move(from);
-  }
-
-  inline ProcInfo& operator=(const ProcInfo& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline ProcInfo& operator=(ProcInfo&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ProcInfo& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const ProcInfo* internal_default_instance() {
-    return reinterpret_cast<const ProcInfo*>(
-               &_ProcInfo_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    1;
-
-  friend void swap(ProcInfo& a, ProcInfo& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(ProcInfo* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline ProcInfo* New() const final {
-    return CreateMaybeMessage<ProcInfo>(nullptr);
-  }
-
-  ProcInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<ProcInfo>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const ProcInfo& from);
-  void MergeFrom(const ProcInfo& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ProcInfo* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.ProcInfo";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcIdFieldNumber = 1,
-    kNameFieldNumber = 2,
-    kPublicInfoFieldNumber = 3,
-    kPrivateInfoFieldNumber = 4,
-  };
-  // bytes proc_id = 1;
-  void clear_proc_id();
-  const std::string& proc_id() const;
-  void set_proc_id(const std::string& value);
-  void set_proc_id(std::string&& value);
-  void set_proc_id(const char* value);
-  void set_proc_id(const void* value, size_t size);
-  std::string* mutable_proc_id();
-  std::string* release_proc_id();
-  void set_allocated_proc_id(std::string* proc_id);
-  private:
-  const std::string& _internal_proc_id() const;
-  void _internal_set_proc_id(const std::string& value);
-  std::string* _internal_mutable_proc_id();
-  public:
-
-  // bytes name = 2;
-  void clear_name();
-  const std::string& name() const;
-  void set_name(const std::string& value);
-  void set_name(std::string&& value);
-  void set_name(const char* value);
-  void set_name(const void* value, size_t size);
-  std::string* mutable_name();
-  std::string* release_name();
-  void set_allocated_name(std::string* name);
-  private:
-  const std::string& _internal_name() const;
-  void _internal_set_name(const std::string& value);
-  std::string* _internal_mutable_name();
-  public:
-
-  // bytes public_info = 3;
-  void clear_public_info();
-  const std::string& public_info() const;
-  void set_public_info(const std::string& value);
-  void set_public_info(std::string&& value);
-  void set_public_info(const char* value);
-  void set_public_info(const void* value, size_t size);
-  std::string* mutable_public_info();
-  std::string* release_public_info();
-  void set_allocated_public_info(std::string* public_info);
-  private:
-  const std::string& _internal_public_info() const;
-  void _internal_set_public_info(const std::string& value);
-  std::string* _internal_mutable_public_info();
-  public:
-
-  // bytes private_info = 4;
-  void clear_private_info();
-  const std::string& private_info() const;
-  void set_private_info(const std::string& value);
-  void set_private_info(std::string&& value);
-  void set_private_info(const char* value);
-  void set_private_info(const void* value, size_t size);
-  std::string* mutable_private_info();
-  std::string* release_private_info();
-  void set_allocated_private_info(std::string* private_info);
-  private:
-  const std::string& _internal_private_info() const;
-  void _internal_set_private_info(const std::string& value);
-  std::string* _internal_mutable_private_info();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.ProcInfo)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr proc_id_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr public_info_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr private_info_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgTopicList :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgTopicList) */ {
- public:
-  MsgTopicList();
-  virtual ~MsgTopicList();
-
-  MsgTopicList(const MsgTopicList& from);
-  MsgTopicList(MsgTopicList&& from) noexcept
-    : MsgTopicList() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgTopicList& operator=(const MsgTopicList& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgTopicList& operator=(MsgTopicList&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgTopicList& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgTopicList* internal_default_instance() {
-    return reinterpret_cast<const MsgTopicList*>(
-               &_MsgTopicList_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    2;
-
-  friend void swap(MsgTopicList& a, MsgTopicList& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgTopicList* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgTopicList* New() const final {
-    return CreateMaybeMessage<MsgTopicList>(nullptr);
-  }
-
-  MsgTopicList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgTopicList>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgTopicList& from);
-  void MergeFrom(const MsgTopicList& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgTopicList* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgTopicList";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicListFieldNumber = 1,
-  };
-  // repeated bytes topic_list = 1;
-  int topic_list_size() const;
-  private:
-  int _internal_topic_list_size() const;
-  public:
-  void clear_topic_list();
-  const std::string& topic_list(int index) const;
-  std::string* mutable_topic_list(int index);
-  void set_topic_list(int index, const std::string& value);
-  void set_topic_list(int index, std::string&& value);
-  void set_topic_list(int index, const char* value);
-  void set_topic_list(int index, const void* value, size_t size);
-  std::string* add_topic_list();
-  void add_topic_list(const std::string& value);
-  void add_topic_list(std::string&& value);
-  void add_topic_list(const char* value);
-  void add_topic_list(const void* value, size_t size);
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& topic_list() const;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_topic_list();
-  private:
-  const std::string& _internal_topic_list(int index) const;
-  std::string* _internal_add_topic_list();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgTopicList)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> topic_list_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgPublish :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgPublish) */ {
- public:
-  MsgPublish();
-  virtual ~MsgPublish();
-
-  MsgPublish(const MsgPublish& from);
-  MsgPublish(MsgPublish&& from) noexcept
-    : MsgPublish() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgPublish& operator=(const MsgPublish& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgPublish& operator=(MsgPublish&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgPublish& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgPublish* internal_default_instance() {
-    return reinterpret_cast<const MsgPublish*>(
-               &_MsgPublish_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    3;
-
-  friend void swap(MsgPublish& a, MsgPublish& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgPublish* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgPublish* New() const final {
-    return CreateMaybeMessage<MsgPublish>(nullptr);
-  }
-
-  MsgPublish* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgPublish>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgPublish& from);
-  void MergeFrom(const MsgPublish& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgPublish* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgPublish";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicFieldNumber = 1,
-    kDataFieldNumber = 2,
-  };
-  // bytes topic = 1;
-  void clear_topic();
-  const std::string& topic() const;
-  void set_topic(const std::string& value);
-  void set_topic(std::string&& value);
-  void set_topic(const char* value);
-  void set_topic(const void* value, size_t size);
-  std::string* mutable_topic();
-  std::string* release_topic();
-  void set_allocated_topic(std::string* topic);
-  private:
-  const std::string& _internal_topic() const;
-  void _internal_set_topic(const std::string& value);
-  std::string* _internal_mutable_topic();
-  public:
-
-  // bytes data = 2;
-  void clear_data();
-  const std::string& data() const;
-  void set_data(const std::string& value);
-  void set_data(std::string&& value);
-  void set_data(const char* value);
-  void set_data(const void* value, size_t size);
-  std::string* mutable_data();
-  std::string* release_data();
-  void set_allocated_data(std::string* data);
-  private:
-  const std::string& _internal_data() const;
-  void _internal_set_data(const std::string& value);
-  std::string* _internal_mutable_data();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgPublish)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr topic_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgCommonReply :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgCommonReply) */ {
- public:
-  MsgCommonReply();
-  virtual ~MsgCommonReply();
-
-  MsgCommonReply(const MsgCommonReply& from);
-  MsgCommonReply(MsgCommonReply&& from) noexcept
-    : MsgCommonReply() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgCommonReply& operator=(const MsgCommonReply& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgCommonReply& operator=(MsgCommonReply&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgCommonReply& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgCommonReply* internal_default_instance() {
-    return reinterpret_cast<const MsgCommonReply*>(
-               &_MsgCommonReply_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    4;
-
-  friend void swap(MsgCommonReply& a, MsgCommonReply& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgCommonReply* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgCommonReply* New() const final {
-    return CreateMaybeMessage<MsgCommonReply>(nullptr);
-  }
-
-  MsgCommonReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgCommonReply>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgCommonReply& from);
-  void MergeFrom(const MsgCommonReply& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgCommonReply* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgCommonReply";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kErrmsgFieldNumber = 1,
-  };
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  bool has_errmsg() const;
-  private:
-  bool _internal_has_errmsg() const;
-  public:
-  void clear_errmsg();
-  const ::bhome_msg::ErrorMsg& errmsg() const;
-  ::bhome_msg::ErrorMsg* release_errmsg();
-  ::bhome_msg::ErrorMsg* mutable_errmsg();
-  void set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg);
-  private:
-  const ::bhome_msg::ErrorMsg& _internal_errmsg() const;
-  ::bhome_msg::ErrorMsg* _internal_mutable_errmsg();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgCommonReply)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::ErrorMsg* errmsg_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgRequestTopic :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgRequestTopic) */ {
- public:
-  MsgRequestTopic();
-  virtual ~MsgRequestTopic();
-
-  MsgRequestTopic(const MsgRequestTopic& from);
-  MsgRequestTopic(MsgRequestTopic&& from) noexcept
-    : MsgRequestTopic() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgRequestTopic& operator=(const MsgRequestTopic& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgRequestTopic& operator=(MsgRequestTopic&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgRequestTopic& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgRequestTopic* internal_default_instance() {
-    return reinterpret_cast<const MsgRequestTopic*>(
-               &_MsgRequestTopic_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    5;
-
-  friend void swap(MsgRequestTopic& a, MsgRequestTopic& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgRequestTopic* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgRequestTopic* New() const final {
-    return CreateMaybeMessage<MsgRequestTopic>(nullptr);
-  }
-
-  MsgRequestTopic* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgRequestTopic>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgRequestTopic& from);
-  void MergeFrom(const MsgRequestTopic& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgRequestTopic* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgRequestTopic";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicFieldNumber = 1,
-    kDataFieldNumber = 2,
-  };
-  // bytes topic = 1;
-  void clear_topic();
-  const std::string& topic() const;
-  void set_topic(const std::string& value);
-  void set_topic(std::string&& value);
-  void set_topic(const char* value);
-  void set_topic(const void* value, size_t size);
-  std::string* mutable_topic();
-  std::string* release_topic();
-  void set_allocated_topic(std::string* topic);
-  private:
-  const std::string& _internal_topic() const;
-  void _internal_set_topic(const std::string& value);
-  std::string* _internal_mutable_topic();
-  public:
-
-  // bytes data = 2;
-  void clear_data();
-  const std::string& data() const;
-  void set_data(const std::string& value);
-  void set_data(std::string&& value);
-  void set_data(const char* value);
-  void set_data(const void* value, size_t size);
-  std::string* mutable_data();
-  std::string* release_data();
-  void set_allocated_data(std::string* data);
-  private:
-  const std::string& _internal_data() const;
-  void _internal_set_data(const std::string& value);
-  std::string* _internal_mutable_data();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgRequestTopic)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr topic_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgRequestTopicReply :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgRequestTopicReply) */ {
- public:
-  MsgRequestTopicReply();
-  virtual ~MsgRequestTopicReply();
-
-  MsgRequestTopicReply(const MsgRequestTopicReply& from);
-  MsgRequestTopicReply(MsgRequestTopicReply&& from) noexcept
-    : MsgRequestTopicReply() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgRequestTopicReply& operator=(const MsgRequestTopicReply& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgRequestTopicReply& operator=(MsgRequestTopicReply&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgRequestTopicReply& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgRequestTopicReply* internal_default_instance() {
-    return reinterpret_cast<const MsgRequestTopicReply*>(
-               &_MsgRequestTopicReply_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    6;
-
-  friend void swap(MsgRequestTopicReply& a, MsgRequestTopicReply& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgRequestTopicReply* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgRequestTopicReply* New() const final {
-    return CreateMaybeMessage<MsgRequestTopicReply>(nullptr);
-  }
-
-  MsgRequestTopicReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgRequestTopicReply>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgRequestTopicReply& from);
-  void MergeFrom(const MsgRequestTopicReply& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgRequestTopicReply* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgRequestTopicReply";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kDataFieldNumber = 2,
-    kErrmsgFieldNumber = 1,
-  };
-  // bytes data = 2;
-  void clear_data();
-  const std::string& data() const;
-  void set_data(const std::string& value);
-  void set_data(std::string&& value);
-  void set_data(const char* value);
-  void set_data(const void* value, size_t size);
-  std::string* mutable_data();
-  std::string* release_data();
-  void set_allocated_data(std::string* data);
-  private:
-  const std::string& _internal_data() const;
-  void _internal_set_data(const std::string& value);
-  std::string* _internal_mutable_data();
-  public:
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  bool has_errmsg() const;
-  private:
-  bool _internal_has_errmsg() const;
-  public:
-  void clear_errmsg();
-  const ::bhome_msg::ErrorMsg& errmsg() const;
-  ::bhome_msg::ErrorMsg* release_errmsg();
-  ::bhome_msg::ErrorMsg* mutable_errmsg();
-  void set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg);
-  private:
-  const ::bhome_msg::ErrorMsg& _internal_errmsg() const;
-  ::bhome_msg::ErrorMsg* _internal_mutable_errmsg();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgRequestTopicReply)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
-  ::bhome_msg::ErrorMsg* errmsg_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgRegister :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgRegister) */ {
- public:
-  MsgRegister();
-  virtual ~MsgRegister();
-
-  MsgRegister(const MsgRegister& from);
-  MsgRegister(MsgRegister&& from) noexcept
-    : MsgRegister() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgRegister& operator=(const MsgRegister& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgRegister& operator=(MsgRegister&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgRegister& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgRegister* internal_default_instance() {
-    return reinterpret_cast<const MsgRegister*>(
-               &_MsgRegister_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    7;
-
-  friend void swap(MsgRegister& a, MsgRegister& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgRegister* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgRegister* New() const final {
-    return CreateMaybeMessage<MsgRegister>(nullptr);
-  }
-
-  MsgRegister* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgRegister>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgRegister& from);
-  void MergeFrom(const MsgRegister& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgRegister* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgRegister";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcFieldNumber = 1,
-  };
-  // .bhome_msg.ProcInfo proc = 1;
-  bool has_proc() const;
-  private:
-  bool _internal_has_proc() const;
-  public:
-  void clear_proc();
-  const ::bhome_msg::ProcInfo& proc() const;
-  ::bhome_msg::ProcInfo* release_proc();
-  ::bhome_msg::ProcInfo* mutable_proc();
-  void set_allocated_proc(::bhome_msg::ProcInfo* proc);
-  private:
-  const ::bhome_msg::ProcInfo& _internal_proc() const;
-  ::bhome_msg::ProcInfo* _internal_mutable_proc();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgRegister)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::ProcInfo* proc_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgUnregister :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgUnregister) */ {
- public:
-  MsgUnregister();
-  virtual ~MsgUnregister();
-
-  MsgUnregister(const MsgUnregister& from);
-  MsgUnregister(MsgUnregister&& from) noexcept
-    : MsgUnregister() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgUnregister& operator=(const MsgUnregister& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgUnregister& operator=(MsgUnregister&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgUnregister& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgUnregister* internal_default_instance() {
-    return reinterpret_cast<const MsgUnregister*>(
-               &_MsgUnregister_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    8;
-
-  friend void swap(MsgUnregister& a, MsgUnregister& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgUnregister* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgUnregister* New() const final {
-    return CreateMaybeMessage<MsgUnregister>(nullptr);
-  }
-
-  MsgUnregister* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgUnregister>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgUnregister& from);
-  void MergeFrom(const MsgUnregister& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgUnregister* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgUnregister";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcFieldNumber = 1,
-  };
-  // .bhome_msg.ProcInfo proc = 1;
-  bool has_proc() const;
-  private:
-  bool _internal_has_proc() const;
-  public:
-  void clear_proc();
-  const ::bhome_msg::ProcInfo& proc() const;
-  ::bhome_msg::ProcInfo* release_proc();
-  ::bhome_msg::ProcInfo* mutable_proc();
-  void set_allocated_proc(::bhome_msg::ProcInfo* proc);
-  private:
-  const ::bhome_msg::ProcInfo& _internal_proc() const;
-  ::bhome_msg::ProcInfo* _internal_mutable_proc();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgUnregister)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::ProcInfo* proc_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgHeartbeat :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgHeartbeat) */ {
- public:
-  MsgHeartbeat();
-  virtual ~MsgHeartbeat();
-
-  MsgHeartbeat(const MsgHeartbeat& from);
-  MsgHeartbeat(MsgHeartbeat&& from) noexcept
-    : MsgHeartbeat() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgHeartbeat& operator=(const MsgHeartbeat& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgHeartbeat& operator=(MsgHeartbeat&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgHeartbeat& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgHeartbeat* internal_default_instance() {
-    return reinterpret_cast<const MsgHeartbeat*>(
-               &_MsgHeartbeat_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    9;
-
-  friend void swap(MsgHeartbeat& a, MsgHeartbeat& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgHeartbeat* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgHeartbeat* New() const final {
-    return CreateMaybeMessage<MsgHeartbeat>(nullptr);
-  }
-
-  MsgHeartbeat* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgHeartbeat>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgHeartbeat& from);
-  void MergeFrom(const MsgHeartbeat& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgHeartbeat* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgHeartbeat";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcFieldNumber = 1,
-  };
-  // .bhome_msg.ProcInfo proc = 1;
-  bool has_proc() const;
-  private:
-  bool _internal_has_proc() const;
-  public:
-  void clear_proc();
-  const ::bhome_msg::ProcInfo& proc() const;
-  ::bhome_msg::ProcInfo* release_proc();
-  ::bhome_msg::ProcInfo* mutable_proc();
-  void set_allocated_proc(::bhome_msg::ProcInfo* proc);
-  private:
-  const ::bhome_msg::ProcInfo& _internal_proc() const;
-  ::bhome_msg::ProcInfo* _internal_mutable_proc();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgHeartbeat)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::ProcInfo* proc_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgQueryTopic :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgQueryTopic) */ {
- public:
-  MsgQueryTopic();
-  virtual ~MsgQueryTopic();
-
-  MsgQueryTopic(const MsgQueryTopic& from);
-  MsgQueryTopic(MsgQueryTopic&& from) noexcept
-    : MsgQueryTopic() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgQueryTopic& operator=(const MsgQueryTopic& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgQueryTopic& operator=(MsgQueryTopic&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgQueryTopic& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgQueryTopic* internal_default_instance() {
-    return reinterpret_cast<const MsgQueryTopic*>(
-               &_MsgQueryTopic_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    10;
-
-  friend void swap(MsgQueryTopic& a, MsgQueryTopic& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgQueryTopic* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgQueryTopic* New() const final {
-    return CreateMaybeMessage<MsgQueryTopic>(nullptr);
-  }
-
-  MsgQueryTopic* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgQueryTopic>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgQueryTopic& from);
-  void MergeFrom(const MsgQueryTopic& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgQueryTopic* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgQueryTopic";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kTopicFieldNumber = 1,
-  };
-  // bytes topic = 1;
-  void clear_topic();
-  const std::string& topic() const;
-  void set_topic(const std::string& value);
-  void set_topic(std::string&& value);
-  void set_topic(const char* value);
-  void set_topic(const void* value, size_t size);
-  std::string* mutable_topic();
-  std::string* release_topic();
-  void set_allocated_topic(std::string* topic);
-  private:
-  const std::string& _internal_topic() const;
-  void _internal_set_topic(const std::string& value);
-  std::string* _internal_mutable_topic();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgQueryTopic)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr topic_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgQueryTopicReply_BHNodeAddress :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgQueryTopicReply.BHNodeAddress) */ {
- public:
-  MsgQueryTopicReply_BHNodeAddress();
-  virtual ~MsgQueryTopicReply_BHNodeAddress();
-
-  MsgQueryTopicReply_BHNodeAddress(const MsgQueryTopicReply_BHNodeAddress& from);
-  MsgQueryTopicReply_BHNodeAddress(MsgQueryTopicReply_BHNodeAddress&& from) noexcept
-    : MsgQueryTopicReply_BHNodeAddress() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgQueryTopicReply_BHNodeAddress& operator=(const MsgQueryTopicReply_BHNodeAddress& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgQueryTopicReply_BHNodeAddress& operator=(MsgQueryTopicReply_BHNodeAddress&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgQueryTopicReply_BHNodeAddress& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgQueryTopicReply_BHNodeAddress* internal_default_instance() {
-    return reinterpret_cast<const MsgQueryTopicReply_BHNodeAddress*>(
-               &_MsgQueryTopicReply_BHNodeAddress_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    11;
-
-  friend void swap(MsgQueryTopicReply_BHNodeAddress& a, MsgQueryTopicReply_BHNodeAddress& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgQueryTopicReply_BHNodeAddress* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgQueryTopicReply_BHNodeAddress* New() const final {
-    return CreateMaybeMessage<MsgQueryTopicReply_BHNodeAddress>(nullptr);
-  }
-
-  MsgQueryTopicReply_BHNodeAddress* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgQueryTopicReply_BHNodeAddress>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgQueryTopicReply_BHNodeAddress& from);
-  void MergeFrom(const MsgQueryTopicReply_BHNodeAddress& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgQueryTopicReply_BHNodeAddress* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgQueryTopicReply.BHNodeAddress";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcIdFieldNumber = 1,
-    kAddrFieldNumber = 2,
-  };
-  // bytes proc_id = 1;
-  void clear_proc_id();
-  const std::string& proc_id() const;
-  void set_proc_id(const std::string& value);
-  void set_proc_id(std::string&& value);
-  void set_proc_id(const char* value);
-  void set_proc_id(const void* value, size_t size);
-  std::string* mutable_proc_id();
-  std::string* release_proc_id();
-  void set_allocated_proc_id(std::string* proc_id);
-  private:
-  const std::string& _internal_proc_id() const;
-  void _internal_set_proc_id(const std::string& value);
-  std::string* _internal_mutable_proc_id();
-  public:
-
-  // .bhome_msg.BHAddress addr = 2;
-  bool has_addr() const;
-  private:
-  bool _internal_has_addr() const;
-  public:
-  void clear_addr();
-  const ::bhome_msg::BHAddress& addr() const;
-  ::bhome_msg::BHAddress* release_addr();
-  ::bhome_msg::BHAddress* mutable_addr();
-  void set_allocated_addr(::bhome_msg::BHAddress* addr);
-  private:
-  const ::bhome_msg::BHAddress& _internal_addr() const;
-  ::bhome_msg::BHAddress* _internal_mutable_addr();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgQueryTopicReply.BHNodeAddress)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr proc_id_;
-  ::bhome_msg::BHAddress* addr_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgQueryTopicReply :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgQueryTopicReply) */ {
- public:
-  MsgQueryTopicReply();
-  virtual ~MsgQueryTopicReply();
-
-  MsgQueryTopicReply(const MsgQueryTopicReply& from);
-  MsgQueryTopicReply(MsgQueryTopicReply&& from) noexcept
-    : MsgQueryTopicReply() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgQueryTopicReply& operator=(const MsgQueryTopicReply& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgQueryTopicReply& operator=(MsgQueryTopicReply&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgQueryTopicReply& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgQueryTopicReply* internal_default_instance() {
-    return reinterpret_cast<const MsgQueryTopicReply*>(
-               &_MsgQueryTopicReply_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    12;
-
-  friend void swap(MsgQueryTopicReply& a, MsgQueryTopicReply& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgQueryTopicReply* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgQueryTopicReply* New() const final {
-    return CreateMaybeMessage<MsgQueryTopicReply>(nullptr);
-  }
-
-  MsgQueryTopicReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgQueryTopicReply>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgQueryTopicReply& from);
-  void MergeFrom(const MsgQueryTopicReply& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgQueryTopicReply* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgQueryTopicReply";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef MsgQueryTopicReply_BHNodeAddress BHNodeAddress;
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kNodeAddressFieldNumber = 2,
-    kErrmsgFieldNumber = 1,
-  };
-  // repeated .bhome_msg.MsgQueryTopicReply.BHNodeAddress node_address = 2;
-  int node_address_size() const;
-  private:
-  int _internal_node_address_size() const;
-  public:
-  void clear_node_address();
-  ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* mutable_node_address(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress >*
-      mutable_node_address();
-  private:
-  const ::bhome_msg::MsgQueryTopicReply_BHNodeAddress& _internal_node_address(int index) const;
-  ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* _internal_add_node_address();
-  public:
-  const ::bhome_msg::MsgQueryTopicReply_BHNodeAddress& node_address(int index) const;
-  ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* add_node_address();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress >&
-      node_address() const;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  bool has_errmsg() const;
-  private:
-  bool _internal_has_errmsg() const;
-  public:
-  void clear_errmsg();
-  const ::bhome_msg::ErrorMsg& errmsg() const;
-  ::bhome_msg::ErrorMsg* release_errmsg();
-  ::bhome_msg::ErrorMsg* mutable_errmsg();
-  void set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg);
-  private:
-  const ::bhome_msg::ErrorMsg& _internal_errmsg() const;
-  ::bhome_msg::ErrorMsg* _internal_mutable_errmsg();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgQueryTopicReply)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress > node_address_;
-  ::bhome_msg::ErrorMsg* errmsg_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgQueryProc :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgQueryProc) */ {
- public:
-  MsgQueryProc();
-  virtual ~MsgQueryProc();
-
-  MsgQueryProc(const MsgQueryProc& from);
-  MsgQueryProc(MsgQueryProc&& from) noexcept
-    : MsgQueryProc() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgQueryProc& operator=(const MsgQueryProc& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgQueryProc& operator=(MsgQueryProc&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgQueryProc& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgQueryProc* internal_default_instance() {
-    return reinterpret_cast<const MsgQueryProc*>(
-               &_MsgQueryProc_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    13;
-
-  friend void swap(MsgQueryProc& a, MsgQueryProc& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgQueryProc* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgQueryProc* New() const final {
-    return CreateMaybeMessage<MsgQueryProc>(nullptr);
-  }
-
-  MsgQueryProc* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgQueryProc>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgQueryProc& from);
-  void MergeFrom(const MsgQueryProc& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgQueryProc* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgQueryProc";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcIdFieldNumber = 1,
-  };
-  // bytes proc_id = 1;
-  void clear_proc_id();
-  const std::string& proc_id() const;
-  void set_proc_id(const std::string& value);
-  void set_proc_id(std::string&& value);
-  void set_proc_id(const char* value);
-  void set_proc_id(const void* value, size_t size);
-  std::string* mutable_proc_id();
-  std::string* release_proc_id();
-  void set_allocated_proc_id(std::string* proc_id);
-  private:
-  const std::string& _internal_proc_id() const;
-  void _internal_set_proc_id(const std::string& value);
-  std::string* _internal_mutable_proc_id();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgQueryProc)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr proc_id_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgQueryProcReply_Info :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgQueryProcReply.Info) */ {
- public:
-  MsgQueryProcReply_Info();
-  virtual ~MsgQueryProcReply_Info();
-
-  MsgQueryProcReply_Info(const MsgQueryProcReply_Info& from);
-  MsgQueryProcReply_Info(MsgQueryProcReply_Info&& from) noexcept
-    : MsgQueryProcReply_Info() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgQueryProcReply_Info& operator=(const MsgQueryProcReply_Info& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgQueryProcReply_Info& operator=(MsgQueryProcReply_Info&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgQueryProcReply_Info& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgQueryProcReply_Info* internal_default_instance() {
-    return reinterpret_cast<const MsgQueryProcReply_Info*>(
-               &_MsgQueryProcReply_Info_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    14;
-
-  friend void swap(MsgQueryProcReply_Info& a, MsgQueryProcReply_Info& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgQueryProcReply_Info* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgQueryProcReply_Info* New() const final {
-    return CreateMaybeMessage<MsgQueryProcReply_Info>(nullptr);
-  }
-
-  MsgQueryProcReply_Info* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgQueryProcReply_Info>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgQueryProcReply_Info& from);
-  void MergeFrom(const MsgQueryProcReply_Info& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgQueryProcReply_Info* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgQueryProcReply.Info";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcFieldNumber = 1,
-    kServiceFieldNumber = 3,
-    kLocalSubFieldNumber = 4,
-    kNetSubFieldNumber = 5,
-    kOnlineFieldNumber = 2,
-  };
-  // .bhome_msg.ProcInfo proc = 1;
-  bool has_proc() const;
-  private:
-  bool _internal_has_proc() const;
-  public:
-  void clear_proc();
-  const ::bhome_msg::ProcInfo& proc() const;
-  ::bhome_msg::ProcInfo* release_proc();
-  ::bhome_msg::ProcInfo* mutable_proc();
-  void set_allocated_proc(::bhome_msg::ProcInfo* proc);
-  private:
-  const ::bhome_msg::ProcInfo& _internal_proc() const;
-  ::bhome_msg::ProcInfo* _internal_mutable_proc();
-  public:
-
-  // .bhome_msg.MsgTopicList service = 3;
-  bool has_service() const;
-  private:
-  bool _internal_has_service() const;
-  public:
-  void clear_service();
-  const ::bhome_msg::MsgTopicList& service() const;
-  ::bhome_msg::MsgTopicList* release_service();
-  ::bhome_msg::MsgTopicList* mutable_service();
-  void set_allocated_service(::bhome_msg::MsgTopicList* service);
-  private:
-  const ::bhome_msg::MsgTopicList& _internal_service() const;
-  ::bhome_msg::MsgTopicList* _internal_mutable_service();
-  public:
-
-  // .bhome_msg.MsgTopicList local_sub = 4;
-  bool has_local_sub() const;
-  private:
-  bool _internal_has_local_sub() const;
-  public:
-  void clear_local_sub();
-  const ::bhome_msg::MsgTopicList& local_sub() const;
-  ::bhome_msg::MsgTopicList* release_local_sub();
-  ::bhome_msg::MsgTopicList* mutable_local_sub();
-  void set_allocated_local_sub(::bhome_msg::MsgTopicList* local_sub);
-  private:
-  const ::bhome_msg::MsgTopicList& _internal_local_sub() const;
-  ::bhome_msg::MsgTopicList* _internal_mutable_local_sub();
-  public:
-
-  // .bhome_msg.MsgTopicList net_sub = 5;
-  bool has_net_sub() const;
-  private:
-  bool _internal_has_net_sub() const;
-  public:
-  void clear_net_sub();
-  const ::bhome_msg::MsgTopicList& net_sub() const;
-  ::bhome_msg::MsgTopicList* release_net_sub();
-  ::bhome_msg::MsgTopicList* mutable_net_sub();
-  void set_allocated_net_sub(::bhome_msg::MsgTopicList* net_sub);
-  private:
-  const ::bhome_msg::MsgTopicList& _internal_net_sub() const;
-  ::bhome_msg::MsgTopicList* _internal_mutable_net_sub();
-  public:
-
-  // bool online = 2;
-  void clear_online();
-  bool online() const;
-  void set_online(bool value);
-  private:
-  bool _internal_online() const;
-  void _internal_set_online(bool value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgQueryProcReply.Info)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::bhome_msg::ProcInfo* proc_;
-  ::bhome_msg::MsgTopicList* service_;
-  ::bhome_msg::MsgTopicList* local_sub_;
-  ::bhome_msg::MsgTopicList* net_sub_;
-  bool online_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// -------------------------------------------------------------------
-
-class MsgQueryProcReply :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.MsgQueryProcReply) */ {
- public:
-  MsgQueryProcReply();
-  virtual ~MsgQueryProcReply();
-
-  MsgQueryProcReply(const MsgQueryProcReply& from);
-  MsgQueryProcReply(MsgQueryProcReply&& from) noexcept
-    : MsgQueryProcReply() {
-    *this = ::std::move(from);
-  }
-
-  inline MsgQueryProcReply& operator=(const MsgQueryProcReply& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline MsgQueryProcReply& operator=(MsgQueryProcReply&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const MsgQueryProcReply& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const MsgQueryProcReply* internal_default_instance() {
-    return reinterpret_cast<const MsgQueryProcReply*>(
-               &_MsgQueryProcReply_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    15;
-
-  friend void swap(MsgQueryProcReply& a, MsgQueryProcReply& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(MsgQueryProcReply* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline MsgQueryProcReply* New() const final {
-    return CreateMaybeMessage<MsgQueryProcReply>(nullptr);
-  }
-
-  MsgQueryProcReply* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<MsgQueryProcReply>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const MsgQueryProcReply& from);
-  void MergeFrom(const MsgQueryProcReply& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(MsgQueryProcReply* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.MsgQueryProcReply";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  typedef MsgQueryProcReply_Info Info;
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kProcListFieldNumber = 2,
-    kErrmsgFieldNumber = 1,
-  };
-  // repeated .bhome_msg.MsgQueryProcReply.Info proc_list = 2;
-  int proc_list_size() const;
-  private:
-  int _internal_proc_list_size() const;
-  public:
-  void clear_proc_list();
-  ::bhome_msg::MsgQueryProcReply_Info* mutable_proc_list(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryProcReply_Info >*
-      mutable_proc_list();
-  private:
-  const ::bhome_msg::MsgQueryProcReply_Info& _internal_proc_list(int index) const;
-  ::bhome_msg::MsgQueryProcReply_Info* _internal_add_proc_list();
-  public:
-  const ::bhome_msg::MsgQueryProcReply_Info& proc_list(int index) const;
-  ::bhome_msg::MsgQueryProcReply_Info* add_proc_list();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryProcReply_Info >&
-      proc_list() const;
-
-  // .bhome_msg.ErrorMsg errmsg = 1;
-  bool has_errmsg() const;
-  private:
-  bool _internal_has_errmsg() const;
-  public:
-  void clear_errmsg();
-  const ::bhome_msg::ErrorMsg& errmsg() const;
-  ::bhome_msg::ErrorMsg* release_errmsg();
-  ::bhome_msg::ErrorMsg* mutable_errmsg();
-  void set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg);
-  private:
-  const ::bhome_msg::ErrorMsg& _internal_errmsg() const;
-  ::bhome_msg::ErrorMsg* _internal_mutable_errmsg();
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.MsgQueryProcReply)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryProcReply_Info > proc_list_;
-  ::bhome_msg::ErrorMsg* errmsg_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_bhome_5fmsg_5fapi_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// BHAddress
-
-// uint64 mq_id = 1;
-inline void BHAddress::clear_mq_id() {
-  mq_id_ = PROTOBUF_ULONGLONG(0);
-}
-inline ::PROTOBUF_NAMESPACE_ID::uint64 BHAddress::_internal_mq_id() const {
-  return mq_id_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::uint64 BHAddress::mq_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHAddress.mq_id)
-  return _internal_mq_id();
-}
-inline void BHAddress::_internal_set_mq_id(::PROTOBUF_NAMESPACE_ID::uint64 value) {
-  
-  mq_id_ = value;
-}
-inline void BHAddress::set_mq_id(::PROTOBUF_NAMESPACE_ID::uint64 value) {
-  _internal_set_mq_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHAddress.mq_id)
-}
-
-// int64 abs_addr = 2;
-inline void BHAddress::clear_abs_addr() {
-  abs_addr_ = PROTOBUF_LONGLONG(0);
-}
-inline ::PROTOBUF_NAMESPACE_ID::int64 BHAddress::_internal_abs_addr() const {
-  return abs_addr_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int64 BHAddress::abs_addr() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHAddress.abs_addr)
-  return _internal_abs_addr();
-}
-inline void BHAddress::_internal_set_abs_addr(::PROTOBUF_NAMESPACE_ID::int64 value) {
-  
-  abs_addr_ = value;
-}
-inline void BHAddress::set_abs_addr(::PROTOBUF_NAMESPACE_ID::int64 value) {
-  _internal_set_abs_addr(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHAddress.abs_addr)
-}
-
-// bytes ip = 3;
-inline void BHAddress::clear_ip() {
-  ip_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& BHAddress::ip() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHAddress.ip)
-  return _internal_ip();
-}
-inline void BHAddress::set_ip(const std::string& value) {
-  _internal_set_ip(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHAddress.ip)
-}
-inline std::string* BHAddress::mutable_ip() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.BHAddress.ip)
-  return _internal_mutable_ip();
-}
-inline const std::string& BHAddress::_internal_ip() const {
-  return ip_.GetNoArena();
-}
-inline void BHAddress::_internal_set_ip(const std::string& value) {
-  
-  ip_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void BHAddress::set_ip(std::string&& value) {
-  
-  ip_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.BHAddress.ip)
-}
-inline void BHAddress::set_ip(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  ip_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.BHAddress.ip)
-}
-inline void BHAddress::set_ip(const void* value, size_t size) {
-  
-  ip_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.BHAddress.ip)
-}
-inline std::string* BHAddress::_internal_mutable_ip() {
-  
-  return ip_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* BHAddress::release_ip() {
-  // @@protoc_insertion_point(field_release:bhome_msg.BHAddress.ip)
-  
-  return ip_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void BHAddress::set_allocated_ip(std::string* ip) {
-  if (ip != nullptr) {
-    
-  } else {
-    
-  }
-  ip_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ip);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.BHAddress.ip)
-}
-
-// int32 port = 4;
-inline void BHAddress::clear_port() {
-  port_ = 0;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 BHAddress::_internal_port() const {
-  return port_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 BHAddress::port() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.BHAddress.port)
-  return _internal_port();
-}
-inline void BHAddress::_internal_set_port(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  port_ = value;
-}
-inline void BHAddress::set_port(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  _internal_set_port(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.BHAddress.port)
-}
-
-// -------------------------------------------------------------------
-
-// ProcInfo
-
-// bytes proc_id = 1;
-inline void ProcInfo::clear_proc_id() {
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& ProcInfo::proc_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.ProcInfo.proc_id)
-  return _internal_proc_id();
-}
-inline void ProcInfo::set_proc_id(const std::string& value) {
-  _internal_set_proc_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.ProcInfo.proc_id)
-}
-inline std::string* ProcInfo::mutable_proc_id() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.ProcInfo.proc_id)
-  return _internal_mutable_proc_id();
-}
-inline const std::string& ProcInfo::_internal_proc_id() const {
-  return proc_id_.GetNoArena();
-}
-inline void ProcInfo::_internal_set_proc_id(const std::string& value) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void ProcInfo::set_proc_id(std::string&& value) {
-  
-  proc_id_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.ProcInfo.proc_id)
-}
-inline void ProcInfo::set_proc_id(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.ProcInfo.proc_id)
-}
-inline void ProcInfo::set_proc_id(const void* value, size_t size) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.ProcInfo.proc_id)
-}
-inline std::string* ProcInfo::_internal_mutable_proc_id() {
-  
-  return proc_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* ProcInfo::release_proc_id() {
-  // @@protoc_insertion_point(field_release:bhome_msg.ProcInfo.proc_id)
-  
-  return proc_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void ProcInfo::set_allocated_proc_id(std::string* proc_id) {
-  if (proc_id != nullptr) {
-    
-  } else {
-    
-  }
-  proc_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), proc_id);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.ProcInfo.proc_id)
-}
-
-// bytes name = 2;
-inline void ProcInfo::clear_name() {
-  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& ProcInfo::name() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.ProcInfo.name)
-  return _internal_name();
-}
-inline void ProcInfo::set_name(const std::string& value) {
-  _internal_set_name(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.ProcInfo.name)
-}
-inline std::string* ProcInfo::mutable_name() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.ProcInfo.name)
-  return _internal_mutable_name();
-}
-inline const std::string& ProcInfo::_internal_name() const {
-  return name_.GetNoArena();
-}
-inline void ProcInfo::_internal_set_name(const std::string& value) {
-  
-  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void ProcInfo::set_name(std::string&& value) {
-  
-  name_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.ProcInfo.name)
-}
-inline void ProcInfo::set_name(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.ProcInfo.name)
-}
-inline void ProcInfo::set_name(const void* value, size_t size) {
-  
-  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.ProcInfo.name)
-}
-inline std::string* ProcInfo::_internal_mutable_name() {
-  
-  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* ProcInfo::release_name() {
-  // @@protoc_insertion_point(field_release:bhome_msg.ProcInfo.name)
-  
-  return name_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void ProcInfo::set_allocated_name(std::string* name) {
-  if (name != nullptr) {
-    
-  } else {
-    
-  }
-  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.ProcInfo.name)
-}
-
-// bytes public_info = 3;
-inline void ProcInfo::clear_public_info() {
-  public_info_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& ProcInfo::public_info() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.ProcInfo.public_info)
-  return _internal_public_info();
-}
-inline void ProcInfo::set_public_info(const std::string& value) {
-  _internal_set_public_info(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.ProcInfo.public_info)
-}
-inline std::string* ProcInfo::mutable_public_info() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.ProcInfo.public_info)
-  return _internal_mutable_public_info();
-}
-inline const std::string& ProcInfo::_internal_public_info() const {
-  return public_info_.GetNoArena();
-}
-inline void ProcInfo::_internal_set_public_info(const std::string& value) {
-  
-  public_info_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void ProcInfo::set_public_info(std::string&& value) {
-  
-  public_info_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.ProcInfo.public_info)
-}
-inline void ProcInfo::set_public_info(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  public_info_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.ProcInfo.public_info)
-}
-inline void ProcInfo::set_public_info(const void* value, size_t size) {
-  
-  public_info_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.ProcInfo.public_info)
-}
-inline std::string* ProcInfo::_internal_mutable_public_info() {
-  
-  return public_info_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* ProcInfo::release_public_info() {
-  // @@protoc_insertion_point(field_release:bhome_msg.ProcInfo.public_info)
-  
-  return public_info_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void ProcInfo::set_allocated_public_info(std::string* public_info) {
-  if (public_info != nullptr) {
-    
-  } else {
-    
-  }
-  public_info_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), public_info);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.ProcInfo.public_info)
-}
-
-// bytes private_info = 4;
-inline void ProcInfo::clear_private_info() {
-  private_info_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& ProcInfo::private_info() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.ProcInfo.private_info)
-  return _internal_private_info();
-}
-inline void ProcInfo::set_private_info(const std::string& value) {
-  _internal_set_private_info(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.ProcInfo.private_info)
-}
-inline std::string* ProcInfo::mutable_private_info() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.ProcInfo.private_info)
-  return _internal_mutable_private_info();
-}
-inline const std::string& ProcInfo::_internal_private_info() const {
-  return private_info_.GetNoArena();
-}
-inline void ProcInfo::_internal_set_private_info(const std::string& value) {
-  
-  private_info_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void ProcInfo::set_private_info(std::string&& value) {
-  
-  private_info_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.ProcInfo.private_info)
-}
-inline void ProcInfo::set_private_info(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  private_info_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.ProcInfo.private_info)
-}
-inline void ProcInfo::set_private_info(const void* value, size_t size) {
-  
-  private_info_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.ProcInfo.private_info)
-}
-inline std::string* ProcInfo::_internal_mutable_private_info() {
-  
-  return private_info_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* ProcInfo::release_private_info() {
-  // @@protoc_insertion_point(field_release:bhome_msg.ProcInfo.private_info)
-  
-  return private_info_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void ProcInfo::set_allocated_private_info(std::string* private_info) {
-  if (private_info != nullptr) {
-    
-  } else {
-    
-  }
-  private_info_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), private_info);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.ProcInfo.private_info)
-}
-
-// -------------------------------------------------------------------
-
-// MsgTopicList
-
-// repeated bytes topic_list = 1;
-inline int MsgTopicList::_internal_topic_list_size() const {
-  return topic_list_.size();
-}
-inline int MsgTopicList::topic_list_size() const {
-  return _internal_topic_list_size();
-}
-inline void MsgTopicList::clear_topic_list() {
-  topic_list_.Clear();
-}
-inline std::string* MsgTopicList::add_topic_list() {
-  // @@protoc_insertion_point(field_add_mutable:bhome_msg.MsgTopicList.topic_list)
-  return _internal_add_topic_list();
-}
-inline const std::string& MsgTopicList::_internal_topic_list(int index) const {
-  return topic_list_.Get(index);
-}
-inline const std::string& MsgTopicList::topic_list(int index) const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgTopicList.topic_list)
-  return _internal_topic_list(index);
-}
-inline std::string* MsgTopicList::mutable_topic_list(int index) {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgTopicList.topic_list)
-  return topic_list_.Mutable(index);
-}
-inline void MsgTopicList::set_topic_list(int index, const std::string& value) {
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgTopicList.topic_list)
-  topic_list_.Mutable(index)->assign(value);
-}
-inline void MsgTopicList::set_topic_list(int index, std::string&& value) {
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgTopicList.topic_list)
-  topic_list_.Mutable(index)->assign(std::move(value));
-}
-inline void MsgTopicList::set_topic_list(int index, const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  topic_list_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgTopicList.topic_list)
-}
-inline void MsgTopicList::set_topic_list(int index, const void* value, size_t size) {
-  topic_list_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgTopicList.topic_list)
-}
-inline std::string* MsgTopicList::_internal_add_topic_list() {
-  return topic_list_.Add();
-}
-inline void MsgTopicList::add_topic_list(const std::string& value) {
-  topic_list_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:bhome_msg.MsgTopicList.topic_list)
-}
-inline void MsgTopicList::add_topic_list(std::string&& value) {
-  topic_list_.Add(std::move(value));
-  // @@protoc_insertion_point(field_add:bhome_msg.MsgTopicList.topic_list)
-}
-inline void MsgTopicList::add_topic_list(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  topic_list_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:bhome_msg.MsgTopicList.topic_list)
-}
-inline void MsgTopicList::add_topic_list(const void* value, size_t size) {
-  topic_list_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:bhome_msg.MsgTopicList.topic_list)
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
-MsgTopicList::topic_list() const {
-  // @@protoc_insertion_point(field_list:bhome_msg.MsgTopicList.topic_list)
-  return topic_list_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
-MsgTopicList::mutable_topic_list() {
-  // @@protoc_insertion_point(field_mutable_list:bhome_msg.MsgTopicList.topic_list)
-  return &topic_list_;
-}
-
-// -------------------------------------------------------------------
-
-// MsgPublish
-
-// bytes topic = 1;
-inline void MsgPublish::clear_topic() {
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgPublish::topic() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgPublish.topic)
-  return _internal_topic();
-}
-inline void MsgPublish::set_topic(const std::string& value) {
-  _internal_set_topic(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgPublish.topic)
-}
-inline std::string* MsgPublish::mutable_topic() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgPublish.topic)
-  return _internal_mutable_topic();
-}
-inline const std::string& MsgPublish::_internal_topic() const {
-  return topic_.GetNoArena();
-}
-inline void MsgPublish::_internal_set_topic(const std::string& value) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgPublish::set_topic(std::string&& value) {
-  
-  topic_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgPublish.topic)
-}
-inline void MsgPublish::set_topic(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgPublish.topic)
-}
-inline void MsgPublish::set_topic(const void* value, size_t size) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgPublish.topic)
-}
-inline std::string* MsgPublish::_internal_mutable_topic() {
-  
-  return topic_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgPublish::release_topic() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgPublish.topic)
-  
-  return topic_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgPublish::set_allocated_topic(std::string* topic) {
-  if (topic != nullptr) {
-    
-  } else {
-    
-  }
-  topic_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), topic);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgPublish.topic)
-}
-
-// bytes data = 2;
-inline void MsgPublish::clear_data() {
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgPublish::data() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgPublish.data)
-  return _internal_data();
-}
-inline void MsgPublish::set_data(const std::string& value) {
-  _internal_set_data(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgPublish.data)
-}
-inline std::string* MsgPublish::mutable_data() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgPublish.data)
-  return _internal_mutable_data();
-}
-inline const std::string& MsgPublish::_internal_data() const {
-  return data_.GetNoArena();
-}
-inline void MsgPublish::_internal_set_data(const std::string& value) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgPublish::set_data(std::string&& value) {
-  
-  data_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgPublish.data)
-}
-inline void MsgPublish::set_data(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgPublish.data)
-}
-inline void MsgPublish::set_data(const void* value, size_t size) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgPublish.data)
-}
-inline std::string* MsgPublish::_internal_mutable_data() {
-  
-  return data_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgPublish::release_data() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgPublish.data)
-  
-  return data_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgPublish::set_allocated_data(std::string* data) {
-  if (data != nullptr) {
-    
-  } else {
-    
-  }
-  data_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgPublish.data)
-}
-
-// -------------------------------------------------------------------
-
-// MsgCommonReply
-
-// .bhome_msg.ErrorMsg errmsg = 1;
-inline bool MsgCommonReply::_internal_has_errmsg() const {
-  return this != internal_default_instance() && errmsg_ != nullptr;
-}
-inline bool MsgCommonReply::has_errmsg() const {
-  return _internal_has_errmsg();
-}
-inline const ::bhome_msg::ErrorMsg& MsgCommonReply::_internal_errmsg() const {
-  const ::bhome_msg::ErrorMsg* p = errmsg_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ErrorMsg*>(
-      &::bhome_msg::_ErrorMsg_default_instance_);
-}
-inline const ::bhome_msg::ErrorMsg& MsgCommonReply::errmsg() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgCommonReply.errmsg)
-  return _internal_errmsg();
-}
-inline ::bhome_msg::ErrorMsg* MsgCommonReply::release_errmsg() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgCommonReply.errmsg)
-  
-  ::bhome_msg::ErrorMsg* temp = errmsg_;
-  errmsg_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ErrorMsg* MsgCommonReply::_internal_mutable_errmsg() {
-  
-  if (errmsg_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ErrorMsg>(GetArenaNoVirtual());
-    errmsg_ = p;
-  }
-  return errmsg_;
-}
-inline ::bhome_msg::ErrorMsg* MsgCommonReply::mutable_errmsg() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgCommonReply.errmsg)
-  return _internal_mutable_errmsg();
-}
-inline void MsgCommonReply::set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(errmsg_);
-  }
-  if (errmsg) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      errmsg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, errmsg, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  errmsg_ = errmsg;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgCommonReply.errmsg)
-}
-
-// -------------------------------------------------------------------
-
-// MsgRequestTopic
-
-// bytes topic = 1;
-inline void MsgRequestTopic::clear_topic() {
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgRequestTopic::topic() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequestTopic.topic)
-  return _internal_topic();
-}
-inline void MsgRequestTopic::set_topic(const std::string& value) {
-  _internal_set_topic(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgRequestTopic.topic)
-}
-inline std::string* MsgRequestTopic::mutable_topic() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequestTopic.topic)
-  return _internal_mutable_topic();
-}
-inline const std::string& MsgRequestTopic::_internal_topic() const {
-  return topic_.GetNoArena();
-}
-inline void MsgRequestTopic::_internal_set_topic(const std::string& value) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgRequestTopic::set_topic(std::string&& value) {
-  
-  topic_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgRequestTopic.topic)
-}
-inline void MsgRequestTopic::set_topic(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgRequestTopic.topic)
-}
-inline void MsgRequestTopic::set_topic(const void* value, size_t size) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgRequestTopic.topic)
-}
-inline std::string* MsgRequestTopic::_internal_mutable_topic() {
-  
-  return topic_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgRequestTopic::release_topic() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequestTopic.topic)
-  
-  return topic_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgRequestTopic::set_allocated_topic(std::string* topic) {
-  if (topic != nullptr) {
-    
-  } else {
-    
-  }
-  topic_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), topic);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequestTopic.topic)
-}
-
-// bytes data = 2;
-inline void MsgRequestTopic::clear_data() {
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgRequestTopic::data() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequestTopic.data)
-  return _internal_data();
-}
-inline void MsgRequestTopic::set_data(const std::string& value) {
-  _internal_set_data(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgRequestTopic.data)
-}
-inline std::string* MsgRequestTopic::mutable_data() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequestTopic.data)
-  return _internal_mutable_data();
-}
-inline const std::string& MsgRequestTopic::_internal_data() const {
-  return data_.GetNoArena();
-}
-inline void MsgRequestTopic::_internal_set_data(const std::string& value) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgRequestTopic::set_data(std::string&& value) {
-  
-  data_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgRequestTopic.data)
-}
-inline void MsgRequestTopic::set_data(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgRequestTopic.data)
-}
-inline void MsgRequestTopic::set_data(const void* value, size_t size) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgRequestTopic.data)
-}
-inline std::string* MsgRequestTopic::_internal_mutable_data() {
-  
-  return data_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgRequestTopic::release_data() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequestTopic.data)
-  
-  return data_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgRequestTopic::set_allocated_data(std::string* data) {
-  if (data != nullptr) {
-    
-  } else {
-    
-  }
-  data_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequestTopic.data)
-}
-
-// -------------------------------------------------------------------
-
-// MsgRequestTopicReply
-
-// .bhome_msg.ErrorMsg errmsg = 1;
-inline bool MsgRequestTopicReply::_internal_has_errmsg() const {
-  return this != internal_default_instance() && errmsg_ != nullptr;
-}
-inline bool MsgRequestTopicReply::has_errmsg() const {
-  return _internal_has_errmsg();
-}
-inline const ::bhome_msg::ErrorMsg& MsgRequestTopicReply::_internal_errmsg() const {
-  const ::bhome_msg::ErrorMsg* p = errmsg_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ErrorMsg*>(
-      &::bhome_msg::_ErrorMsg_default_instance_);
-}
-inline const ::bhome_msg::ErrorMsg& MsgRequestTopicReply::errmsg() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequestTopicReply.errmsg)
-  return _internal_errmsg();
-}
-inline ::bhome_msg::ErrorMsg* MsgRequestTopicReply::release_errmsg() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequestTopicReply.errmsg)
-  
-  ::bhome_msg::ErrorMsg* temp = errmsg_;
-  errmsg_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ErrorMsg* MsgRequestTopicReply::_internal_mutable_errmsg() {
-  
-  if (errmsg_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ErrorMsg>(GetArenaNoVirtual());
-    errmsg_ = p;
-  }
-  return errmsg_;
-}
-inline ::bhome_msg::ErrorMsg* MsgRequestTopicReply::mutable_errmsg() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequestTopicReply.errmsg)
-  return _internal_mutable_errmsg();
-}
-inline void MsgRequestTopicReply::set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(errmsg_);
-  }
-  if (errmsg) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      errmsg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, errmsg, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  errmsg_ = errmsg;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequestTopicReply.errmsg)
-}
-
-// bytes data = 2;
-inline void MsgRequestTopicReply::clear_data() {
-  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgRequestTopicReply::data() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRequestTopicReply.data)
-  return _internal_data();
-}
-inline void MsgRequestTopicReply::set_data(const std::string& value) {
-  _internal_set_data(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgRequestTopicReply.data)
-}
-inline std::string* MsgRequestTopicReply::mutable_data() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRequestTopicReply.data)
-  return _internal_mutable_data();
-}
-inline const std::string& MsgRequestTopicReply::_internal_data() const {
-  return data_.GetNoArena();
-}
-inline void MsgRequestTopicReply::_internal_set_data(const std::string& value) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgRequestTopicReply::set_data(std::string&& value) {
-  
-  data_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgRequestTopicReply.data)
-}
-inline void MsgRequestTopicReply::set_data(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgRequestTopicReply.data)
-}
-inline void MsgRequestTopicReply::set_data(const void* value, size_t size) {
-  
-  data_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgRequestTopicReply.data)
-}
-inline std::string* MsgRequestTopicReply::_internal_mutable_data() {
-  
-  return data_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgRequestTopicReply::release_data() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRequestTopicReply.data)
-  
-  return data_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgRequestTopicReply::set_allocated_data(std::string* data) {
-  if (data != nullptr) {
-    
-  } else {
-    
-  }
-  data_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRequestTopicReply.data)
-}
-
-// -------------------------------------------------------------------
-
-// MsgRegister
-
-// .bhome_msg.ProcInfo proc = 1;
-inline bool MsgRegister::_internal_has_proc() const {
-  return this != internal_default_instance() && proc_ != nullptr;
-}
-inline bool MsgRegister::has_proc() const {
-  return _internal_has_proc();
-}
-inline void MsgRegister::clear_proc() {
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-}
-inline const ::bhome_msg::ProcInfo& MsgRegister::_internal_proc() const {
-  const ::bhome_msg::ProcInfo* p = proc_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ProcInfo*>(
-      &::bhome_msg::_ProcInfo_default_instance_);
-}
-inline const ::bhome_msg::ProcInfo& MsgRegister::proc() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgRegister.proc)
-  return _internal_proc();
-}
-inline ::bhome_msg::ProcInfo* MsgRegister::release_proc() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgRegister.proc)
-  
-  ::bhome_msg::ProcInfo* temp = proc_;
-  proc_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ProcInfo* MsgRegister::_internal_mutable_proc() {
-  
-  if (proc_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ProcInfo>(GetArenaNoVirtual());
-    proc_ = p;
-  }
-  return proc_;
-}
-inline ::bhome_msg::ProcInfo* MsgRegister::mutable_proc() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgRegister.proc)
-  return _internal_mutable_proc();
-}
-inline void MsgRegister::set_allocated_proc(::bhome_msg::ProcInfo* proc) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete proc_;
-  }
-  if (proc) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      proc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, proc, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  proc_ = proc;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgRegister.proc)
-}
-
-// -------------------------------------------------------------------
-
-// MsgUnregister
-
-// .bhome_msg.ProcInfo proc = 1;
-inline bool MsgUnregister::_internal_has_proc() const {
-  return this != internal_default_instance() && proc_ != nullptr;
-}
-inline bool MsgUnregister::has_proc() const {
-  return _internal_has_proc();
-}
-inline void MsgUnregister::clear_proc() {
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-}
-inline const ::bhome_msg::ProcInfo& MsgUnregister::_internal_proc() const {
-  const ::bhome_msg::ProcInfo* p = proc_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ProcInfo*>(
-      &::bhome_msg::_ProcInfo_default_instance_);
-}
-inline const ::bhome_msg::ProcInfo& MsgUnregister::proc() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgUnregister.proc)
-  return _internal_proc();
-}
-inline ::bhome_msg::ProcInfo* MsgUnregister::release_proc() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgUnregister.proc)
-  
-  ::bhome_msg::ProcInfo* temp = proc_;
-  proc_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ProcInfo* MsgUnregister::_internal_mutable_proc() {
-  
-  if (proc_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ProcInfo>(GetArenaNoVirtual());
-    proc_ = p;
-  }
-  return proc_;
-}
-inline ::bhome_msg::ProcInfo* MsgUnregister::mutable_proc() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgUnregister.proc)
-  return _internal_mutable_proc();
-}
-inline void MsgUnregister::set_allocated_proc(::bhome_msg::ProcInfo* proc) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete proc_;
-  }
-  if (proc) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      proc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, proc, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  proc_ = proc;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgUnregister.proc)
-}
-
-// -------------------------------------------------------------------
-
-// MsgHeartbeat
-
-// .bhome_msg.ProcInfo proc = 1;
-inline bool MsgHeartbeat::_internal_has_proc() const {
-  return this != internal_default_instance() && proc_ != nullptr;
-}
-inline bool MsgHeartbeat::has_proc() const {
-  return _internal_has_proc();
-}
-inline void MsgHeartbeat::clear_proc() {
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-}
-inline const ::bhome_msg::ProcInfo& MsgHeartbeat::_internal_proc() const {
-  const ::bhome_msg::ProcInfo* p = proc_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ProcInfo*>(
-      &::bhome_msg::_ProcInfo_default_instance_);
-}
-inline const ::bhome_msg::ProcInfo& MsgHeartbeat::proc() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgHeartbeat.proc)
-  return _internal_proc();
-}
-inline ::bhome_msg::ProcInfo* MsgHeartbeat::release_proc() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgHeartbeat.proc)
-  
-  ::bhome_msg::ProcInfo* temp = proc_;
-  proc_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ProcInfo* MsgHeartbeat::_internal_mutable_proc() {
-  
-  if (proc_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ProcInfo>(GetArenaNoVirtual());
-    proc_ = p;
-  }
-  return proc_;
-}
-inline ::bhome_msg::ProcInfo* MsgHeartbeat::mutable_proc() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgHeartbeat.proc)
-  return _internal_mutable_proc();
-}
-inline void MsgHeartbeat::set_allocated_proc(::bhome_msg::ProcInfo* proc) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete proc_;
-  }
-  if (proc) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      proc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, proc, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  proc_ = proc;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgHeartbeat.proc)
-}
-
-// -------------------------------------------------------------------
-
-// MsgQueryTopic
-
-// bytes topic = 1;
-inline void MsgQueryTopic::clear_topic() {
-  topic_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgQueryTopic::topic() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryTopic.topic)
-  return _internal_topic();
-}
-inline void MsgQueryTopic::set_topic(const std::string& value) {
-  _internal_set_topic(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgQueryTopic.topic)
-}
-inline std::string* MsgQueryTopic::mutable_topic() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryTopic.topic)
-  return _internal_mutable_topic();
-}
-inline const std::string& MsgQueryTopic::_internal_topic() const {
-  return topic_.GetNoArena();
-}
-inline void MsgQueryTopic::_internal_set_topic(const std::string& value) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgQueryTopic::set_topic(std::string&& value) {
-  
-  topic_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgQueryTopic.topic)
-}
-inline void MsgQueryTopic::set_topic(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgQueryTopic.topic)
-}
-inline void MsgQueryTopic::set_topic(const void* value, size_t size) {
-  
-  topic_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgQueryTopic.topic)
-}
-inline std::string* MsgQueryTopic::_internal_mutable_topic() {
-  
-  return topic_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgQueryTopic::release_topic() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryTopic.topic)
-  
-  return topic_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgQueryTopic::set_allocated_topic(std::string* topic) {
-  if (topic != nullptr) {
-    
-  } else {
-    
-  }
-  topic_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), topic);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryTopic.topic)
-}
-
-// -------------------------------------------------------------------
-
-// MsgQueryTopicReply_BHNodeAddress
-
-// bytes proc_id = 1;
-inline void MsgQueryTopicReply_BHNodeAddress::clear_proc_id() {
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgQueryTopicReply_BHNodeAddress::proc_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-  return _internal_proc_id();
-}
-inline void MsgQueryTopicReply_BHNodeAddress::set_proc_id(const std::string& value) {
-  _internal_set_proc_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-}
-inline std::string* MsgQueryTopicReply_BHNodeAddress::mutable_proc_id() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-  return _internal_mutable_proc_id();
-}
-inline const std::string& MsgQueryTopicReply_BHNodeAddress::_internal_proc_id() const {
-  return proc_id_.GetNoArena();
-}
-inline void MsgQueryTopicReply_BHNodeAddress::_internal_set_proc_id(const std::string& value) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgQueryTopicReply_BHNodeAddress::set_proc_id(std::string&& value) {
-  
-  proc_id_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-}
-inline void MsgQueryTopicReply_BHNodeAddress::set_proc_id(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-}
-inline void MsgQueryTopicReply_BHNodeAddress::set_proc_id(const void* value, size_t size) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-}
-inline std::string* MsgQueryTopicReply_BHNodeAddress::_internal_mutable_proc_id() {
-  
-  return proc_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgQueryTopicReply_BHNodeAddress::release_proc_id() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-  
-  return proc_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgQueryTopicReply_BHNodeAddress::set_allocated_proc_id(std::string* proc_id) {
-  if (proc_id != nullptr) {
-    
-  } else {
-    
-  }
-  proc_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), proc_id);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryTopicReply.BHNodeAddress.proc_id)
-}
-
-// .bhome_msg.BHAddress addr = 2;
-inline bool MsgQueryTopicReply_BHNodeAddress::_internal_has_addr() const {
-  return this != internal_default_instance() && addr_ != nullptr;
-}
-inline bool MsgQueryTopicReply_BHNodeAddress::has_addr() const {
-  return _internal_has_addr();
-}
-inline void MsgQueryTopicReply_BHNodeAddress::clear_addr() {
-  if (GetArenaNoVirtual() == nullptr && addr_ != nullptr) {
-    delete addr_;
-  }
-  addr_ = nullptr;
-}
-inline const ::bhome_msg::BHAddress& MsgQueryTopicReply_BHNodeAddress::_internal_addr() const {
-  const ::bhome_msg::BHAddress* p = addr_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::BHAddress*>(
-      &::bhome_msg::_BHAddress_default_instance_);
-}
-inline const ::bhome_msg::BHAddress& MsgQueryTopicReply_BHNodeAddress::addr() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryTopicReply.BHNodeAddress.addr)
-  return _internal_addr();
-}
-inline ::bhome_msg::BHAddress* MsgQueryTopicReply_BHNodeAddress::release_addr() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryTopicReply.BHNodeAddress.addr)
-  
-  ::bhome_msg::BHAddress* temp = addr_;
-  addr_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::BHAddress* MsgQueryTopicReply_BHNodeAddress::_internal_mutable_addr() {
-  
-  if (addr_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::BHAddress>(GetArenaNoVirtual());
-    addr_ = p;
-  }
-  return addr_;
-}
-inline ::bhome_msg::BHAddress* MsgQueryTopicReply_BHNodeAddress::mutable_addr() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryTopicReply.BHNodeAddress.addr)
-  return _internal_mutable_addr();
-}
-inline void MsgQueryTopicReply_BHNodeAddress::set_allocated_addr(::bhome_msg::BHAddress* addr) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete addr_;
-  }
-  if (addr) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      addr = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, addr, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  addr_ = addr;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryTopicReply.BHNodeAddress.addr)
-}
-
-// -------------------------------------------------------------------
-
-// MsgQueryTopicReply
-
-// .bhome_msg.ErrorMsg errmsg = 1;
-inline bool MsgQueryTopicReply::_internal_has_errmsg() const {
-  return this != internal_default_instance() && errmsg_ != nullptr;
-}
-inline bool MsgQueryTopicReply::has_errmsg() const {
-  return _internal_has_errmsg();
-}
-inline const ::bhome_msg::ErrorMsg& MsgQueryTopicReply::_internal_errmsg() const {
-  const ::bhome_msg::ErrorMsg* p = errmsg_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ErrorMsg*>(
-      &::bhome_msg::_ErrorMsg_default_instance_);
-}
-inline const ::bhome_msg::ErrorMsg& MsgQueryTopicReply::errmsg() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryTopicReply.errmsg)
-  return _internal_errmsg();
-}
-inline ::bhome_msg::ErrorMsg* MsgQueryTopicReply::release_errmsg() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryTopicReply.errmsg)
-  
-  ::bhome_msg::ErrorMsg* temp = errmsg_;
-  errmsg_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ErrorMsg* MsgQueryTopicReply::_internal_mutable_errmsg() {
-  
-  if (errmsg_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ErrorMsg>(GetArenaNoVirtual());
-    errmsg_ = p;
-  }
-  return errmsg_;
-}
-inline ::bhome_msg::ErrorMsg* MsgQueryTopicReply::mutable_errmsg() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryTopicReply.errmsg)
-  return _internal_mutable_errmsg();
-}
-inline void MsgQueryTopicReply::set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(errmsg_);
-  }
-  if (errmsg) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      errmsg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, errmsg, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  errmsg_ = errmsg;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryTopicReply.errmsg)
-}
-
-// repeated .bhome_msg.MsgQueryTopicReply.BHNodeAddress node_address = 2;
-inline int MsgQueryTopicReply::_internal_node_address_size() const {
-  return node_address_.size();
-}
-inline int MsgQueryTopicReply::node_address_size() const {
-  return _internal_node_address_size();
-}
-inline void MsgQueryTopicReply::clear_node_address() {
-  node_address_.Clear();
-}
-inline ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* MsgQueryTopicReply::mutable_node_address(int index) {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryTopicReply.node_address)
-  return node_address_.Mutable(index);
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress >*
-MsgQueryTopicReply::mutable_node_address() {
-  // @@protoc_insertion_point(field_mutable_list:bhome_msg.MsgQueryTopicReply.node_address)
-  return &node_address_;
-}
-inline const ::bhome_msg::MsgQueryTopicReply_BHNodeAddress& MsgQueryTopicReply::_internal_node_address(int index) const {
-  return node_address_.Get(index);
-}
-inline const ::bhome_msg::MsgQueryTopicReply_BHNodeAddress& MsgQueryTopicReply::node_address(int index) const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryTopicReply.node_address)
-  return _internal_node_address(index);
-}
-inline ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* MsgQueryTopicReply::_internal_add_node_address() {
-  return node_address_.Add();
-}
-inline ::bhome_msg::MsgQueryTopicReply_BHNodeAddress* MsgQueryTopicReply::add_node_address() {
-  // @@protoc_insertion_point(field_add:bhome_msg.MsgQueryTopicReply.node_address)
-  return _internal_add_node_address();
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryTopicReply_BHNodeAddress >&
-MsgQueryTopicReply::node_address() const {
-  // @@protoc_insertion_point(field_list:bhome_msg.MsgQueryTopicReply.node_address)
-  return node_address_;
-}
-
-// -------------------------------------------------------------------
-
-// MsgQueryProc
-
-// bytes proc_id = 1;
-inline void MsgQueryProc::clear_proc_id() {
-  proc_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& MsgQueryProc::proc_id() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProc.proc_id)
-  return _internal_proc_id();
-}
-inline void MsgQueryProc::set_proc_id(const std::string& value) {
-  _internal_set_proc_id(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgQueryProc.proc_id)
-}
-inline std::string* MsgQueryProc::mutable_proc_id() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProc.proc_id)
-  return _internal_mutable_proc_id();
-}
-inline const std::string& MsgQueryProc::_internal_proc_id() const {
-  return proc_id_.GetNoArena();
-}
-inline void MsgQueryProc::_internal_set_proc_id(const std::string& value) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MsgQueryProc::set_proc_id(std::string&& value) {
-  
-  proc_id_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.MsgQueryProc.proc_id)
-}
-inline void MsgQueryProc::set_proc_id(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.MsgQueryProc.proc_id)
-}
-inline void MsgQueryProc::set_proc_id(const void* value, size_t size) {
-  
-  proc_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.MsgQueryProc.proc_id)
-}
-inline std::string* MsgQueryProc::_internal_mutable_proc_id() {
-  
-  return proc_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* MsgQueryProc::release_proc_id() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryProc.proc_id)
-  
-  return proc_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MsgQueryProc::set_allocated_proc_id(std::string* proc_id) {
-  if (proc_id != nullptr) {
-    
-  } else {
-    
-  }
-  proc_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), proc_id);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryProc.proc_id)
-}
-
-// -------------------------------------------------------------------
-
-// MsgQueryProcReply_Info
-
-// .bhome_msg.ProcInfo proc = 1;
-inline bool MsgQueryProcReply_Info::_internal_has_proc() const {
-  return this != internal_default_instance() && proc_ != nullptr;
-}
-inline bool MsgQueryProcReply_Info::has_proc() const {
-  return _internal_has_proc();
-}
-inline void MsgQueryProcReply_Info::clear_proc() {
-  if (GetArenaNoVirtual() == nullptr && proc_ != nullptr) {
-    delete proc_;
-  }
-  proc_ = nullptr;
-}
-inline const ::bhome_msg::ProcInfo& MsgQueryProcReply_Info::_internal_proc() const {
-  const ::bhome_msg::ProcInfo* p = proc_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ProcInfo*>(
-      &::bhome_msg::_ProcInfo_default_instance_);
-}
-inline const ::bhome_msg::ProcInfo& MsgQueryProcReply_Info::proc() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.Info.proc)
-  return _internal_proc();
-}
-inline ::bhome_msg::ProcInfo* MsgQueryProcReply_Info::release_proc() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryProcReply.Info.proc)
-  
-  ::bhome_msg::ProcInfo* temp = proc_;
-  proc_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ProcInfo* MsgQueryProcReply_Info::_internal_mutable_proc() {
-  
-  if (proc_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ProcInfo>(GetArenaNoVirtual());
-    proc_ = p;
-  }
-  return proc_;
-}
-inline ::bhome_msg::ProcInfo* MsgQueryProcReply_Info::mutable_proc() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProcReply.Info.proc)
-  return _internal_mutable_proc();
-}
-inline void MsgQueryProcReply_Info::set_allocated_proc(::bhome_msg::ProcInfo* proc) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete proc_;
-  }
-  if (proc) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      proc = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, proc, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  proc_ = proc;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryProcReply.Info.proc)
-}
-
-// bool online = 2;
-inline void MsgQueryProcReply_Info::clear_online() {
-  online_ = false;
-}
-inline bool MsgQueryProcReply_Info::_internal_online() const {
-  return online_;
-}
-inline bool MsgQueryProcReply_Info::online() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.Info.online)
-  return _internal_online();
-}
-inline void MsgQueryProcReply_Info::_internal_set_online(bool value) {
-  
-  online_ = value;
-}
-inline void MsgQueryProcReply_Info::set_online(bool value) {
-  _internal_set_online(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.MsgQueryProcReply.Info.online)
-}
-
-// .bhome_msg.MsgTopicList service = 3;
-inline bool MsgQueryProcReply_Info::_internal_has_service() const {
-  return this != internal_default_instance() && service_ != nullptr;
-}
-inline bool MsgQueryProcReply_Info::has_service() const {
-  return _internal_has_service();
-}
-inline void MsgQueryProcReply_Info::clear_service() {
-  if (GetArenaNoVirtual() == nullptr && service_ != nullptr) {
-    delete service_;
-  }
-  service_ = nullptr;
-}
-inline const ::bhome_msg::MsgTopicList& MsgQueryProcReply_Info::_internal_service() const {
-  const ::bhome_msg::MsgTopicList* p = service_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::MsgTopicList*>(
-      &::bhome_msg::_MsgTopicList_default_instance_);
-}
-inline const ::bhome_msg::MsgTopicList& MsgQueryProcReply_Info::service() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.Info.service)
-  return _internal_service();
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::release_service() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryProcReply.Info.service)
-  
-  ::bhome_msg::MsgTopicList* temp = service_;
-  service_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::_internal_mutable_service() {
-  
-  if (service_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::MsgTopicList>(GetArenaNoVirtual());
-    service_ = p;
-  }
-  return service_;
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::mutable_service() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProcReply.Info.service)
-  return _internal_mutable_service();
-}
-inline void MsgQueryProcReply_Info::set_allocated_service(::bhome_msg::MsgTopicList* service) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete service_;
-  }
-  if (service) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      service = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, service, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  service_ = service;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryProcReply.Info.service)
-}
-
-// .bhome_msg.MsgTopicList local_sub = 4;
-inline bool MsgQueryProcReply_Info::_internal_has_local_sub() const {
-  return this != internal_default_instance() && local_sub_ != nullptr;
-}
-inline bool MsgQueryProcReply_Info::has_local_sub() const {
-  return _internal_has_local_sub();
-}
-inline void MsgQueryProcReply_Info::clear_local_sub() {
-  if (GetArenaNoVirtual() == nullptr && local_sub_ != nullptr) {
-    delete local_sub_;
-  }
-  local_sub_ = nullptr;
-}
-inline const ::bhome_msg::MsgTopicList& MsgQueryProcReply_Info::_internal_local_sub() const {
-  const ::bhome_msg::MsgTopicList* p = local_sub_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::MsgTopicList*>(
-      &::bhome_msg::_MsgTopicList_default_instance_);
-}
-inline const ::bhome_msg::MsgTopicList& MsgQueryProcReply_Info::local_sub() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.Info.local_sub)
-  return _internal_local_sub();
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::release_local_sub() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryProcReply.Info.local_sub)
-  
-  ::bhome_msg::MsgTopicList* temp = local_sub_;
-  local_sub_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::_internal_mutable_local_sub() {
-  
-  if (local_sub_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::MsgTopicList>(GetArenaNoVirtual());
-    local_sub_ = p;
-  }
-  return local_sub_;
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::mutable_local_sub() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProcReply.Info.local_sub)
-  return _internal_mutable_local_sub();
-}
-inline void MsgQueryProcReply_Info::set_allocated_local_sub(::bhome_msg::MsgTopicList* local_sub) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete local_sub_;
-  }
-  if (local_sub) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      local_sub = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, local_sub, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  local_sub_ = local_sub;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryProcReply.Info.local_sub)
-}
-
-// .bhome_msg.MsgTopicList net_sub = 5;
-inline bool MsgQueryProcReply_Info::_internal_has_net_sub() const {
-  return this != internal_default_instance() && net_sub_ != nullptr;
-}
-inline bool MsgQueryProcReply_Info::has_net_sub() const {
-  return _internal_has_net_sub();
-}
-inline void MsgQueryProcReply_Info::clear_net_sub() {
-  if (GetArenaNoVirtual() == nullptr && net_sub_ != nullptr) {
-    delete net_sub_;
-  }
-  net_sub_ = nullptr;
-}
-inline const ::bhome_msg::MsgTopicList& MsgQueryProcReply_Info::_internal_net_sub() const {
-  const ::bhome_msg::MsgTopicList* p = net_sub_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::MsgTopicList*>(
-      &::bhome_msg::_MsgTopicList_default_instance_);
-}
-inline const ::bhome_msg::MsgTopicList& MsgQueryProcReply_Info::net_sub() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.Info.net_sub)
-  return _internal_net_sub();
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::release_net_sub() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryProcReply.Info.net_sub)
-  
-  ::bhome_msg::MsgTopicList* temp = net_sub_;
-  net_sub_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::_internal_mutable_net_sub() {
-  
-  if (net_sub_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::MsgTopicList>(GetArenaNoVirtual());
-    net_sub_ = p;
-  }
-  return net_sub_;
-}
-inline ::bhome_msg::MsgTopicList* MsgQueryProcReply_Info::mutable_net_sub() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProcReply.Info.net_sub)
-  return _internal_mutable_net_sub();
-}
-inline void MsgQueryProcReply_Info::set_allocated_net_sub(::bhome_msg::MsgTopicList* net_sub) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete net_sub_;
-  }
-  if (net_sub) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      net_sub = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, net_sub, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  net_sub_ = net_sub;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryProcReply.Info.net_sub)
-}
-
-// -------------------------------------------------------------------
-
-// MsgQueryProcReply
-
-// .bhome_msg.ErrorMsg errmsg = 1;
-inline bool MsgQueryProcReply::_internal_has_errmsg() const {
-  return this != internal_default_instance() && errmsg_ != nullptr;
-}
-inline bool MsgQueryProcReply::has_errmsg() const {
-  return _internal_has_errmsg();
-}
-inline const ::bhome_msg::ErrorMsg& MsgQueryProcReply::_internal_errmsg() const {
-  const ::bhome_msg::ErrorMsg* p = errmsg_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::bhome_msg::ErrorMsg*>(
-      &::bhome_msg::_ErrorMsg_default_instance_);
-}
-inline const ::bhome_msg::ErrorMsg& MsgQueryProcReply::errmsg() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.errmsg)
-  return _internal_errmsg();
-}
-inline ::bhome_msg::ErrorMsg* MsgQueryProcReply::release_errmsg() {
-  // @@protoc_insertion_point(field_release:bhome_msg.MsgQueryProcReply.errmsg)
-  
-  ::bhome_msg::ErrorMsg* temp = errmsg_;
-  errmsg_ = nullptr;
-  return temp;
-}
-inline ::bhome_msg::ErrorMsg* MsgQueryProcReply::_internal_mutable_errmsg() {
-  
-  if (errmsg_ == nullptr) {
-    auto* p = CreateMaybeMessage<::bhome_msg::ErrorMsg>(GetArenaNoVirtual());
-    errmsg_ = p;
-  }
-  return errmsg_;
-}
-inline ::bhome_msg::ErrorMsg* MsgQueryProcReply::mutable_errmsg() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProcReply.errmsg)
-  return _internal_mutable_errmsg();
-}
-inline void MsgQueryProcReply::set_allocated_errmsg(::bhome_msg::ErrorMsg* errmsg) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
-  if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(errmsg_);
-  }
-  if (errmsg) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
-    if (message_arena != submessage_arena) {
-      errmsg = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, errmsg, submessage_arena);
-    }
-    
-  } else {
-    
-  }
-  errmsg_ = errmsg;
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.MsgQueryProcReply.errmsg)
-}
-
-// repeated .bhome_msg.MsgQueryProcReply.Info proc_list = 2;
-inline int MsgQueryProcReply::_internal_proc_list_size() const {
-  return proc_list_.size();
-}
-inline int MsgQueryProcReply::proc_list_size() const {
-  return _internal_proc_list_size();
-}
-inline void MsgQueryProcReply::clear_proc_list() {
-  proc_list_.Clear();
-}
-inline ::bhome_msg::MsgQueryProcReply_Info* MsgQueryProcReply::mutable_proc_list(int index) {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.MsgQueryProcReply.proc_list)
-  return proc_list_.Mutable(index);
-}
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryProcReply_Info >*
-MsgQueryProcReply::mutable_proc_list() {
-  // @@protoc_insertion_point(field_mutable_list:bhome_msg.MsgQueryProcReply.proc_list)
-  return &proc_list_;
-}
-inline const ::bhome_msg::MsgQueryProcReply_Info& MsgQueryProcReply::_internal_proc_list(int index) const {
-  return proc_list_.Get(index);
-}
-inline const ::bhome_msg::MsgQueryProcReply_Info& MsgQueryProcReply::proc_list(int index) const {
-  // @@protoc_insertion_point(field_get:bhome_msg.MsgQueryProcReply.proc_list)
-  return _internal_proc_list(index);
-}
-inline ::bhome_msg::MsgQueryProcReply_Info* MsgQueryProcReply::_internal_add_proc_list() {
-  return proc_list_.Add();
-}
-inline ::bhome_msg::MsgQueryProcReply_Info* MsgQueryProcReply::add_proc_list() {
-  // @@protoc_insertion_point(field_add:bhome_msg.MsgQueryProcReply.proc_list)
-  return _internal_add_proc_list();
-}
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::bhome_msg::MsgQueryProcReply_Info >&
-MsgQueryProcReply::proc_list() const {
-  // @@protoc_insertion_point(field_list:bhome_msg.MsgQueryProcReply.proc_list)
-  return proc_list_;
-}
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace bhome_msg
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_bhome_5fmsg_5fapi_2eproto
diff --git a/proto/bhome_msg_api.proto b/proto/bhome_msg_api.proto
deleted file mode 100644
index 0ef3451..0000000
--- a/proto/bhome_msg_api.proto
+++ /dev/null
@@ -1,92 +0,0 @@
-syntax = "proto3";
-option optimize_for = LITE_RUNTIME;
-option go_package="./bhome_msg";
-
-// public messages
-import "error_msg.proto";
-
-package bhome_msg;
-
-message BHAddress {
-	uint64 mq_id = 1;
-	int64 abs_addr = 2;
-	bytes ip = 3;   
-	int32 port = 4;
-}
-
-message ProcInfo
-{
-	bytes proc_id = 1; // serial number, maybe managed
-	bytes name = 2;
-	bytes public_info = 3; // maybe json.
-	bytes private_info = 4; 
-}
-
-message MsgTopicList {
-	repeated bytes topic_list = 1;
-}
-
-
-message MsgPublish {
-	bytes topic = 1;
-	bytes data = 2; 
-}
-
-message MsgCommonReply {
-	ErrorMsg errmsg = 1;
-}
-
-message MsgRequestTopic {
-	bytes topic = 1;
-	bytes data = 2; 
-}
-
-message MsgRequestTopicReply {
-	ErrorMsg errmsg = 1;
-	bytes data = 2; 
-}
-
-message MsgRegister
-{
-	ProcInfo proc = 1;
-}
-
-message MsgUnregister
-{
-	ProcInfo proc = 1;
-}
-
-message MsgHeartbeat
-{
-	ProcInfo proc = 1;
-}
-
-message MsgQueryTopic {
-	bytes topic = 1;
-}
-
-message MsgQueryTopicReply {
-	ErrorMsg errmsg = 1;
-
-message BHNodeAddress {
-	bytes proc_id = 1;
-	BHAddress addr = 2;
-}
-	repeated BHNodeAddress node_address = 2;
-}
-
-message MsgQueryProc {
-	bytes proc_id = 1;
-}
-
-message MsgQueryProcReply {
-	ErrorMsg errmsg = 1;
-	message Info {
-		ProcInfo proc  = 1;
-		bool online = 2;
-		MsgTopicList service = 3;
-		MsgTopicList local_sub = 4;
-		MsgTopicList net_sub = 5;
-	}
-	repeated Info proc_list = 2;
-}
diff --git a/proto/error_msg.pb.cc b/proto/error_msg.pb.cc
deleted file mode 100644
index 2ff2b91..0000000
--- a/proto/error_msg.pb.cc
+++ /dev/null
@@ -1,325 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: error_msg.proto
-
-#include "error_msg.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-namespace bhome_msg {
-class ErrorMsgDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ErrorMsg> _instance;
-} _ErrorMsg_default_instance_;
-}  // namespace bhome_msg
-static void InitDefaultsscc_info_ErrorMsg_error_5fmsg_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::bhome_msg::_ErrorMsg_default_instance_;
-    new (ptr) ::bhome_msg::ErrorMsg();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::bhome_msg::ErrorMsg::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ErrorMsg_error_5fmsg_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ErrorMsg_error_5fmsg_2eproto}, {}};
-
-namespace bhome_msg {
-bool ErrorCode_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-    case 2:
-    case 3:
-    case 4:
-    case 5:
-    case 6:
-    case 7:
-      return true;
-    default:
-      return false;
-  }
-}
-
-static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> ErrorCode_strings[8] = {};
-
-static const char ErrorCode_names[] =
-  "eAddressNotMatch"
-  "eError"
-  "eInvalidInput"
-  "eNoRespond"
-  "eNotFound"
-  "eNotRegistered"
-  "eOffline"
-  "eSuccess";
-
-static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry ErrorCode_entries[] = {
-  { {ErrorCode_names + 0, 16}, 7 },
-  { {ErrorCode_names + 16, 6}, 1 },
-  { {ErrorCode_names + 22, 13}, 2 },
-  { {ErrorCode_names + 35, 10}, 6 },
-  { {ErrorCode_names + 45, 9}, 4 },
-  { {ErrorCode_names + 54, 14}, 3 },
-  { {ErrorCode_names + 68, 8}, 5 },
-  { {ErrorCode_names + 76, 8}, 0 },
-};
-
-static const int ErrorCode_entries_by_number[] = {
-  7, // 0 -> eSuccess
-  1, // 1 -> eError
-  2, // 2 -> eInvalidInput
-  5, // 3 -> eNotRegistered
-  4, // 4 -> eNotFound
-  6, // 5 -> eOffline
-  3, // 6 -> eNoRespond
-  0, // 7 -> eAddressNotMatch
-};
-
-const std::string& ErrorCode_Name(
-    ErrorCode value) {
-  static const bool dummy =
-      ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings(
-          ErrorCode_entries,
-          ErrorCode_entries_by_number,
-          8, ErrorCode_strings);
-  (void) dummy;
-  int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName(
-      ErrorCode_entries,
-      ErrorCode_entries_by_number,
-      8, value);
-  return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString() :
-                     ErrorCode_strings[idx].get();
-}
-bool ErrorCode_Parse(
-    const std::string& name, ErrorCode* value) {
-  int int_value;
-  bool success = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumValue(
-      ErrorCode_entries, 8, name, &int_value);
-  if (success) {
-    *value = static_cast<ErrorCode>(int_value);
-  }
-  return success;
-}
-
-// ===================================================================
-
-void ErrorMsg::InitAsDefaultInstance() {
-}
-class ErrorMsg::_Internal {
- public:
-};
-
-ErrorMsg::ErrorMsg()
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:bhome_msg.ErrorMsg)
-}
-ErrorMsg::ErrorMsg(const ErrorMsg& from)
-  : ::PROTOBUF_NAMESPACE_ID::MessageLite(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  errstring_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_errstring().empty()) {
-    errstring_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.errstring_);
-  }
-  errcode_ = from.errcode_;
-  // @@protoc_insertion_point(copy_constructor:bhome_msg.ErrorMsg)
-}
-
-void ErrorMsg::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ErrorMsg_error_5fmsg_2eproto.base);
-  errstring_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  errcode_ = 0;
-}
-
-ErrorMsg::~ErrorMsg() {
-  // @@protoc_insertion_point(destructor:bhome_msg.ErrorMsg)
-  SharedDtor();
-}
-
-void ErrorMsg::SharedDtor() {
-  errstring_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void ErrorMsg::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const ErrorMsg& ErrorMsg::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ErrorMsg_error_5fmsg_2eproto.base);
-  return *internal_default_instance();
-}
-
-
-void ErrorMsg::Clear() {
-// @@protoc_insertion_point(message_clear_start:bhome_msg.ErrorMsg)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  errstring_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  errcode_ = 0;
-  _internal_metadata_.Clear();
-}
-
-const char* ErrorMsg::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .bhome_msg.ErrorCode errCode = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-          _internal_set_errcode(static_cast<::bhome_msg::ErrorCode>(val));
-        } else goto handle_unusual;
-        continue;
-      // bytes errString = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_errstring();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
-  return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
-}
-
-::PROTOBUF_NAMESPACE_ID::uint8* ErrorMsg::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
-  // @@protoc_insertion_point(serialize_to_array_start:bhome_msg.ErrorMsg)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  // .bhome_msg.ErrorCode errCode = 1;
-  if (this->errcode() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
-      1, this->_internal_errcode(), target);
-  }
-
-  // bytes errString = 2;
-  if (this->errstring().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        2, this->_internal_errstring(), target);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = stream->WriteRaw(_internal_metadata_.unknown_fields().data(),
-        static_cast<int>(_internal_metadata_.unknown_fields().size()), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:bhome_msg.ErrorMsg)
-  return target;
-}
-
-size_t ErrorMsg::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:bhome_msg.ErrorMsg)
-  size_t total_size = 0;
-
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  // Prevent compiler warnings about cached_has_bits being unused
-  (void) cached_has_bits;
-
-  // bytes errString = 2;
-  if (this->errstring().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_errstring());
-  }
-
-  // .bhome_msg.ErrorCode errCode = 1;
-  if (this->errcode() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_errcode());
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    total_size += _internal_metadata_.unknown_fields().size();
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void ErrorMsg::CheckTypeAndMergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) {
-  MergeFrom(*::PROTOBUF_NAMESPACE_ID::internal::DownCast<const ErrorMsg*>(
-      &from));
-}
-
-void ErrorMsg::MergeFrom(const ErrorMsg& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:bhome_msg.ErrorMsg)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
-
-  if (from.errstring().size() > 0) {
-
-    errstring_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.errstring_);
-  }
-  if (from.errcode() != 0) {
-    _internal_set_errcode(from._internal_errcode());
-  }
-}
-
-void ErrorMsg::CopyFrom(const ErrorMsg& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:bhome_msg.ErrorMsg)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool ErrorMsg::IsInitialized() const {
-  return true;
-}
-
-void ErrorMsg::InternalSwap(ErrorMsg* other) {
-  using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  errstring_.Swap(&other->errstring_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(errcode_, other->errcode_);
-}
-
-std::string ErrorMsg::GetTypeName() const {
-  return "bhome_msg.ErrorMsg";
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-}  // namespace bhome_msg
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::bhome_msg::ErrorMsg* Arena::CreateMaybeMessage< ::bhome_msg::ErrorMsg >(Arena* arena) {
-  return Arena::CreateInternal< ::bhome_msg::ErrorMsg >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
diff --git a/proto/error_msg.pb.go b/proto/error_msg.pb.go
deleted file mode 100644
index 6a13b8b..0000000
--- a/proto/error_msg.pb.go
+++ /dev/null
@@ -1,424 +0,0 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: error_msg.proto
-
-package bhome_msg
-
-import (
-	fmt "fmt"
-	proto "github.com/gogo/protobuf/proto"
-	io "io"
-	math "math"
-	math_bits "math/bits"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-
-type ErrorCode int32
-
-const (
-	ErrorCode_eSuccess         ErrorCode = 0
-	ErrorCode_eError           ErrorCode = 1
-	ErrorCode_eInvalidInput    ErrorCode = 2
-	ErrorCode_eNotRegistered   ErrorCode = 3
-	ErrorCode_eNotFound        ErrorCode = 4
-	ErrorCode_eOffline         ErrorCode = 5
-	ErrorCode_eNoRespond       ErrorCode = 6
-	ErrorCode_eAddressNotMatch ErrorCode = 7
-)
-
-var ErrorCode_name = map[int32]string{
-	0: "eSuccess",
-	1: "eError",
-	2: "eInvalidInput",
-	3: "eNotRegistered",
-	4: "eNotFound",
-	5: "eOffline",
-	6: "eNoRespond",
-	7: "eAddressNotMatch",
-}
-
-var ErrorCode_value = map[string]int32{
-	"eSuccess":         0,
-	"eError":           1,
-	"eInvalidInput":    2,
-	"eNotRegistered":   3,
-	"eNotFound":        4,
-	"eOffline":         5,
-	"eNoRespond":       6,
-	"eAddressNotMatch": 7,
-}
-
-func (x ErrorCode) String() string {
-	return proto.EnumName(ErrorCode_name, int32(x))
-}
-
-func (ErrorCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_da93925f7641a6e0, []int{0}
-}
-
-type ErrorMsg struct {
-	ErrCode   ErrorCode `protobuf:"varint,1,opt,name=errCode,proto3,enum=bhome_msg.ErrorCode" json:"errCode,omitempty"`
-	ErrString []byte    `protobuf:"bytes,2,opt,name=errString,proto3" json:"errString,omitempty"`
-}
-
-func (m *ErrorMsg) Reset()         { *m = ErrorMsg{} }
-func (m *ErrorMsg) String() string { return proto.CompactTextString(m) }
-func (*ErrorMsg) ProtoMessage()    {}
-func (*ErrorMsg) Descriptor() ([]byte, []int) {
-	return fileDescriptor_da93925f7641a6e0, []int{0}
-}
-func (m *ErrorMsg) XXX_Unmarshal(b []byte) error {
-	return m.Unmarshal(b)
-}
-func (m *ErrorMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	if deterministic {
-		return xxx_messageInfo_ErrorMsg.Marshal(b, m, deterministic)
-	} else {
-		b = b[:cap(b)]
-		n, err := m.MarshalTo(b)
-		if err != nil {
-			return nil, err
-		}
-		return b[:n], nil
-	}
-}
-func (m *ErrorMsg) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ErrorMsg.Merge(m, src)
-}
-func (m *ErrorMsg) XXX_Size() int {
-	return m.Size()
-}
-func (m *ErrorMsg) XXX_DiscardUnknown() {
-	xxx_messageInfo_ErrorMsg.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ErrorMsg proto.InternalMessageInfo
-
-func (m *ErrorMsg) GetErrCode() ErrorCode {
-	if m != nil {
-		return m.ErrCode
-	}
-	return ErrorCode_eSuccess
-}
-
-func (m *ErrorMsg) GetErrString() []byte {
-	if m != nil {
-		return m.ErrString
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterEnum("bhome_msg.ErrorCode", ErrorCode_name, ErrorCode_value)
-	proto.RegisterType((*ErrorMsg)(nil), "bhome_msg.ErrorMsg")
-}
-
-func init() { proto.RegisterFile("error_msg.proto", fileDescriptor_da93925f7641a6e0) }
-
-var fileDescriptor_da93925f7641a6e0 = []byte{
-	// 274 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0x90, 0xc1, 0x4a, 0xf3, 0x40,
-	0x10, 0x80, 0xb3, 0xed, 0xff, 0xb7, 0xcd, 0xd8, 0xc6, 0x75, 0xe9, 0xa1, 0x07, 0x59, 0x8a, 0x17,
-	0x8b, 0x87, 0x08, 0xfa, 0x04, 0x2a, 0x8a, 0x3d, 0x34, 0x42, 0x7a, 0x11, 0x2f, 0xd2, 0x66, 0xa7,
-	0x69, 0xa0, 0xdd, 0x0d, 0xb3, 0x1b, 0x5f, 0x43, 0x1f, 0xcb, 0x63, 0x8f, 0x1e, 0x25, 0x79, 0x11,
-	0x49, 0xc0, 0x78, 0xfd, 0xbe, 0x6f, 0x06, 0x66, 0xe0, 0x18, 0x89, 0x0c, 0xbd, 0xee, 0x6d, 0x1a,
-	0xe6, 0x64, 0x9c, 0x11, 0xfe, 0x7a, 0x6b, 0xf6, 0x58, 0x83, 0xb3, 0x67, 0x18, 0xdc, 0xd7, 0x76,
-	0x61, 0x53, 0x11, 0x42, 0x1f, 0x89, 0xee, 0x8c, 0xc2, 0x09, 0x9b, 0xb2, 0x59, 0x70, 0x35, 0x0e,
-	0xdb, 0x30, 0x6c, 0xaa, 0xda, 0xc5, 0xbf, 0x91, 0x38, 0x05, 0x1f, 0x89, 0x96, 0x8e, 0x32, 0x9d,
-	0x4e, 0x3a, 0x53, 0x36, 0x1b, 0xc6, 0x7f, 0xe0, 0xe2, 0x9d, 0x81, 0xdf, 0x0e, 0x89, 0x21, 0x0c,
-	0x70, 0x59, 0x24, 0x09, 0x5a, 0xcb, 0x3d, 0x01, 0xd0, 0xc3, 0xc6, 0x71, 0x26, 0x4e, 0x60, 0x84,
-	0x73, 0xfd, 0xb6, 0xda, 0x65, 0x6a, 0xae, 0xf3, 0xc2, 0xf1, 0x8e, 0x10, 0x10, 0x60, 0x64, 0x5c,
-	0x8c, 0x69, 0x66, 0x1d, 0x12, 0x2a, 0xde, 0x15, 0x23, 0xf0, 0x6b, 0xf6, 0x60, 0x0a, 0xad, 0xf8,
-	0xbf, 0x66, 0xdf, 0xd3, 0x66, 0xb3, 0xcb, 0x34, 0xf2, 0xff, 0x22, 0x00, 0xc0, 0xc8, 0xc4, 0x68,
-	0x73, 0xa3, 0x15, 0xef, 0x89, 0x31, 0x70, 0xbc, 0x51, 0x8a, 0xd0, 0xda, 0xc8, 0xb8, 0xc5, 0xca,
-	0x25, 0x5b, 0xde, 0xbf, 0x3d, 0xff, 0x2c, 0x25, 0x3b, 0x94, 0x92, 0x7d, 0x97, 0x92, 0x7d, 0x54,
-	0xd2, 0x3b, 0x54, 0xd2, 0xfb, 0xaa, 0xa4, 0xf7, 0xd8, 0x7d, 0x39, 0x0a, 0x2f, 0xdb, 0x5b, 0xd7,
-	0xbd, 0xe6, 0x4d, 0xd7, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x33, 0xa4, 0xff, 0xc0, 0x39, 0x01,
-	0x00, 0x00,
-}
-
-func (m *ErrorMsg) Marshal() (dAtA []byte, err error) {
-	size := m.Size()
-	dAtA = make([]byte, size)
-	n, err := m.MarshalTo(dAtA)
-	if err != nil {
-		return nil, err
-	}
-	return dAtA[:n], nil
-}
-
-func (m *ErrorMsg) MarshalTo(dAtA []byte) (int, error) {
-	var i int
-	_ = i
-	var l int
-	_ = l
-	if m.ErrCode != 0 {
-		dAtA[i] = 0x8
-		i++
-		i = encodeVarintErrorMsg(dAtA, i, uint64(m.ErrCode))
-	}
-	if len(m.ErrString) > 0 {
-		dAtA[i] = 0x12
-		i++
-		i = encodeVarintErrorMsg(dAtA, i, uint64(len(m.ErrString)))
-		i += copy(dAtA[i:], m.ErrString)
-	}
-	return i, nil
-}
-
-func encodeVarintErrorMsg(dAtA []byte, offset int, v uint64) int {
-	for v >= 1<<7 {
-		dAtA[offset] = uint8(v&0x7f | 0x80)
-		v >>= 7
-		offset++
-	}
-	dAtA[offset] = uint8(v)
-	return offset + 1
-}
-func (m *ErrorMsg) Size() (n int) {
-	if m == nil {
-		return 0
-	}
-	var l int
-	_ = l
-	if m.ErrCode != 0 {
-		n += 1 + sovErrorMsg(uint64(m.ErrCode))
-	}
-	l = len(m.ErrString)
-	if l > 0 {
-		n += 1 + l + sovErrorMsg(uint64(l))
-	}
-	return n
-}
-
-func sovErrorMsg(x uint64) (n int) {
-	return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozErrorMsg(x uint64) (n int) {
-	return sovErrorMsg(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
-func (m *ErrorMsg) Unmarshal(dAtA []byte) error {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		preIndex := iNdEx
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return ErrIntOverflowErrorMsg
-			}
-			if iNdEx >= l {
-				return io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= uint64(b&0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		fieldNum := int32(wire >> 3)
-		wireType := int(wire & 0x7)
-		if wireType == 4 {
-			return fmt.Errorf("proto: ErrorMsg: wiretype end group for non-group")
-		}
-		if fieldNum <= 0 {
-			return fmt.Errorf("proto: ErrorMsg: illegal tag %d (wire type %d)", fieldNum, wire)
-		}
-		switch fieldNum {
-		case 1:
-			if wireType != 0 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ErrCode", wireType)
-			}
-			m.ErrCode = 0
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowErrorMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				m.ErrCode |= ErrorCode(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-		case 2:
-			if wireType != 2 {
-				return fmt.Errorf("proto: wrong wireType = %d for field ErrString", wireType)
-			}
-			var byteLen int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return ErrIntOverflowErrorMsg
-				}
-				if iNdEx >= l {
-					return io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				byteLen |= int(b&0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if byteLen < 0 {
-				return ErrInvalidLengthErrorMsg
-			}
-			postIndex := iNdEx + byteLen
-			if postIndex < 0 {
-				return ErrInvalidLengthErrorMsg
-			}
-			if postIndex > l {
-				return io.ErrUnexpectedEOF
-			}
-			m.ErrString = append(m.ErrString[:0], dAtA[iNdEx:postIndex]...)
-			if m.ErrString == nil {
-				m.ErrString = []byte{}
-			}
-			iNdEx = postIndex
-		default:
-			iNdEx = preIndex
-			skippy, err := skipErrorMsg(dAtA[iNdEx:])
-			if err != nil {
-				return err
-			}
-			if skippy < 0 {
-				return ErrInvalidLengthErrorMsg
-			}
-			if (iNdEx + skippy) < 0 {
-				return ErrInvalidLengthErrorMsg
-			}
-			if (iNdEx + skippy) > l {
-				return io.ErrUnexpectedEOF
-			}
-			iNdEx += skippy
-		}
-	}
-
-	if iNdEx > l {
-		return io.ErrUnexpectedEOF
-	}
-	return nil
-}
-func skipErrorMsg(dAtA []byte) (n int, err error) {
-	l := len(dAtA)
-	iNdEx := 0
-	for iNdEx < l {
-		var wire uint64
-		for shift := uint(0); ; shift += 7 {
-			if shift >= 64 {
-				return 0, ErrIntOverflowErrorMsg
-			}
-			if iNdEx >= l {
-				return 0, io.ErrUnexpectedEOF
-			}
-			b := dAtA[iNdEx]
-			iNdEx++
-			wire |= (uint64(b) & 0x7F) << shift
-			if b < 0x80 {
-				break
-			}
-		}
-		wireType := int(wire & 0x7)
-		switch wireType {
-		case 0:
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowErrorMsg
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				iNdEx++
-				if dAtA[iNdEx-1] < 0x80 {
-					break
-				}
-			}
-			return iNdEx, nil
-		case 1:
-			iNdEx += 8
-			return iNdEx, nil
-		case 2:
-			var length int
-			for shift := uint(0); ; shift += 7 {
-				if shift >= 64 {
-					return 0, ErrIntOverflowErrorMsg
-				}
-				if iNdEx >= l {
-					return 0, io.ErrUnexpectedEOF
-				}
-				b := dAtA[iNdEx]
-				iNdEx++
-				length |= (int(b) & 0x7F) << shift
-				if b < 0x80 {
-					break
-				}
-			}
-			if length < 0 {
-				return 0, ErrInvalidLengthErrorMsg
-			}
-			iNdEx += length
-			if iNdEx < 0 {
-				return 0, ErrInvalidLengthErrorMsg
-			}
-			return iNdEx, nil
-		case 3:
-			for {
-				var innerWire uint64
-				var start int = iNdEx
-				for shift := uint(0); ; shift += 7 {
-					if shift >= 64 {
-						return 0, ErrIntOverflowErrorMsg
-					}
-					if iNdEx >= l {
-						return 0, io.ErrUnexpectedEOF
-					}
-					b := dAtA[iNdEx]
-					iNdEx++
-					innerWire |= (uint64(b) & 0x7F) << shift
-					if b < 0x80 {
-						break
-					}
-				}
-				innerWireType := int(innerWire & 0x7)
-				if innerWireType == 4 {
-					break
-				}
-				next, err := skipErrorMsg(dAtA[start:])
-				if err != nil {
-					return 0, err
-				}
-				iNdEx = start + next
-				if iNdEx < 0 {
-					return 0, ErrInvalidLengthErrorMsg
-				}
-			}
-			return iNdEx, nil
-		case 4:
-			return iNdEx, nil
-		case 5:
-			iNdEx += 4
-			return iNdEx, nil
-		default:
-			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
-		}
-	}
-	panic("unreachable")
-}
-
-var (
-	ErrInvalidLengthErrorMsg = fmt.Errorf("proto: negative length found during unmarshaling")
-	ErrIntOverflowErrorMsg   = fmt.Errorf("proto: integer overflow")
-)
diff --git a/proto/error_msg.pb.h b/proto/error_msg.pb.h
deleted file mode 100644
index b63fc85..0000000
--- a/proto/error_msg.pb.h
+++ /dev/null
@@ -1,331 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: error_msg.proto
-
-#ifndef GOOGLE_PROTOBUF_INCLUDED_error_5fmsg_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_error_5fmsg_2eproto
-
-#include <limits>
-#include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata_lite.h>
-#include <google/protobuf/message_lite.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/generated_enum_util.h>
-// @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-#define PROTOBUF_INTERNAL_EXPORT_error_5fmsg_2eproto
-PROTOBUF_NAMESPACE_OPEN
-namespace internal {
-class AnyMetadata;
-}  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
-
-// Internal implementation detail -- do not use these members.
-struct TableStruct_error_5fmsg_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
-};
-namespace bhome_msg {
-class ErrorMsg;
-class ErrorMsgDefaultTypeInternal;
-extern ErrorMsgDefaultTypeInternal _ErrorMsg_default_instance_;
-}  // namespace bhome_msg
-PROTOBUF_NAMESPACE_OPEN
-template<> ::bhome_msg::ErrorMsg* Arena::CreateMaybeMessage<::bhome_msg::ErrorMsg>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
-namespace bhome_msg {
-
-enum ErrorCode : int {
-  eSuccess = 0,
-  eError = 1,
-  eInvalidInput = 2,
-  eNotRegistered = 3,
-  eNotFound = 4,
-  eOffline = 5,
-  eNoRespond = 6,
-  eAddressNotMatch = 7,
-  ErrorCode_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
-  ErrorCode_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
-};
-bool ErrorCode_IsValid(int value);
-constexpr ErrorCode ErrorCode_MIN = eSuccess;
-constexpr ErrorCode ErrorCode_MAX = eAddressNotMatch;
-constexpr int ErrorCode_ARRAYSIZE = ErrorCode_MAX + 1;
-
-const std::string& ErrorCode_Name(ErrorCode value);
-template<typename T>
-inline const std::string& ErrorCode_Name(T enum_t_value) {
-  static_assert(::std::is_same<T, ErrorCode>::value ||
-    ::std::is_integral<T>::value,
-    "Incorrect type passed to function ErrorCode_Name.");
-  return ErrorCode_Name(static_cast<ErrorCode>(enum_t_value));
-}
-bool ErrorCode_Parse(
-    const std::string& name, ErrorCode* value);
-// ===================================================================
-
-class ErrorMsg :
-    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:bhome_msg.ErrorMsg) */ {
- public:
-  ErrorMsg();
-  virtual ~ErrorMsg();
-
-  ErrorMsg(const ErrorMsg& from);
-  ErrorMsg(ErrorMsg&& from) noexcept
-    : ErrorMsg() {
-    *this = ::std::move(from);
-  }
-
-  inline ErrorMsg& operator=(const ErrorMsg& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  inline ErrorMsg& operator=(ErrorMsg&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
-    } else {
-      CopyFrom(from);
-    }
-    return *this;
-  }
-
-  static const ErrorMsg& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
-  static inline const ErrorMsg* internal_default_instance() {
-    return reinterpret_cast<const ErrorMsg*>(
-               &_ErrorMsg_default_instance_);
-  }
-  static constexpr int kIndexInFileMessages =
-    0;
-
-  friend void swap(ErrorMsg& a, ErrorMsg& b) {
-    a.Swap(&b);
-  }
-  inline void Swap(ErrorMsg* other) {
-    if (other == this) return;
-    InternalSwap(other);
-  }
-
-  // implements Message ----------------------------------------------
-
-  inline ErrorMsg* New() const final {
-    return CreateMaybeMessage<ErrorMsg>(nullptr);
-  }
-
-  ErrorMsg* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
-    return CreateMaybeMessage<ErrorMsg>(arena);
-  }
-  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)
-    final;
-  void CopyFrom(const ErrorMsg& from);
-  void MergeFrom(const ErrorMsg& from);
-  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
-  bool IsInitialized() const final;
-
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  void DiscardUnknownFields();
-  int GetCachedSize() const final { return _cached_size_.Get(); }
-
-  private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ErrorMsg* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "bhome_msg.ErrorMsg";
-  }
-  private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
-  }
-  public:
-
-  std::string GetTypeName() const final;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  enum : int {
-    kErrStringFieldNumber = 2,
-    kErrCodeFieldNumber = 1,
-  };
-  // bytes errString = 2;
-  void clear_errstring();
-  const std::string& errstring() const;
-  void set_errstring(const std::string& value);
-  void set_errstring(std::string&& value);
-  void set_errstring(const char* value);
-  void set_errstring(const void* value, size_t size);
-  std::string* mutable_errstring();
-  std::string* release_errstring();
-  void set_allocated_errstring(std::string* errstring);
-  private:
-  const std::string& _internal_errstring() const;
-  void _internal_set_errstring(const std::string& value);
-  std::string* _internal_mutable_errstring();
-  public:
-
-  // .bhome_msg.ErrorCode errCode = 1;
-  void clear_errcode();
-  ::bhome_msg::ErrorCode errcode() const;
-  void set_errcode(::bhome_msg::ErrorCode value);
-  private:
-  ::bhome_msg::ErrorCode _internal_errcode() const;
-  void _internal_set_errcode(::bhome_msg::ErrorCode value);
-  public:
-
-  // @@protoc_insertion_point(class_scope:bhome_msg.ErrorMsg)
- private:
-  class _Internal;
-
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArenaLite _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr errstring_;
-  int errcode_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
-  friend struct ::TableStruct_error_5fmsg_2eproto;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif  // __GNUC__
-// ErrorMsg
-
-// .bhome_msg.ErrorCode errCode = 1;
-inline void ErrorMsg::clear_errcode() {
-  errcode_ = 0;
-}
-inline ::bhome_msg::ErrorCode ErrorMsg::_internal_errcode() const {
-  return static_cast< ::bhome_msg::ErrorCode >(errcode_);
-}
-inline ::bhome_msg::ErrorCode ErrorMsg::errcode() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.ErrorMsg.errCode)
-  return _internal_errcode();
-}
-inline void ErrorMsg::_internal_set_errcode(::bhome_msg::ErrorCode value) {
-  
-  errcode_ = value;
-}
-inline void ErrorMsg::set_errcode(::bhome_msg::ErrorCode value) {
-  _internal_set_errcode(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.ErrorMsg.errCode)
-}
-
-// bytes errString = 2;
-inline void ErrorMsg::clear_errstring() {
-  errstring_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline const std::string& ErrorMsg::errstring() const {
-  // @@protoc_insertion_point(field_get:bhome_msg.ErrorMsg.errString)
-  return _internal_errstring();
-}
-inline void ErrorMsg::set_errstring(const std::string& value) {
-  _internal_set_errstring(value);
-  // @@protoc_insertion_point(field_set:bhome_msg.ErrorMsg.errString)
-}
-inline std::string* ErrorMsg::mutable_errstring() {
-  // @@protoc_insertion_point(field_mutable:bhome_msg.ErrorMsg.errString)
-  return _internal_mutable_errstring();
-}
-inline const std::string& ErrorMsg::_internal_errstring() const {
-  return errstring_.GetNoArena();
-}
-inline void ErrorMsg::_internal_set_errstring(const std::string& value) {
-  
-  errstring_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void ErrorMsg::set_errstring(std::string&& value) {
-  
-  errstring_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:bhome_msg.ErrorMsg.errString)
-}
-inline void ErrorMsg::set_errstring(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  errstring_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:bhome_msg.ErrorMsg.errString)
-}
-inline void ErrorMsg::set_errstring(const void* value, size_t size) {
-  
-  errstring_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:bhome_msg.ErrorMsg.errString)
-}
-inline std::string* ErrorMsg::_internal_mutable_errstring() {
-  
-  return errstring_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline std::string* ErrorMsg::release_errstring() {
-  // @@protoc_insertion_point(field_release:bhome_msg.ErrorMsg.errString)
-  
-  return errstring_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void ErrorMsg::set_allocated_errstring(std::string* errstring) {
-  if (errstring != nullptr) {
-    
-  } else {
-    
-  }
-  errstring_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), errstring);
-  // @@protoc_insertion_point(field_set_allocated:bhome_msg.ErrorMsg.errString)
-}
-
-#ifdef __GNUC__
-  #pragma GCC diagnostic pop
-#endif  // __GNUC__
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace bhome_msg
-
-PROTOBUF_NAMESPACE_OPEN
-
-template <> struct is_proto_enum< ::bhome_msg::ErrorCode> : ::std::true_type {};
-
-PROTOBUF_NAMESPACE_CLOSE
-
-// @@protoc_insertion_point(global_scope)
-
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_error_5fmsg_2eproto
diff --git a/proto/error_msg.proto b/proto/error_msg.proto
deleted file mode 100644
index 6496c67..0000000
--- a/proto/error_msg.proto
+++ /dev/null
@@ -1,22 +0,0 @@
-syntax = "proto3";
-
-option optimize_for = LITE_RUNTIME;
-option go_package="./bhome_msg";
-
-package bhome_msg;
-
-enum ErrorCode {
-    eSuccess = 0;
-    eError = 1;
-    eInvalidInput = 2;
-    eNotRegistered = 3;
-    eNotFound = 4;
-    eOffline = 5;
-    eNoRespond = 6;
-    eAddressNotMatch = 7;
-}
-
-message ErrorMsg {
-    ErrorCode errCode = 1;
-    bytes errString = 2;
-}
diff --git a/proto/source/bhome_msg.proto b/proto/source/bhome_msg.proto
index b1f9772..f34aebb 100644
--- a/proto/source/bhome_msg.proto
+++ b/proto/source/bhome_msg.proto
@@ -57,11 +57,9 @@
 
 message MsgSubscribe {
 	MsgTopicList topics = 1;
-	bool network = 2;
 }
 message MsgUnsubscribe {
 	MsgTopicList topics = 1;
-	bool network = 2;
 }
 message MsgRegisterRPC {
 	MsgTopicList topics = 1;
diff --git a/proto/source/bhome_msg_api.proto b/proto/source/bhome_msg_api.proto
index 0ef3451..6a20aa7 100644
--- a/proto/source/bhome_msg_api.proto
+++ b/proto/source/bhome_msg_api.proto
@@ -84,9 +84,7 @@
 	message Info {
 		ProcInfo proc  = 1;
 		bool online = 2;
-		MsgTopicList service = 3;
-		MsgTopicList local_sub = 4;
-		MsgTopicList net_sub = 5;
+		MsgTopicList topics = 3;
 	}
 	repeated Info proc_list = 2;
 }
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index eb3f4c9..276c547 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -26,9 +26,9 @@
 ./net/net_mod_socket.cpp
 ./net/net_mod_socket_io.cpp
 ./net/net_mod_server_socket.cpp
-./proto/bhome_msg_api.pb.cc
-./proto/bhome_msg.pb.cc
-./proto/error_msg.pb.cc
+../proto/source/bhome_msg_api.pb.cc
+../proto/source/bhome_msg.pb.cc
+../proto/source/error_msg.pb.cc
 ./shm/shm_mm_wrapper.cpp
 ./shm/mm.cpp
 ./shm/hashtable.cpp
diff --git a/src/bh_api.cpp b/src/bh_api.cpp
index a5c1985..8770bdf 100644
--- a/src/bh_api.cpp
+++ b/src/bh_api.cpp
@@ -7,11 +7,8 @@
 #include "bh_api.h"
 #include <pthread.h>
 #include <getopt.h>
-#include "bhome_msg_api.pb.h"
-#include "bhome_msg.pb.h"
-#include "error_msg.pb.h"
-#include "../proto/bhome_msg.pb.h"
-#include "../proto/bhome_msg_api.pb.h"
+#include "../proto/source/bhome_msg.pb.h"
+#include "../proto/source/bhome_msg_api.pb.h"
 
 static Logger *logger = LoggerFactory::getLogger();
 

--
Gitblit v1.8.0