#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "base_protocol.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>

namespace protocol {

namespace {

const ::google::protobuf::Descriptor* KeepUsingReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  KeepUsingReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* SubscribeReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  SubscribeReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* SubscribeBrokerRsp_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  SubscribeBrokerRsp_reflection_ = NULL;
const ::google::protobuf::Descriptor* SubscribeAgentRsp_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  SubscribeAgentRsp_reflection_ = NULL;
const ::google::protobuf::Descriptor* PushServiceConfigReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  PushServiceConfigReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* PullServiceConfigReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  PullServiceConfigReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* PullServiceConfigRsp_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  PullServiceConfigRsp_reflection_ = NULL;

}  

void protobuf_AssignDesc_base_5fprotocol_2eproto() {
  protobuf_AddDesc_base_5fprotocol_2eproto();
  const ::google::protobuf::FileDescriptor* file =
    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
      "base_protocol.proto");
  GOOGLE_CHECK(file != NULL);
  KeepUsingReq_descriptor_ = file->message_type(0);
  static const int KeepUsingReq_offsets_[1] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(KeepUsingReq, servicekey_),
  };
  KeepUsingReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      KeepUsingReq_descriptor_,
      KeepUsingReq::default_instance_,
      KeepUsingReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(KeepUsingReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(KeepUsingReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(KeepUsingReq));
  SubscribeReq_descriptor_ = file->message_type(1);
  static const int SubscribeReq_offsets_[1] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeReq, servicekey_),
  };
  SubscribeReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      SubscribeReq_descriptor_,
      SubscribeReq::default_instance_,
      SubscribeReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(SubscribeReq));
  SubscribeBrokerRsp_descriptor_ = file->message_type(2);
  static const int SubscribeBrokerRsp_offsets_[6] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, code_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, version_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, confkeys_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, values_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, error_),
  };
  SubscribeBrokerRsp_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      SubscribeBrokerRsp_descriptor_,
      SubscribeBrokerRsp::default_instance_,
      SubscribeBrokerRsp_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(SubscribeBrokerRsp));
  SubscribeAgentRsp_descriptor_ = file->message_type(3);
  static const int SubscribeAgentRsp_offsets_[3] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, code_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, index_),
  };
  SubscribeAgentRsp_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      SubscribeAgentRsp_descriptor_,
      SubscribeAgentRsp::default_instance_,
      SubscribeAgentRsp_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(SubscribeAgentRsp));
  PushServiceConfigReq_descriptor_ = file->message_type(4);
  static const int PushServiceConfigReq_offsets_[4] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, version_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, confkeys_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, values_),
  };
  PushServiceConfigReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      PushServiceConfigReq_descriptor_,
      PushServiceConfigReq::default_instance_,
      PushServiceConfigReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(PushServiceConfigReq));
  PullServiceConfigReq_descriptor_ = file->message_type(5);
  static const int PullServiceConfigReq_offsets_[2] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, version_),
  };
  PullServiceConfigReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      PullServiceConfigReq_descriptor_,
      PullServiceConfigReq::default_instance_,
      PullServiceConfigReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(PullServiceConfigReq));
  PullServiceConfigRsp_descriptor_ = file->message_type(6);
  static const int PullServiceConfigRsp_offsets_[4] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, version_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, confkeys_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, values_),
  };
  PullServiceConfigRsp_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      PullServiceConfigRsp_descriptor_,
      PullServiceConfigRsp::default_instance_,
      PullServiceConfigRsp_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(PullServiceConfigRsp));
}

namespace {

GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
inline void protobuf_AssignDescriptorsOnce() {
  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
                 &protobuf_AssignDesc_base_5fprotocol_2eproto);
}

void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    KeepUsingReq_descriptor_, &KeepUsingReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    SubscribeReq_descriptor_, &SubscribeReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    SubscribeBrokerRsp_descriptor_, &SubscribeBrokerRsp::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    SubscribeAgentRsp_descriptor_, &SubscribeAgentRsp::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    PushServiceConfigReq_descriptor_, &PushServiceConfigReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    PullServiceConfigReq_descriptor_, &PullServiceConfigReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    PullServiceConfigRsp_descriptor_, &PullServiceConfigRsp::default_instance());
}

}  

void protobuf_ShutdownFile_base_5fprotocol_2eproto() {
  delete KeepUsingReq::default_instance_;
  delete KeepUsingReq_reflection_;
  delete SubscribeReq::default_instance_;
  delete SubscribeReq_reflection_;
  delete SubscribeBrokerRsp::default_instance_;
  delete SubscribeBrokerRsp_reflection_;
  delete SubscribeAgentRsp::default_instance_;
  delete SubscribeAgentRsp_reflection_;
  delete PushServiceConfigReq::default_instance_;
  delete PushServiceConfigReq_reflection_;
  delete PullServiceConfigReq::default_instance_;
  delete PullServiceConfigReq_reflection_;
  delete PullServiceConfigRsp::default_instance_;
  delete PullServiceConfigRsp_reflection_;
}

void protobuf_AddDesc_base_5fprotocol_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
    "\n\023base_protocol.proto\022\010protocol\"\"\n\014KeepU"
    "singReq\022\022\n\nserviceKey\030\001 \002(\t\"\"\n\014Subscribe"
    "Req\022\022\n\nserviceKey\030\001 \002(\t\"x\n\022SubscribeBrok"
    "erRsp\022\022\n\nserviceKey\030\001 \002(\t\022\014\n\004code\030\002 \002(\005\022"
    "\017\n\007version\030\003 \002(\r\022\020\n\010confKeys\030\004 \003(\t\022\016\n\006va"
    "lues\030\005 \003(\t\022\r\n\005error\030\006 \001(\t\"D\n\021SubscribeAg"
    "entRsp\022\022\n\nserviceKey\030\001 \002(\t\022\014\n\004code\030\002 \002(\005"
    "\022\r\n\005index\030\003 \001(\r\"]\n\024PushServiceConfigReq\022"
    "\022\n\nserviceKey\030\001 \002(\t\022\017\n\007version\030\002 \002(\r\022\020\n\010"
    "confKeys\030\003 \003(\t\022\016\n\006values\030\004 \003(\t\";\n\024PullSe"
    "rviceConfigReq\022\022\n\nserviceKey\030\001 \002(\t\022\017\n\007ve"
    "rsion\030\002 \002(\r\"]\n\024PullServiceConfigRsp\022\022\n\ns"
    "erviceKey\030\001 \002(\t\022\017\n\007version\030\002 \002(\r\022\020\n\010conf"
    "Keys\030\003 \003(\t\022\016\n\006values\030\004 \003(\t", 546);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "base_protocol.proto", &protobuf_RegisterTypes);
  KeepUsingReq::default_instance_ = new KeepUsingReq();
  SubscribeReq::default_instance_ = new SubscribeReq();
  SubscribeBrokerRsp::default_instance_ = new SubscribeBrokerRsp();
  SubscribeAgentRsp::default_instance_ = new SubscribeAgentRsp();
  PushServiceConfigReq::default_instance_ = new PushServiceConfigReq();
  PullServiceConfigReq::default_instance_ = new PullServiceConfigReq();
  PullServiceConfigRsp::default_instance_ = new PullServiceConfigRsp();
  KeepUsingReq::default_instance_->InitAsDefaultInstance();
  SubscribeReq::default_instance_->InitAsDefaultInstance();
  SubscribeBrokerRsp::default_instance_->InitAsDefaultInstance();
  SubscribeAgentRsp::default_instance_->InitAsDefaultInstance();
  PushServiceConfigReq::default_instance_->InitAsDefaultInstance();
  PullServiceConfigReq::default_instance_->InitAsDefaultInstance();
  PullServiceConfigRsp::default_instance_->InitAsDefaultInstance();
  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_base_5fprotocol_2eproto);
}

struct StaticDescriptorInitializer_base_5fprotocol_2eproto {
  StaticDescriptorInitializer_base_5fprotocol_2eproto() {
    protobuf_AddDesc_base_5fprotocol_2eproto();
  }
} static_descriptor_initializer_base_5fprotocol_2eproto_;

#ifndef _MSC_VER
const int KeepUsingReq::kServiceKeyFieldNumber;
#endif  

KeepUsingReq::KeepUsingReq()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void KeepUsingReq::InitAsDefaultInstance() {
}

KeepUsingReq::KeepUsingReq(const KeepUsingReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void KeepUsingReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

KeepUsingReq::~KeepUsingReq() {

  SharedDtor();
}

void KeepUsingReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void KeepUsingReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* KeepUsingReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return KeepUsingReq_descriptor_;
}

const KeepUsingReq& KeepUsingReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

KeepUsingReq* KeepUsingReq::default_instance_ = NULL;

KeepUsingReq* KeepUsingReq::New() const {
  return new KeepUsingReq;
}

void KeepUsingReq::Clear() {
  if (has_servicekey()) {
    if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      servicekey_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool KeepUsingReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void KeepUsingReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* KeepUsingReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int KeepUsingReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void KeepUsingReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const KeepUsingReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const KeepUsingReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void KeepUsingReq::MergeFrom(const KeepUsingReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void KeepUsingReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void KeepUsingReq::CopyFrom(const KeepUsingReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool KeepUsingReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  return true;
}

void KeepUsingReq::Swap(KeepUsingReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata KeepUsingReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = KeepUsingReq_descriptor_;
  metadata.reflection = KeepUsingReq_reflection_;
  return metadata;
}

#ifndef _MSC_VER
const int SubscribeReq::kServiceKeyFieldNumber;
#endif  

SubscribeReq::SubscribeReq()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void SubscribeReq::InitAsDefaultInstance() {
}

SubscribeReq::SubscribeReq(const SubscribeReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void SubscribeReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

SubscribeReq::~SubscribeReq() {

  SharedDtor();
}

void SubscribeReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void SubscribeReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SubscribeReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return SubscribeReq_descriptor_;
}

const SubscribeReq& SubscribeReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

SubscribeReq* SubscribeReq::default_instance_ = NULL;

SubscribeReq* SubscribeReq::New() const {
  return new SubscribeReq;
}

void SubscribeReq::Clear() {
  if (has_servicekey()) {
    if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      servicekey_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool SubscribeReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void SubscribeReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* SubscribeReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int SubscribeReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SubscribeReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const SubscribeReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const SubscribeReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void SubscribeReq::MergeFrom(const SubscribeReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void SubscribeReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SubscribeReq::CopyFrom(const SubscribeReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  return true;
}

void SubscribeReq::Swap(SubscribeReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata SubscribeReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = SubscribeReq_descriptor_;
  metadata.reflection = SubscribeReq_reflection_;
  return metadata;
}

#ifndef _MSC_VER
const int SubscribeBrokerRsp::kServiceKeyFieldNumber;
const int SubscribeBrokerRsp::kCodeFieldNumber;
const int SubscribeBrokerRsp::kVersionFieldNumber;
const int SubscribeBrokerRsp::kConfKeysFieldNumber;
const int SubscribeBrokerRsp::kValuesFieldNumber;
const int SubscribeBrokerRsp::kErrorFieldNumber;
#endif  

SubscribeBrokerRsp::SubscribeBrokerRsp()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void SubscribeBrokerRsp::InitAsDefaultInstance() {
}

SubscribeBrokerRsp::SubscribeBrokerRsp(const SubscribeBrokerRsp& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void SubscribeBrokerRsp::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  code_ = 0;
  version_ = 0u;
  error_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

SubscribeBrokerRsp::~SubscribeBrokerRsp() {

  SharedDtor();
}

void SubscribeBrokerRsp::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (error_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete error_;
  }
  if (this != default_instance_) {
  }
}

void SubscribeBrokerRsp::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SubscribeBrokerRsp::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return SubscribeBrokerRsp_descriptor_;
}

const SubscribeBrokerRsp& SubscribeBrokerRsp::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

SubscribeBrokerRsp* SubscribeBrokerRsp::default_instance_ = NULL;

SubscribeBrokerRsp* SubscribeBrokerRsp::New() const {
  return new SubscribeBrokerRsp;
}

void SubscribeBrokerRsp::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<SubscribeBrokerRsp*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 39) {
    ZR_(code_, version_);
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    if (has_error()) {
      if (error_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        error_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  confkeys_.Clear();
  values_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool SubscribeBrokerRsp::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_code;
        break;
      }

      case 2: {
        if (tag == 16) {
         parse_code:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
          set_has_code();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_version;
        break;
      }

      case 3: {
        if (tag == 24) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_confKeys;
        break;
      }

      case 4: {
        if (tag == 34) {
         parse_confKeys:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_confkeys()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->confkeys(this->confkeys_size() - 1).data(),
            this->confkeys(this->confkeys_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "confkeys");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_confKeys;
        if (input->ExpectTag(42)) goto parse_values;
        break;
      }

      case 5: {
        if (tag == 42) {
         parse_values:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_values()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->values(this->values_size() - 1).data(),
            this->values(this->values_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "values");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_values;
        if (input->ExpectTag(50)) goto parse_error;
        break;
      }

      case 6: {
        if (tag == 50) {
         parse_error:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_error()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->error().data(), this->error().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "error");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void SubscribeBrokerRsp::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (has_code()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->code(), output);
  }

  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->version(), output);
  }

  for (int i = 0; i < this->confkeys_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->confkeys(i).data(), this->confkeys(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "confkeys");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->confkeys(i), output);
  }

  for (int i = 0; i < this->values_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->values(i).data(), this->values(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "values");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      5, this->values(i), output);
  }

  if (has_error()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error().data(), this->error().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "error");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->error(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* SubscribeBrokerRsp::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (has_code()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->code(), target);
  }

  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->version(), target);
  }

  for (int i = 0; i < this->confkeys_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->confkeys(i).data(), this->confkeys(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "confkeys");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->confkeys(i), target);
  }

  for (int i = 0; i < this->values_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->values(i).data(), this->values(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "values");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(5, this->values(i), target);
  }

  if (has_error()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error().data(), this->error().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "error");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->error(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int SubscribeBrokerRsp::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

    if (has_error()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->error());
    }

  }

  total_size += 1 * this->confkeys_size();
  for (int i = 0; i < this->confkeys_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->confkeys(i));
  }

  total_size += 1 * this->values_size();
  for (int i = 0; i < this->values_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->values(i));
  }

  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SubscribeBrokerRsp::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const SubscribeBrokerRsp* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const SubscribeBrokerRsp*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void SubscribeBrokerRsp::MergeFrom(const SubscribeBrokerRsp& from) {
  GOOGLE_CHECK_NE(&from, this);
  confkeys_.MergeFrom(from.confkeys_);
  values_.MergeFrom(from.values_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_code()) {
      set_code(from.code());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
    if (from.has_error()) {
      set_error(from.error());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void SubscribeBrokerRsp::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SubscribeBrokerRsp::CopyFrom(const SubscribeBrokerRsp& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeBrokerRsp::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;

  return true;
}

void SubscribeBrokerRsp::Swap(SubscribeBrokerRsp* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(code_, other->code_);
    std::swap(version_, other->version_);
    confkeys_.Swap(&other->confkeys_);
    values_.Swap(&other->values_);
    std::swap(error_, other->error_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata SubscribeBrokerRsp::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = SubscribeBrokerRsp_descriptor_;
  metadata.reflection = SubscribeBrokerRsp_reflection_;
  return metadata;
}

#ifndef _MSC_VER
const int SubscribeAgentRsp::kServiceKeyFieldNumber;
const int SubscribeAgentRsp::kCodeFieldNumber;
const int SubscribeAgentRsp::kIndexFieldNumber;
#endif  

SubscribeAgentRsp::SubscribeAgentRsp()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void SubscribeAgentRsp::InitAsDefaultInstance() {
}

SubscribeAgentRsp::SubscribeAgentRsp(const SubscribeAgentRsp& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void SubscribeAgentRsp::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  code_ = 0;
  index_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

SubscribeAgentRsp::~SubscribeAgentRsp() {

  SharedDtor();
}

void SubscribeAgentRsp::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void SubscribeAgentRsp::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SubscribeAgentRsp::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return SubscribeAgentRsp_descriptor_;
}

const SubscribeAgentRsp& SubscribeAgentRsp::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

SubscribeAgentRsp* SubscribeAgentRsp::default_instance_ = NULL;

SubscribeAgentRsp* SubscribeAgentRsp::New() const {
  return new SubscribeAgentRsp;
}

void SubscribeAgentRsp::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<SubscribeAgentRsp*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 7) {
    ZR_(code_, index_);
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool SubscribeAgentRsp::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_code;
        break;
      }

      case 2: {
        if (tag == 16) {
         parse_code:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
          set_has_code();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_index;
        break;
      }

      case 3: {
        if (tag == 24) {
         parse_index:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &index_)));
          set_has_index();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void SubscribeAgentRsp::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (has_code()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->code(), output);
  }

  if (has_index()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->index(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* SubscribeAgentRsp::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (has_code()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->code(), target);
  }

  if (has_index()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->index(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int SubscribeAgentRsp::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

    if (has_index()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->index());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SubscribeAgentRsp::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const SubscribeAgentRsp* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const SubscribeAgentRsp*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void SubscribeAgentRsp::MergeFrom(const SubscribeAgentRsp& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_code()) {
      set_code(from.code());
    }
    if (from.has_index()) {
      set_index(from.index());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void SubscribeAgentRsp::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SubscribeAgentRsp::CopyFrom(const SubscribeAgentRsp& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeAgentRsp::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void SubscribeAgentRsp::Swap(SubscribeAgentRsp* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(code_, other->code_);
    std::swap(index_, other->index_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata SubscribeAgentRsp::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = SubscribeAgentRsp_descriptor_;
  metadata.reflection = SubscribeAgentRsp_reflection_;
  return metadata;
}

#ifndef _MSC_VER
const int PushServiceConfigReq::kServiceKeyFieldNumber;
const int PushServiceConfigReq::kVersionFieldNumber;
const int PushServiceConfigReq::kConfKeysFieldNumber;
const int PushServiceConfigReq::kValuesFieldNumber;
#endif  

PushServiceConfigReq::PushServiceConfigReq()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void PushServiceConfigReq::InitAsDefaultInstance() {
}

PushServiceConfigReq::PushServiceConfigReq(const PushServiceConfigReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void PushServiceConfigReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

PushServiceConfigReq::~PushServiceConfigReq() {

  SharedDtor();
}

void PushServiceConfigReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void PushServiceConfigReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PushServiceConfigReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return PushServiceConfigReq_descriptor_;
}

const PushServiceConfigReq& PushServiceConfigReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

PushServiceConfigReq* PushServiceConfigReq::default_instance_ = NULL;

PushServiceConfigReq* PushServiceConfigReq::New() const {
  return new PushServiceConfigReq;
}

void PushServiceConfigReq::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    version_ = 0u;
  }
  confkeys_.Clear();
  values_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool PushServiceConfigReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_version;
        break;
      }

      case 2: {
        if (tag == 16) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        break;
      }

      case 3: {
        if (tag == 26) {
         parse_confKeys:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_confkeys()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->confkeys(this->confkeys_size() - 1).data(),
            this->confkeys(this->confkeys_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "confkeys");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        if (input->ExpectTag(34)) goto parse_values;
        break;
      }

      case 4: {
        if (tag == 34) {
         parse_values:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_values()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->values(this->values_size() - 1).data(),
            this->values(this->values_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "values");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_values;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void PushServiceConfigReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->version(), output);
  }

  for (int i = 0; i < this->confkeys_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->confkeys(i).data(), this->confkeys(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "confkeys");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->confkeys(i), output);
  }

  for (int i = 0; i < this->values_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->values(i).data(), this->values(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "values");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->values(i), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* PushServiceConfigReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->version(), target);
  }

  for (int i = 0; i < this->confkeys_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->confkeys(i).data(), this->confkeys(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "confkeys");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(3, this->confkeys(i), target);
  }

  for (int i = 0; i < this->values_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->values(i).data(), this->values(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "values");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->values(i), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int PushServiceConfigReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

  }

  total_size += 1 * this->confkeys_size();
  for (int i = 0; i < this->confkeys_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->confkeys(i));
  }

  total_size += 1 * this->values_size();
  for (int i = 0; i < this->values_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->values(i));
  }

  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PushServiceConfigReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const PushServiceConfigReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const PushServiceConfigReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void PushServiceConfigReq::MergeFrom(const PushServiceConfigReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  confkeys_.MergeFrom(from.confkeys_);
  values_.MergeFrom(from.values_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void PushServiceConfigReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PushServiceConfigReq::CopyFrom(const PushServiceConfigReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushServiceConfigReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void PushServiceConfigReq::Swap(PushServiceConfigReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(version_, other->version_);
    confkeys_.Swap(&other->confkeys_);
    values_.Swap(&other->values_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata PushServiceConfigReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = PushServiceConfigReq_descriptor_;
  metadata.reflection = PushServiceConfigReq_reflection_;
  return metadata;
}

#ifndef _MSC_VER
const int PullServiceConfigReq::kServiceKeyFieldNumber;
const int PullServiceConfigReq::kVersionFieldNumber;
#endif  

PullServiceConfigReq::PullServiceConfigReq()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void PullServiceConfigReq::InitAsDefaultInstance() {
}

PullServiceConfigReq::PullServiceConfigReq(const PullServiceConfigReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void PullServiceConfigReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

PullServiceConfigReq::~PullServiceConfigReq() {

  SharedDtor();
}

void PullServiceConfigReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void PullServiceConfigReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PullServiceConfigReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return PullServiceConfigReq_descriptor_;
}

const PullServiceConfigReq& PullServiceConfigReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

PullServiceConfigReq* PullServiceConfigReq::default_instance_ = NULL;

PullServiceConfigReq* PullServiceConfigReq::New() const {
  return new PullServiceConfigReq;
}

void PullServiceConfigReq::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    version_ = 0u;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool PullServiceConfigReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_version;
        break;
      }

      case 2: {
        if (tag == 16) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void PullServiceConfigReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->version(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* PullServiceConfigReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->version(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int PullServiceConfigReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PullServiceConfigReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const PullServiceConfigReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const PullServiceConfigReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void PullServiceConfigReq::MergeFrom(const PullServiceConfigReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void PullServiceConfigReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PullServiceConfigReq::CopyFrom(const PullServiceConfigReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PullServiceConfigReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void PullServiceConfigReq::Swap(PullServiceConfigReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(version_, other->version_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata PullServiceConfigReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = PullServiceConfigReq_descriptor_;
  metadata.reflection = PullServiceConfigReq_reflection_;
  return metadata;
}

#ifndef _MSC_VER
const int PullServiceConfigRsp::kServiceKeyFieldNumber;
const int PullServiceConfigRsp::kVersionFieldNumber;
const int PullServiceConfigRsp::kConfKeysFieldNumber;
const int PullServiceConfigRsp::kValuesFieldNumber;
#endif  

PullServiceConfigRsp::PullServiceConfigRsp()
  : ::google::protobuf::Message() {
  SharedCtor();

}

void PullServiceConfigRsp::InitAsDefaultInstance() {
}

PullServiceConfigRsp::PullServiceConfigRsp(const PullServiceConfigRsp& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);

}

void PullServiceConfigRsp::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

PullServiceConfigRsp::~PullServiceConfigRsp() {

  SharedDtor();
}

void PullServiceConfigRsp::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void PullServiceConfigRsp::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PullServiceConfigRsp::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return PullServiceConfigRsp_descriptor_;
}

const PullServiceConfigRsp& PullServiceConfigRsp::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

PullServiceConfigRsp* PullServiceConfigRsp::default_instance_ = NULL;

PullServiceConfigRsp* PullServiceConfigRsp::New() const {
  return new PullServiceConfigRsp;
}

void PullServiceConfigRsp::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    version_ = 0u;
  }
  confkeys_.Clear();
  values_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool PullServiceConfigRsp::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;

  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {

      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_version;
        break;
      }

      case 2: {
        if (tag == 16) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        break;
      }

      case 3: {
        if (tag == 26) {
         parse_confKeys:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_confkeys()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->confkeys(this->confkeys_size() - 1).data(),
            this->confkeys(this->confkeys_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "confkeys");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        if (input->ExpectTag(34)) goto parse_values;
        break;
      }

      case 4: {
        if (tag == 34) {
         parse_values:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_values()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->values(this->values_size() - 1).data(),
            this->values(this->values_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "values");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_values;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:

  return true;
failure:

  return false;
#undef DO_
}

void PullServiceConfigRsp::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->version(), output);
  }

  for (int i = 0; i < this->confkeys_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->confkeys(i).data(), this->confkeys(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "confkeys");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->confkeys(i), output);
  }

  for (int i = 0; i < this->values_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->values(i).data(), this->values(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "values");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->values(i), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }

}

::google::protobuf::uint8* PullServiceConfigRsp::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {

  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->version(), target);
  }

  for (int i = 0; i < this->confkeys_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->confkeys(i).data(), this->confkeys(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "confkeys");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(3, this->confkeys(i), target);
  }

  for (int i = 0; i < this->values_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->values(i).data(), this->values(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "values");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->values(i), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }

  return target;
}

int PullServiceConfigRsp::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {

    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

  }

  total_size += 1 * this->confkeys_size();
  for (int i = 0; i < this->confkeys_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->confkeys(i));
  }

  total_size += 1 * this->values_size();
  for (int i = 0; i < this->values_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->values(i));
  }

  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PullServiceConfigRsp::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const PullServiceConfigRsp* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const PullServiceConfigRsp*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void PullServiceConfigRsp::MergeFrom(const PullServiceConfigRsp& from) {
  GOOGLE_CHECK_NE(&from, this);
  confkeys_.MergeFrom(from.confkeys_);
  values_.MergeFrom(from.values_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void PullServiceConfigRsp::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PullServiceConfigRsp::CopyFrom(const PullServiceConfigRsp& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PullServiceConfigRsp::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void PullServiceConfigRsp::Swap(PullServiceConfigRsp* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(version_, other->version_);
    confkeys_.Swap(&other->confkeys_);
    values_.Swap(&other->values_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata PullServiceConfigRsp::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = PullServiceConfigRsp_descriptor_;
  metadata.reflection = PullServiceConfigRsp_reflection_;
  return metadata;
}

}
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: base_protocol.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "base_protocol.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)

namespace protocol {

namespace {

const ::google::protobuf::Descriptor* KeepUsingReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  KeepUsingReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* SubscribeReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  SubscribeReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* SubscribeBrokerRsp_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  SubscribeBrokerRsp_reflection_ = NULL;
const ::google::protobuf::Descriptor* SubscribeAgentRsp_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  SubscribeAgentRsp_reflection_ = NULL;
const ::google::protobuf::Descriptor* PushServiceConfigReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  PushServiceConfigReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* PullServiceConfigReq_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  PullServiceConfigReq_reflection_ = NULL;
const ::google::protobuf::Descriptor* PullServiceConfigRsp_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  PullServiceConfigRsp_reflection_ = NULL;

}  // namespace


void protobuf_AssignDesc_base_5fprotocol_2eproto() {
  protobuf_AddDesc_base_5fprotocol_2eproto();
  const ::google::protobuf::FileDescriptor* file =
    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
      "base_protocol.proto");
  GOOGLE_CHECK(file != NULL);
  KeepUsingReq_descriptor_ = file->message_type(0);
  static const int KeepUsingReq_offsets_[1] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(KeepUsingReq, servicekey_),
  };
  KeepUsingReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      KeepUsingReq_descriptor_,
      KeepUsingReq::default_instance_,
      KeepUsingReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(KeepUsingReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(KeepUsingReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(KeepUsingReq));
  SubscribeReq_descriptor_ = file->message_type(1);
  static const int SubscribeReq_offsets_[1] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeReq, servicekey_),
  };
  SubscribeReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      SubscribeReq_descriptor_,
      SubscribeReq::default_instance_,
      SubscribeReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(SubscribeReq));
  SubscribeBrokerRsp_descriptor_ = file->message_type(2);
  static const int SubscribeBrokerRsp_offsets_[6] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, code_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, version_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, confkeys_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, values_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, error_),
  };
  SubscribeBrokerRsp_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      SubscribeBrokerRsp_descriptor_,
      SubscribeBrokerRsp::default_instance_,
      SubscribeBrokerRsp_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeBrokerRsp, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(SubscribeBrokerRsp));
  SubscribeAgentRsp_descriptor_ = file->message_type(3);
  static const int SubscribeAgentRsp_offsets_[3] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, code_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, index_),
  };
  SubscribeAgentRsp_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      SubscribeAgentRsp_descriptor_,
      SubscribeAgentRsp::default_instance_,
      SubscribeAgentRsp_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeAgentRsp, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(SubscribeAgentRsp));
  PushServiceConfigReq_descriptor_ = file->message_type(4);
  static const int PushServiceConfigReq_offsets_[4] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, version_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, confkeys_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, values_),
  };
  PushServiceConfigReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      PushServiceConfigReq_descriptor_,
      PushServiceConfigReq::default_instance_,
      PushServiceConfigReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PushServiceConfigReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(PushServiceConfigReq));
  PullServiceConfigReq_descriptor_ = file->message_type(5);
  static const int PullServiceConfigReq_offsets_[2] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, version_),
  };
  PullServiceConfigReq_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      PullServiceConfigReq_descriptor_,
      PullServiceConfigReq::default_instance_,
      PullServiceConfigReq_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigReq, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(PullServiceConfigReq));
  PullServiceConfigRsp_descriptor_ = file->message_type(6);
  static const int PullServiceConfigRsp_offsets_[4] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, servicekey_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, version_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, confkeys_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, values_),
  };
  PullServiceConfigRsp_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      PullServiceConfigRsp_descriptor_,
      PullServiceConfigRsp::default_instance_,
      PullServiceConfigRsp_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PullServiceConfigRsp, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(PullServiceConfigRsp));
}

namespace {

GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
inline void protobuf_AssignDescriptorsOnce() {
  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
                 &protobuf_AssignDesc_base_5fprotocol_2eproto);
}

void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    KeepUsingReq_descriptor_, &KeepUsingReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    SubscribeReq_descriptor_, &SubscribeReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    SubscribeBrokerRsp_descriptor_, &SubscribeBrokerRsp::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    SubscribeAgentRsp_descriptor_, &SubscribeAgentRsp::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    PushServiceConfigReq_descriptor_, &PushServiceConfigReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    PullServiceConfigReq_descriptor_, &PullServiceConfigReq::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    PullServiceConfigRsp_descriptor_, &PullServiceConfigRsp::default_instance());
}

}  // namespace

void protobuf_ShutdownFile_base_5fprotocol_2eproto() {
  delete KeepUsingReq::default_instance_;
  delete KeepUsingReq_reflection_;
  delete SubscribeReq::default_instance_;
  delete SubscribeReq_reflection_;
  delete SubscribeBrokerRsp::default_instance_;
  delete SubscribeBrokerRsp_reflection_;
  delete SubscribeAgentRsp::default_instance_;
  delete SubscribeAgentRsp_reflection_;
  delete PushServiceConfigReq::default_instance_;
  delete PushServiceConfigReq_reflection_;
  delete PullServiceConfigReq::default_instance_;
  delete PullServiceConfigReq_reflection_;
  delete PullServiceConfigRsp::default_instance_;
  delete PullServiceConfigRsp_reflection_;
}

void protobuf_AddDesc_base_5fprotocol_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
    "\n\023base_protocol.proto\022\010protocol\"\"\n\014KeepU"
    "singReq\022\022\n\nserviceKey\030\001 \002(\t\"\"\n\014Subscribe"
    "Req\022\022\n\nserviceKey\030\001 \002(\t\"x\n\022SubscribeBrok"
    "erRsp\022\022\n\nserviceKey\030\001 \002(\t\022\014\n\004code\030\002 \002(\005\022"
    "\017\n\007version\030\003 \002(\r\022\020\n\010confKeys\030\004 \003(\t\022\016\n\006va"
    "lues\030\005 \003(\t\022\r\n\005error\030\006 \001(\t\"D\n\021SubscribeAg"
    "entRsp\022\022\n\nserviceKey\030\001 \002(\t\022\014\n\004code\030\002 \002(\005"
    "\022\r\n\005index\030\003 \001(\r\"]\n\024PushServiceConfigReq\022"
    "\022\n\nserviceKey\030\001 \002(\t\022\017\n\007version\030\002 \002(\r\022\020\n\010"
    "confKeys\030\003 \003(\t\022\016\n\006values\030\004 \003(\t\";\n\024PullSe"
    "rviceConfigReq\022\022\n\nserviceKey\030\001 \002(\t\022\017\n\007ve"
    "rsion\030\002 \002(\r\"]\n\024PullServiceConfigRsp\022\022\n\ns"
    "erviceKey\030\001 \002(\t\022\017\n\007version\030\002 \002(\r\022\020\n\010conf"
    "Keys\030\003 \003(\t\022\016\n\006values\030\004 \003(\t", 546);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "base_protocol.proto", &protobuf_RegisterTypes);
  KeepUsingReq::default_instance_ = new KeepUsingReq();
  SubscribeReq::default_instance_ = new SubscribeReq();
  SubscribeBrokerRsp::default_instance_ = new SubscribeBrokerRsp();
  SubscribeAgentRsp::default_instance_ = new SubscribeAgentRsp();
  PushServiceConfigReq::default_instance_ = new PushServiceConfigReq();
  PullServiceConfigReq::default_instance_ = new PullServiceConfigReq();
  PullServiceConfigRsp::default_instance_ = new PullServiceConfigRsp();
  KeepUsingReq::default_instance_->InitAsDefaultInstance();
  SubscribeReq::default_instance_->InitAsDefaultInstance();
  SubscribeBrokerRsp::default_instance_->InitAsDefaultInstance();
  SubscribeAgentRsp::default_instance_->InitAsDefaultInstance();
  PushServiceConfigReq::default_instance_->InitAsDefaultInstance();
  PullServiceConfigReq::default_instance_->InitAsDefaultInstance();
  PullServiceConfigRsp::default_instance_->InitAsDefaultInstance();
  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_base_5fprotocol_2eproto);
}

// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer_base_5fprotocol_2eproto {
  StaticDescriptorInitializer_base_5fprotocol_2eproto() {
    protobuf_AddDesc_base_5fprotocol_2eproto();
  }
} static_descriptor_initializer_base_5fprotocol_2eproto_;

// ===================================================================

#ifndef _MSC_VER
const int KeepUsingReq::kServiceKeyFieldNumber;
#endif  // !_MSC_VER

KeepUsingReq::KeepUsingReq()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.KeepUsingReq)
}

void KeepUsingReq::InitAsDefaultInstance() {
}

KeepUsingReq::KeepUsingReq(const KeepUsingReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.KeepUsingReq)
}

void KeepUsingReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

KeepUsingReq::~KeepUsingReq() {
  // @@protoc_insertion_point(destructor:protocol.KeepUsingReq)
  SharedDtor();
}

void KeepUsingReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void KeepUsingReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* KeepUsingReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return KeepUsingReq_descriptor_;
}

const KeepUsingReq& KeepUsingReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

KeepUsingReq* KeepUsingReq::default_instance_ = NULL;

KeepUsingReq* KeepUsingReq::New() const {
  return new KeepUsingReq;
}

void KeepUsingReq::Clear() {
  if (has_servicekey()) {
    if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      servicekey_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool KeepUsingReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.KeepUsingReq)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.KeepUsingReq)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.KeepUsingReq)
  return false;
#undef DO_
}

void KeepUsingReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.KeepUsingReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.KeepUsingReq)
}

::google::protobuf::uint8* KeepUsingReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.KeepUsingReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.KeepUsingReq)
  return target;
}

int KeepUsingReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void KeepUsingReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const KeepUsingReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const KeepUsingReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void KeepUsingReq::MergeFrom(const KeepUsingReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void KeepUsingReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void KeepUsingReq::CopyFrom(const KeepUsingReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool KeepUsingReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  return true;
}

void KeepUsingReq::Swap(KeepUsingReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata KeepUsingReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = KeepUsingReq_descriptor_;
  metadata.reflection = KeepUsingReq_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int SubscribeReq::kServiceKeyFieldNumber;
#endif  // !_MSC_VER

SubscribeReq::SubscribeReq()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.SubscribeReq)
}

void SubscribeReq::InitAsDefaultInstance() {
}

SubscribeReq::SubscribeReq(const SubscribeReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.SubscribeReq)
}

void SubscribeReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

SubscribeReq::~SubscribeReq() {
  // @@protoc_insertion_point(destructor:protocol.SubscribeReq)
  SharedDtor();
}

void SubscribeReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void SubscribeReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SubscribeReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return SubscribeReq_descriptor_;
}

const SubscribeReq& SubscribeReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

SubscribeReq* SubscribeReq::default_instance_ = NULL;

SubscribeReq* SubscribeReq::New() const {
  return new SubscribeReq;
}

void SubscribeReq::Clear() {
  if (has_servicekey()) {
    if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
      servicekey_->clear();
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool SubscribeReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.SubscribeReq)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.SubscribeReq)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.SubscribeReq)
  return false;
#undef DO_
}

void SubscribeReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.SubscribeReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.SubscribeReq)
}

::google::protobuf::uint8* SubscribeReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.SubscribeReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.SubscribeReq)
  return target;
}

int SubscribeReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SubscribeReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const SubscribeReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const SubscribeReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void SubscribeReq::MergeFrom(const SubscribeReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void SubscribeReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SubscribeReq::CopyFrom(const SubscribeReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;

  return true;
}

void SubscribeReq::Swap(SubscribeReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata SubscribeReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = SubscribeReq_descriptor_;
  metadata.reflection = SubscribeReq_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int SubscribeBrokerRsp::kServiceKeyFieldNumber;
const int SubscribeBrokerRsp::kCodeFieldNumber;
const int SubscribeBrokerRsp::kVersionFieldNumber;
const int SubscribeBrokerRsp::kConfKeysFieldNumber;
const int SubscribeBrokerRsp::kValuesFieldNumber;
const int SubscribeBrokerRsp::kErrorFieldNumber;
#endif  // !_MSC_VER

SubscribeBrokerRsp::SubscribeBrokerRsp()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.SubscribeBrokerRsp)
}

void SubscribeBrokerRsp::InitAsDefaultInstance() {
}

SubscribeBrokerRsp::SubscribeBrokerRsp(const SubscribeBrokerRsp& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.SubscribeBrokerRsp)
}

void SubscribeBrokerRsp::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  code_ = 0;
  version_ = 0u;
  error_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

SubscribeBrokerRsp::~SubscribeBrokerRsp() {
  // @@protoc_insertion_point(destructor:protocol.SubscribeBrokerRsp)
  SharedDtor();
}

void SubscribeBrokerRsp::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (error_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete error_;
  }
  if (this != default_instance_) {
  }
}

void SubscribeBrokerRsp::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SubscribeBrokerRsp::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return SubscribeBrokerRsp_descriptor_;
}

const SubscribeBrokerRsp& SubscribeBrokerRsp::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

SubscribeBrokerRsp* SubscribeBrokerRsp::default_instance_ = NULL;

SubscribeBrokerRsp* SubscribeBrokerRsp::New() const {
  return new SubscribeBrokerRsp;
}

void SubscribeBrokerRsp::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<SubscribeBrokerRsp*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 39) {
    ZR_(code_, version_);
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    if (has_error()) {
      if (error_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        error_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  confkeys_.Clear();
  values_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool SubscribeBrokerRsp::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.SubscribeBrokerRsp)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_code;
        break;
      }

      // required int32 code = 2;
      case 2: {
        if (tag == 16) {
         parse_code:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
          set_has_code();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_version;
        break;
      }

      // required uint32 version = 3;
      case 3: {
        if (tag == 24) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_confKeys;
        break;
      }

      // repeated string confKeys = 4;
      case 4: {
        if (tag == 34) {
         parse_confKeys:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_confkeys()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->confkeys(this->confkeys_size() - 1).data(),
            this->confkeys(this->confkeys_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "confkeys");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_confKeys;
        if (input->ExpectTag(42)) goto parse_values;
        break;
      }

      // repeated string values = 5;
      case 5: {
        if (tag == 42) {
         parse_values:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_values()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->values(this->values_size() - 1).data(),
            this->values(this->values_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "values");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(42)) goto parse_values;
        if (input->ExpectTag(50)) goto parse_error;
        break;
      }

      // optional string error = 6;
      case 6: {
        if (tag == 50) {
         parse_error:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_error()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->error().data(), this->error().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "error");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.SubscribeBrokerRsp)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.SubscribeBrokerRsp)
  return false;
#undef DO_
}

void SubscribeBrokerRsp::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.SubscribeBrokerRsp)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  // required int32 code = 2;
  if (has_code()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->code(), output);
  }

  // required uint32 version = 3;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->version(), output);
  }

  // repeated string confKeys = 4;
  for (int i = 0; i < this->confkeys_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->confkeys(i).data(), this->confkeys(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "confkeys");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->confkeys(i), output);
  }

  // repeated string values = 5;
  for (int i = 0; i < this->values_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->values(i).data(), this->values(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "values");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      5, this->values(i), output);
  }

  // optional string error = 6;
  if (has_error()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error().data(), this->error().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "error");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->error(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.SubscribeBrokerRsp)
}

::google::protobuf::uint8* SubscribeBrokerRsp::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.SubscribeBrokerRsp)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  // required int32 code = 2;
  if (has_code()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->code(), target);
  }

  // required uint32 version = 3;
  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->version(), target);
  }

  // repeated string confKeys = 4;
  for (int i = 0; i < this->confkeys_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->confkeys(i).data(), this->confkeys(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "confkeys");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->confkeys(i), target);
  }

  // repeated string values = 5;
  for (int i = 0; i < this->values_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->values(i).data(), this->values(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "values");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(5, this->values(i), target);
  }

  // optional string error = 6;
  if (has_error()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->error().data(), this->error().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "error");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->error(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.SubscribeBrokerRsp)
  return target;
}

int SubscribeBrokerRsp::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    // required int32 code = 2;
    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

    // required uint32 version = 3;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

    // optional string error = 6;
    if (has_error()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->error());
    }

  }
  // repeated string confKeys = 4;
  total_size += 1 * this->confkeys_size();
  for (int i = 0; i < this->confkeys_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->confkeys(i));
  }

  // repeated string values = 5;
  total_size += 1 * this->values_size();
  for (int i = 0; i < this->values_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->values(i));
  }

  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SubscribeBrokerRsp::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const SubscribeBrokerRsp* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const SubscribeBrokerRsp*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void SubscribeBrokerRsp::MergeFrom(const SubscribeBrokerRsp& from) {
  GOOGLE_CHECK_NE(&from, this);
  confkeys_.MergeFrom(from.confkeys_);
  values_.MergeFrom(from.values_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_code()) {
      set_code(from.code());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
    if (from.has_error()) {
      set_error(from.error());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void SubscribeBrokerRsp::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SubscribeBrokerRsp::CopyFrom(const SubscribeBrokerRsp& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeBrokerRsp::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;

  return true;
}

void SubscribeBrokerRsp::Swap(SubscribeBrokerRsp* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(code_, other->code_);
    std::swap(version_, other->version_);
    confkeys_.Swap(&other->confkeys_);
    values_.Swap(&other->values_);
    std::swap(error_, other->error_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata SubscribeBrokerRsp::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = SubscribeBrokerRsp_descriptor_;
  metadata.reflection = SubscribeBrokerRsp_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int SubscribeAgentRsp::kServiceKeyFieldNumber;
const int SubscribeAgentRsp::kCodeFieldNumber;
const int SubscribeAgentRsp::kIndexFieldNumber;
#endif  // !_MSC_VER

SubscribeAgentRsp::SubscribeAgentRsp()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.SubscribeAgentRsp)
}

void SubscribeAgentRsp::InitAsDefaultInstance() {
}

SubscribeAgentRsp::SubscribeAgentRsp(const SubscribeAgentRsp& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.SubscribeAgentRsp)
}

void SubscribeAgentRsp::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  code_ = 0;
  index_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

SubscribeAgentRsp::~SubscribeAgentRsp() {
  // @@protoc_insertion_point(destructor:protocol.SubscribeAgentRsp)
  SharedDtor();
}

void SubscribeAgentRsp::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void SubscribeAgentRsp::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SubscribeAgentRsp::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return SubscribeAgentRsp_descriptor_;
}

const SubscribeAgentRsp& SubscribeAgentRsp::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

SubscribeAgentRsp* SubscribeAgentRsp::default_instance_ = NULL;

SubscribeAgentRsp* SubscribeAgentRsp::New() const {
  return new SubscribeAgentRsp;
}

void SubscribeAgentRsp::Clear() {
#define OFFSET_OF_FIELD_(f) (reinterpret_cast<char*>(      \
  &reinterpret_cast<SubscribeAgentRsp*>(16)->f) - \
   reinterpret_cast<char*>(16))

#define ZR_(first, last) do {                              \
    size_t f = OFFSET_OF_FIELD_(first);                    \
    size_t n = OFFSET_OF_FIELD_(last) - f + sizeof(last);  \
    ::memset(&first, 0, n);                                \
  } while (0)

  if (_has_bits_[0 / 32] & 7) {
    ZR_(code_, index_);
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
  }

#undef OFFSET_OF_FIELD_
#undef ZR_

  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool SubscribeAgentRsp::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.SubscribeAgentRsp)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_code;
        break;
      }

      // required int32 code = 2;
      case 2: {
        if (tag == 16) {
         parse_code:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
          set_has_code();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(24)) goto parse_index;
        break;
      }

      // optional uint32 index = 3;
      case 3: {
        if (tag == 24) {
         parse_index:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &index_)));
          set_has_index();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.SubscribeAgentRsp)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.SubscribeAgentRsp)
  return false;
#undef DO_
}

void SubscribeAgentRsp::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.SubscribeAgentRsp)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  // required int32 code = 2;
  if (has_code()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->code(), output);
  }

  // optional uint32 index = 3;
  if (has_index()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->index(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.SubscribeAgentRsp)
}

::google::protobuf::uint8* SubscribeAgentRsp::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.SubscribeAgentRsp)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  // required int32 code = 2;
  if (has_code()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->code(), target);
  }

  // optional uint32 index = 3;
  if (has_index()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->index(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.SubscribeAgentRsp)
  return target;
}

int SubscribeAgentRsp::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    // required int32 code = 2;
    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

    // optional uint32 index = 3;
    if (has_index()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->index());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SubscribeAgentRsp::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const SubscribeAgentRsp* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const SubscribeAgentRsp*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void SubscribeAgentRsp::MergeFrom(const SubscribeAgentRsp& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_code()) {
      set_code(from.code());
    }
    if (from.has_index()) {
      set_index(from.index());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void SubscribeAgentRsp::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SubscribeAgentRsp::CopyFrom(const SubscribeAgentRsp& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeAgentRsp::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void SubscribeAgentRsp::Swap(SubscribeAgentRsp* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(code_, other->code_);
    std::swap(index_, other->index_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata SubscribeAgentRsp::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = SubscribeAgentRsp_descriptor_;
  metadata.reflection = SubscribeAgentRsp_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int PushServiceConfigReq::kServiceKeyFieldNumber;
const int PushServiceConfigReq::kVersionFieldNumber;
const int PushServiceConfigReq::kConfKeysFieldNumber;
const int PushServiceConfigReq::kValuesFieldNumber;
#endif  // !_MSC_VER

PushServiceConfigReq::PushServiceConfigReq()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.PushServiceConfigReq)
}

void PushServiceConfigReq::InitAsDefaultInstance() {
}

PushServiceConfigReq::PushServiceConfigReq(const PushServiceConfigReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.PushServiceConfigReq)
}

void PushServiceConfigReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

PushServiceConfigReq::~PushServiceConfigReq() {
  // @@protoc_insertion_point(destructor:protocol.PushServiceConfigReq)
  SharedDtor();
}

void PushServiceConfigReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void PushServiceConfigReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PushServiceConfigReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return PushServiceConfigReq_descriptor_;
}

const PushServiceConfigReq& PushServiceConfigReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

PushServiceConfigReq* PushServiceConfigReq::default_instance_ = NULL;

PushServiceConfigReq* PushServiceConfigReq::New() const {
  return new PushServiceConfigReq;
}

void PushServiceConfigReq::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    version_ = 0u;
  }
  confkeys_.Clear();
  values_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool PushServiceConfigReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.PushServiceConfigReq)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_version;
        break;
      }

      // required uint32 version = 2;
      case 2: {
        if (tag == 16) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        break;
      }

      // repeated string confKeys = 3;
      case 3: {
        if (tag == 26) {
         parse_confKeys:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_confkeys()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->confkeys(this->confkeys_size() - 1).data(),
            this->confkeys(this->confkeys_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "confkeys");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        if (input->ExpectTag(34)) goto parse_values;
        break;
      }

      // repeated string values = 4;
      case 4: {
        if (tag == 34) {
         parse_values:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_values()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->values(this->values_size() - 1).data(),
            this->values(this->values_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "values");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_values;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.PushServiceConfigReq)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.PushServiceConfigReq)
  return false;
#undef DO_
}

void PushServiceConfigReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.PushServiceConfigReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  // required uint32 version = 2;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->version(), output);
  }

  // repeated string confKeys = 3;
  for (int i = 0; i < this->confkeys_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->confkeys(i).data(), this->confkeys(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "confkeys");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->confkeys(i), output);
  }

  // repeated string values = 4;
  for (int i = 0; i < this->values_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->values(i).data(), this->values(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "values");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->values(i), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.PushServiceConfigReq)
}

::google::protobuf::uint8* PushServiceConfigReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.PushServiceConfigReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  // required uint32 version = 2;
  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->version(), target);
  }

  // repeated string confKeys = 3;
  for (int i = 0; i < this->confkeys_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->confkeys(i).data(), this->confkeys(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "confkeys");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(3, this->confkeys(i), target);
  }

  // repeated string values = 4;
  for (int i = 0; i < this->values_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->values(i).data(), this->values(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "values");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->values(i), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.PushServiceConfigReq)
  return target;
}

int PushServiceConfigReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    // required uint32 version = 2;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

  }
  // repeated string confKeys = 3;
  total_size += 1 * this->confkeys_size();
  for (int i = 0; i < this->confkeys_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->confkeys(i));
  }

  // repeated string values = 4;
  total_size += 1 * this->values_size();
  for (int i = 0; i < this->values_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->values(i));
  }

  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PushServiceConfigReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const PushServiceConfigReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const PushServiceConfigReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void PushServiceConfigReq::MergeFrom(const PushServiceConfigReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  confkeys_.MergeFrom(from.confkeys_);
  values_.MergeFrom(from.values_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void PushServiceConfigReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PushServiceConfigReq::CopyFrom(const PushServiceConfigReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushServiceConfigReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void PushServiceConfigReq::Swap(PushServiceConfigReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(version_, other->version_);
    confkeys_.Swap(&other->confkeys_);
    values_.Swap(&other->values_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata PushServiceConfigReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = PushServiceConfigReq_descriptor_;
  metadata.reflection = PushServiceConfigReq_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int PullServiceConfigReq::kServiceKeyFieldNumber;
const int PullServiceConfigReq::kVersionFieldNumber;
#endif  // !_MSC_VER

PullServiceConfigReq::PullServiceConfigReq()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.PullServiceConfigReq)
}

void PullServiceConfigReq::InitAsDefaultInstance() {
}

PullServiceConfigReq::PullServiceConfigReq(const PullServiceConfigReq& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.PullServiceConfigReq)
}

void PullServiceConfigReq::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

PullServiceConfigReq::~PullServiceConfigReq() {
  // @@protoc_insertion_point(destructor:protocol.PullServiceConfigReq)
  SharedDtor();
}

void PullServiceConfigReq::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void PullServiceConfigReq::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PullServiceConfigReq::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return PullServiceConfigReq_descriptor_;
}

const PullServiceConfigReq& PullServiceConfigReq::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

PullServiceConfigReq* PullServiceConfigReq::default_instance_ = NULL;

PullServiceConfigReq* PullServiceConfigReq::New() const {
  return new PullServiceConfigReq;
}

void PullServiceConfigReq::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    version_ = 0u;
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool PullServiceConfigReq::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.PullServiceConfigReq)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_version;
        break;
      }

      // required uint32 version = 2;
      case 2: {
        if (tag == 16) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.PullServiceConfigReq)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.PullServiceConfigReq)
  return false;
#undef DO_
}

void PullServiceConfigReq::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.PullServiceConfigReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  // required uint32 version = 2;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->version(), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.PullServiceConfigReq)
}

::google::protobuf::uint8* PullServiceConfigReq::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.PullServiceConfigReq)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  // required uint32 version = 2;
  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->version(), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.PullServiceConfigReq)
  return target;
}

int PullServiceConfigReq::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    // required uint32 version = 2;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

  }
  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PullServiceConfigReq::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const PullServiceConfigReq* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const PullServiceConfigReq*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void PullServiceConfigReq::MergeFrom(const PullServiceConfigReq& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void PullServiceConfigReq::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PullServiceConfigReq::CopyFrom(const PullServiceConfigReq& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PullServiceConfigReq::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void PullServiceConfigReq::Swap(PullServiceConfigReq* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(version_, other->version_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata PullServiceConfigReq::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = PullServiceConfigReq_descriptor_;
  metadata.reflection = PullServiceConfigReq_reflection_;
  return metadata;
}


// ===================================================================

#ifndef _MSC_VER
const int PullServiceConfigRsp::kServiceKeyFieldNumber;
const int PullServiceConfigRsp::kVersionFieldNumber;
const int PullServiceConfigRsp::kConfKeysFieldNumber;
const int PullServiceConfigRsp::kValuesFieldNumber;
#endif  // !_MSC_VER

PullServiceConfigRsp::PullServiceConfigRsp()
  : ::google::protobuf::Message() {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protocol.PullServiceConfigRsp)
}

void PullServiceConfigRsp::InitAsDefaultInstance() {
}

PullServiceConfigRsp::PullServiceConfigRsp(const PullServiceConfigRsp& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
  // @@protoc_insertion_point(copy_constructor:protocol.PullServiceConfigRsp)
}

void PullServiceConfigRsp::SharedCtor() {
  ::google::protobuf::internal::GetEmptyString();
  _cached_size_ = 0;
  servicekey_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  version_ = 0u;
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

PullServiceConfigRsp::~PullServiceConfigRsp() {
  // @@protoc_insertion_point(destructor:protocol.PullServiceConfigRsp)
  SharedDtor();
}

void PullServiceConfigRsp::SharedDtor() {
  if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete servicekey_;
  }
  if (this != default_instance_) {
  }
}

void PullServiceConfigRsp::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PullServiceConfigRsp::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return PullServiceConfigRsp_descriptor_;
}

const PullServiceConfigRsp& PullServiceConfigRsp::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_base_5fprotocol_2eproto();
  return *default_instance_;
}

PullServiceConfigRsp* PullServiceConfigRsp::default_instance_ = NULL;

PullServiceConfigRsp* PullServiceConfigRsp::New() const {
  return new PullServiceConfigRsp;
}

void PullServiceConfigRsp::Clear() {
  if (_has_bits_[0 / 32] & 3) {
    if (has_servicekey()) {
      if (servicekey_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
        servicekey_->clear();
      }
    }
    version_ = 0u;
  }
  confkeys_.Clear();
  values_.Clear();
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool PullServiceConfigRsp::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:protocol.PullServiceConfigRsp)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string serviceKey = 1;
      case 1: {
        if (tag == 10) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_servicekey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->servicekey().data(), this->servicekey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "servicekey");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(16)) goto parse_version;
        break;
      }

      // required uint32 version = 2;
      case 2: {
        if (tag == 16) {
         parse_version:
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &version_)));
          set_has_version();
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        break;
      }

      // repeated string confKeys = 3;
      case 3: {
        if (tag == 26) {
         parse_confKeys:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_confkeys()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->confkeys(this->confkeys_size() - 1).data(),
            this->confkeys(this->confkeys_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "confkeys");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(26)) goto parse_confKeys;
        if (input->ExpectTag(34)) goto parse_values;
        break;
      }

      // repeated string values = 4;
      case 4: {
        if (tag == 34) {
         parse_values:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_values()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->values(this->values_size() - 1).data(),
            this->values(this->values_size() - 1).length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "values");
        } else {
          goto handle_unusual;
        }
        if (input->ExpectTag(34)) goto parse_values;
        if (input->ExpectAtEnd()) goto success;
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:protocol.PullServiceConfigRsp)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:protocol.PullServiceConfigRsp)
  return false;
#undef DO_
}

void PullServiceConfigRsp::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:protocol.PullServiceConfigRsp)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->servicekey(), output);
  }

  // required uint32 version = 2;
  if (has_version()) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->version(), output);
  }

  // repeated string confKeys = 3;
  for (int i = 0; i < this->confkeys_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->confkeys(i).data(), this->confkeys(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "confkeys");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->confkeys(i), output);
  }

  // repeated string values = 4;
  for (int i = 0; i < this->values_size(); i++) {
  ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
    this->values(i).data(), this->values(i).length(),
    ::google::protobuf::internal::WireFormat::SERIALIZE,
    "values");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      4, this->values(i), output);
  }

  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:protocol.PullServiceConfigRsp)
}

::google::protobuf::uint8* PullServiceConfigRsp::SerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:protocol.PullServiceConfigRsp)
  // required string serviceKey = 1;
  if (has_servicekey()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->servicekey().data(), this->servicekey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "servicekey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->servicekey(), target);
  }

  // required uint32 version = 2;
  if (has_version()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->version(), target);
  }

  // repeated string confKeys = 3;
  for (int i = 0; i < this->confkeys_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->confkeys(i).data(), this->confkeys(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "confkeys");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(3, this->confkeys(i), target);
  }

  // repeated string values = 4;
  for (int i = 0; i < this->values_size(); i++) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->values(i).data(), this->values(i).length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "values");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(4, this->values(i), target);
  }

  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protocol.PullServiceConfigRsp)
  return target;
}

int PullServiceConfigRsp::ByteSize() const {
  int total_size = 0;

  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    // required string serviceKey = 1;
    if (has_servicekey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->servicekey());
    }

    // required uint32 version = 2;
    if (has_version()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::UInt32Size(
          this->version());
    }

  }
  // repeated string confKeys = 3;
  total_size += 1 * this->confkeys_size();
  for (int i = 0; i < this->confkeys_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->confkeys(i));
  }

  // repeated string values = 4;
  total_size += 1 * this->values_size();
  for (int i = 0; i < this->values_size(); i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->values(i));
  }

  if (!unknown_fields().empty()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = total_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PullServiceConfigRsp::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const PullServiceConfigRsp* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const PullServiceConfigRsp*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void PullServiceConfigRsp::MergeFrom(const PullServiceConfigRsp& from) {
  GOOGLE_CHECK_NE(&from, this);
  confkeys_.MergeFrom(from.confkeys_);
  values_.MergeFrom(from.values_);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_servicekey()) {
      set_servicekey(from.servicekey());
    }
    if (from.has_version()) {
      set_version(from.version());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void PullServiceConfigRsp::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PullServiceConfigRsp::CopyFrom(const PullServiceConfigRsp& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PullServiceConfigRsp::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;

  return true;
}

void PullServiceConfigRsp::Swap(PullServiceConfigRsp* other) {
  if (other != this) {
    std::swap(servicekey_, other->servicekey_);
    std::swap(version_, other->version_);
    confkeys_.Swap(&other->confkeys_);
    values_.Swap(&other->values_);
    std::swap(_has_bits_[0], other->_has_bits_[0]);
    _unknown_fields_.Swap(&other->_unknown_fields_);
    std::swap(_cached_size_, other->_cached_size_);
  }
}

::google::protobuf::Metadata PullServiceConfigRsp::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = PullServiceConfigRsp_descriptor_;
  metadata.reflection = PullServiceConfigRsp_reflection_;
  return metadata;
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace protocol

// @@protoc_insertion_point(global_scope)
