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

#ifndef PROTOBUF_rpc_5ftypes_2eproto__INCLUDED
#define PROTOBUF_rpc_5ftypes_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2006000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/unknown_field_set.h>
#include "global_extensions/field_options.pb.h"  // IWYU pragma: export
#include "global_extensions/method_options.pb.h"  // IWYU pragma: export
#include "global_extensions/message_options.pb.h"  // IWYU pragma: export
#include "global_extensions/service_options.pb.h"  // IWYU pragma: export
#include "Define.h" // for TC_PROTO_API
// @@protoc_insertion_point(includes)

namespace bgs {
namespace protocol {

// Internal implementation detail -- do not call these.
void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
void protobuf_AssignDesc_rpc_5ftypes_2eproto();
void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

class NO_RESPONSE;
class Address;
class ProcessId;
class ObjectAddress;
class NoData;
class ErrorInfo;
class FanoutTarget;
class Header;
class KafkaHeader;

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

class TC_PROTO_API NO_RESPONSE : public ::google::protobuf::Message {
 public:
  NO_RESPONSE();
  virtual ~NO_RESPONSE();

  NO_RESPONSE(const NO_RESPONSE& from);

  inline NO_RESPONSE& operator=(const NO_RESPONSE& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const NO_RESPONSE& default_instance();

  void Swap(NO_RESPONSE* other);

  // implements Message ----------------------------------------------

  NO_RESPONSE* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const NO_RESPONSE& from);
  void MergeFrom(const NO_RESPONSE& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:bgs.protocol.NO_RESPONSE)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static NO_RESPONSE* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API Address : public ::google::protobuf::Message {
 public:
  Address();
  virtual ~Address();

  Address(const Address& from);

  inline Address& operator=(const Address& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Address& default_instance();

  void Swap(Address* other);

  // implements Message ----------------------------------------------

  Address* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Address& from);
  void MergeFrom(const Address& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required string address = 1;
  inline bool has_address() const;
  inline void clear_address();
  static const int kAddressFieldNumber = 1;
  inline const ::std::string& address() const;
  inline void set_address(const ::std::string& value);
  inline void set_address(const char* value);
  inline void set_address(const char* value, size_t size);
  inline ::std::string* mutable_address();
  inline ::std::string* release_address();
  inline void set_allocated_address(::std::string* address);

  // optional uint32 port = 2;
  inline bool has_port() const;
  inline void clear_port();
  static const int kPortFieldNumber = 2;
  inline ::google::protobuf::uint32 port() const;
  inline void set_port(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.Address)
 private:
  inline void set_has_address();
  inline void clear_has_address();
  inline void set_has_port();
  inline void clear_has_port();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* address_;
  ::google::protobuf::uint32 port_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static Address* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API ProcessId : public ::google::protobuf::Message {
 public:
  ProcessId();
  virtual ~ProcessId();

  ProcessId(const ProcessId& from);

  inline ProcessId& operator=(const ProcessId& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ProcessId& default_instance();

  void Swap(ProcessId* other);

  // implements Message ----------------------------------------------

  ProcessId* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ProcessId& from);
  void MergeFrom(const ProcessId& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint32 label = 1;
  inline bool has_label() const;
  inline void clear_label();
  static const int kLabelFieldNumber = 1;
  inline ::google::protobuf::uint32 label() const;
  inline void set_label(::google::protobuf::uint32 value);

  // required uint32 epoch = 2;
  inline bool has_epoch() const;
  inline void clear_epoch();
  static const int kEpochFieldNumber = 2;
  inline ::google::protobuf::uint32 epoch() const;
  inline void set_epoch(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.ProcessId)
 private:
  inline void set_has_label();
  inline void clear_has_label();
  inline void set_has_epoch();
  inline void clear_has_epoch();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 label_;
  ::google::protobuf::uint32 epoch_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ProcessId* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API ObjectAddress : public ::google::protobuf::Message {
 public:
  ObjectAddress();
  virtual ~ObjectAddress();

  ObjectAddress(const ObjectAddress& from);

  inline ObjectAddress& operator=(const ObjectAddress& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ObjectAddress& default_instance();

  void Swap(ObjectAddress* other);

  // implements Message ----------------------------------------------

  ObjectAddress* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ObjectAddress& from);
  void MergeFrom(const ObjectAddress& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required .bgs.protocol.ProcessId host = 1;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 1;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // optional uint64 object_id = 2 [default = 0];
  inline bool has_object_id() const;
  inline void clear_object_id();
  static const int kObjectIdFieldNumber = 2;
  inline ::google::protobuf::uint64 object_id() const;
  inline void set_object_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.ObjectAddress)
 private:
  inline void set_has_host();
  inline void clear_has_host();
  inline void set_has_object_id();
  inline void clear_has_object_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::ProcessId* host_;
  ::google::protobuf::uint64 object_id_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ObjectAddress* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API NoData : public ::google::protobuf::Message {
 public:
  NoData();
  virtual ~NoData();

  NoData(const NoData& from);

  inline NoData& operator=(const NoData& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const NoData& default_instance();

  void Swap(NoData* other);

  // implements Message ----------------------------------------------

  NoData* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const NoData& from);
  void MergeFrom(const NoData& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:bgs.protocol.NoData)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static NoData* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API ErrorInfo : public ::google::protobuf::Message {
 public:
  ErrorInfo();
  virtual ~ErrorInfo();

  ErrorInfo(const ErrorInfo& from);

  inline ErrorInfo& operator=(const ErrorInfo& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ErrorInfo& default_instance();

  void Swap(ErrorInfo* other);

  // implements Message ----------------------------------------------

  ErrorInfo* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ErrorInfo& from);
  void MergeFrom(const ErrorInfo& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required .bgs.protocol.ObjectAddress object_address = 1;
  inline bool has_object_address() const;
  inline void clear_object_address();
  static const int kObjectAddressFieldNumber = 1;
  inline const ::bgs::protocol::ObjectAddress& object_address() const;
  inline ::bgs::protocol::ObjectAddress* mutable_object_address();
  inline ::bgs::protocol::ObjectAddress* release_object_address();
  inline void set_allocated_object_address(::bgs::protocol::ObjectAddress* object_address);

  // required uint32 status = 2;
  inline bool has_status() const;
  inline void clear_status();
  static const int kStatusFieldNumber = 2;
  inline ::google::protobuf::uint32 status() const;
  inline void set_status(::google::protobuf::uint32 value);

  // required uint32 service_hash = 3;
  inline bool has_service_hash() const;
  inline void clear_service_hash();
  static const int kServiceHashFieldNumber = 3;
  inline ::google::protobuf::uint32 service_hash() const;
  inline void set_service_hash(::google::protobuf::uint32 value);

  // required uint32 method_id = 4;
  inline bool has_method_id() const;
  inline void clear_method_id();
  static const int kMethodIdFieldNumber = 4;
  inline ::google::protobuf::uint32 method_id() const;
  inline void set_method_id(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.ErrorInfo)
 private:
  inline void set_has_object_address();
  inline void clear_has_object_address();
  inline void set_has_status();
  inline void clear_has_status();
  inline void set_has_service_hash();
  inline void clear_has_service_hash();
  inline void set_has_method_id();
  inline void clear_has_method_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::ObjectAddress* object_address_;
  ::google::protobuf::uint32 status_;
  ::google::protobuf::uint32 service_hash_;
  ::google::protobuf::uint32 method_id_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static ErrorInfo* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API FanoutTarget : public ::google::protobuf::Message {
 public:
  FanoutTarget();
  virtual ~FanoutTarget();

  FanoutTarget(const FanoutTarget& from);

  inline FanoutTarget& operator=(const FanoutTarget& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const FanoutTarget& default_instance();

  void Swap(FanoutTarget* other);

  // implements Message ----------------------------------------------

  FanoutTarget* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FanoutTarget& from);
  void MergeFrom(const FanoutTarget& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string client_id = 1;
  inline bool has_client_id() const;
  inline void clear_client_id();
  static const int kClientIdFieldNumber = 1;
  inline const ::std::string& client_id() const;
  inline void set_client_id(const ::std::string& value);
  inline void set_client_id(const char* value);
  inline void set_client_id(const char* value, size_t size);
  inline ::std::string* mutable_client_id();
  inline ::std::string* release_client_id();
  inline void set_allocated_client_id(::std::string* client_id);

  // optional bytes key = 2;
  inline bool has_key() const;
  inline void clear_key();
  static const int kKeyFieldNumber = 2;
  inline const ::std::string& key() const;
  inline void set_key(const ::std::string& value);
  inline void set_key(const char* value);
  inline void set_key(const void* value, size_t size);
  inline ::std::string* mutable_key();
  inline ::std::string* release_key();
  inline void set_allocated_key(::std::string* key);

  // @@protoc_insertion_point(class_scope:bgs.protocol.FanoutTarget)
 private:
  inline void set_has_client_id();
  inline void clear_has_client_id();
  inline void set_has_key();
  inline void clear_has_key();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* client_id_;
  ::std::string* key_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static FanoutTarget* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API Header : public ::google::protobuf::Message {
 public:
  Header();
  virtual ~Header();

  Header(const Header& from);

  inline Header& operator=(const Header& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Header& default_instance();

  void Swap(Header* other);

  // implements Message ----------------------------------------------

  Header* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Header& from);
  void MergeFrom(const Header& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint32 service_id = 1;
  inline bool has_service_id() const;
  inline void clear_service_id();
  static const int kServiceIdFieldNumber = 1;
  inline ::google::protobuf::uint32 service_id() const;
  inline void set_service_id(::google::protobuf::uint32 value);

  // optional uint32 method_id = 2;
  inline bool has_method_id() const;
  inline void clear_method_id();
  static const int kMethodIdFieldNumber = 2;
  inline ::google::protobuf::uint32 method_id() const;
  inline void set_method_id(::google::protobuf::uint32 value);

  // required uint32 token = 3;
  inline bool has_token() const;
  inline void clear_token();
  static const int kTokenFieldNumber = 3;
  inline ::google::protobuf::uint32 token() const;
  inline void set_token(::google::protobuf::uint32 value);

  // optional uint64 object_id = 4 [default = 0];
  inline bool has_object_id() const;
  inline void clear_object_id();
  static const int kObjectIdFieldNumber = 4;
  inline ::google::protobuf::uint64 object_id() const;
  inline void set_object_id(::google::protobuf::uint64 value);

  // optional uint32 size = 5 [default = 0];
  inline bool has_size() const;
  inline void clear_size();
  static const int kSizeFieldNumber = 5;
  inline ::google::protobuf::uint32 size() const;
  inline void set_size(::google::protobuf::uint32 value);

  // optional uint32 status = 6 [default = 0];
  inline bool has_status() const;
  inline void clear_status();
  static const int kStatusFieldNumber = 6;
  inline ::google::protobuf::uint32 status() const;
  inline void set_status(::google::protobuf::uint32 value);

  // repeated .bgs.protocol.ErrorInfo error = 7;
  inline int error_size() const;
  inline void clear_error();
  static const int kErrorFieldNumber = 7;
  inline const ::bgs::protocol::ErrorInfo& error(int index) const;
  inline ::bgs::protocol::ErrorInfo* mutable_error(int index);
  inline ::bgs::protocol::ErrorInfo* add_error();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ErrorInfo >&
      error() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ErrorInfo >*
      mutable_error();

  // optional uint64 timeout = 8;
  inline bool has_timeout() const;
  inline void clear_timeout();
  static const int kTimeoutFieldNumber = 8;
  inline ::google::protobuf::uint64 timeout() const;
  inline void set_timeout(::google::protobuf::uint64 value);

  // optional bool is_response = 9;
  inline bool has_is_response() const;
  inline void clear_is_response();
  static const int kIsResponseFieldNumber = 9;
  inline bool is_response() const;
  inline void set_is_response(bool value);

  // repeated .bgs.protocol.ProcessId forward_targets = 10;
  inline int forward_targets_size() const;
  inline void clear_forward_targets();
  static const int kForwardTargetsFieldNumber = 10;
  inline const ::bgs::protocol::ProcessId& forward_targets(int index) const;
  inline ::bgs::protocol::ProcessId* mutable_forward_targets(int index);
  inline ::bgs::protocol::ProcessId* add_forward_targets();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ProcessId >&
      forward_targets() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ProcessId >*
      mutable_forward_targets();

  // optional fixed32 service_hash = 11;
  inline bool has_service_hash() const;
  inline void clear_service_hash();
  static const int kServiceHashFieldNumber = 11;
  inline ::google::protobuf::uint32 service_hash() const;
  inline void set_service_hash(::google::protobuf::uint32 value);

  // optional string client_id = 13;
  inline bool has_client_id() const;
  inline void clear_client_id();
  static const int kClientIdFieldNumber = 13;
  inline const ::std::string& client_id() const;
  inline void set_client_id(const ::std::string& value);
  inline void set_client_id(const char* value);
  inline void set_client_id(const char* value, size_t size);
  inline ::std::string* mutable_client_id();
  inline ::std::string* release_client_id();
  inline void set_allocated_client_id(::std::string* client_id);

  // repeated .bgs.protocol.FanoutTarget fanout_target = 14;
  inline int fanout_target_size() const;
  inline void clear_fanout_target();
  static const int kFanoutTargetFieldNumber = 14;
  inline const ::bgs::protocol::FanoutTarget& fanout_target(int index) const;
  inline ::bgs::protocol::FanoutTarget* mutable_fanout_target(int index);
  inline ::bgs::protocol::FanoutTarget* add_fanout_target();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::FanoutTarget >&
      fanout_target() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::FanoutTarget >*
      mutable_fanout_target();

  // repeated string client_id_fanout_target = 15;
  inline int client_id_fanout_target_size() const;
  inline void clear_client_id_fanout_target();
  static const int kClientIdFanoutTargetFieldNumber = 15;
  inline const ::std::string& client_id_fanout_target(int index) const;
  inline ::std::string* mutable_client_id_fanout_target(int index);
  inline void set_client_id_fanout_target(int index, const ::std::string& value);
  inline void set_client_id_fanout_target(int index, const char* value);
  inline void set_client_id_fanout_target(int index, const char* value, size_t size);
  inline ::std::string* add_client_id_fanout_target();
  inline void add_client_id_fanout_target(const ::std::string& value);
  inline void add_client_id_fanout_target(const char* value);
  inline void add_client_id_fanout_target(const char* value, size_t size);
  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& client_id_fanout_target() const;
  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_client_id_fanout_target();

  // @@protoc_insertion_point(class_scope:bgs.protocol.Header)
 private:
  inline void set_has_service_id();
  inline void clear_has_service_id();
  inline void set_has_method_id();
  inline void clear_has_method_id();
  inline void set_has_token();
  inline void clear_has_token();
  inline void set_has_object_id();
  inline void clear_has_object_id();
  inline void set_has_size();
  inline void clear_has_size();
  inline void set_has_status();
  inline void clear_has_status();
  inline void set_has_timeout();
  inline void clear_has_timeout();
  inline void set_has_is_response();
  inline void clear_has_is_response();
  inline void set_has_service_hash();
  inline void clear_has_service_hash();
  inline void set_has_client_id();
  inline void clear_has_client_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 service_id_;
  ::google::protobuf::uint32 method_id_;
  ::google::protobuf::uint64 object_id_;
  ::google::protobuf::uint32 token_;
  ::google::protobuf::uint32 size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ErrorInfo > error_;
  ::google::protobuf::uint32 status_;
  bool is_response_;
  ::google::protobuf::uint64 timeout_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ProcessId > forward_targets_;
  ::std::string* client_id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::FanoutTarget > fanout_target_;
  ::google::protobuf::RepeatedPtrField< ::std::string> client_id_fanout_target_;
  ::google::protobuf::uint32 service_hash_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static Header* default_instance_;
};
// -------------------------------------------------------------------

class TC_PROTO_API KafkaHeader : public ::google::protobuf::Message {
 public:
  KafkaHeader();
  virtual ~KafkaHeader();

  KafkaHeader(const KafkaHeader& from);

  inline KafkaHeader& operator=(const KafkaHeader& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const KafkaHeader& default_instance();

  void Swap(KafkaHeader* other);

  // implements Message ----------------------------------------------

  KafkaHeader* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const KafkaHeader& from);
  void MergeFrom(const KafkaHeader& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional fixed32 service_hash = 1;
  inline bool has_service_hash() const;
  inline void clear_service_hash();
  static const int kServiceHashFieldNumber = 1;
  inline ::google::protobuf::uint32 service_hash() const;
  inline void set_service_hash(::google::protobuf::uint32 value);

  // optional uint32 method_id = 2;
  inline bool has_method_id() const;
  inline void clear_method_id();
  static const int kMethodIdFieldNumber = 2;
  inline ::google::protobuf::uint32 method_id() const;
  inline void set_method_id(::google::protobuf::uint32 value);

  // optional uint32 token = 3;
  inline bool has_token() const;
  inline void clear_token();
  static const int kTokenFieldNumber = 3;
  inline ::google::protobuf::uint32 token() const;
  inline void set_token(::google::protobuf::uint32 value);

  // optional uint64 object_id = 4 [default = 0];
  inline bool has_object_id() const;
  inline void clear_object_id();
  static const int kObjectIdFieldNumber = 4;
  inline ::google::protobuf::uint64 object_id() const;
  inline void set_object_id(::google::protobuf::uint64 value);

  // optional uint32 size = 5 [default = 0];
  inline bool has_size() const;
  inline void clear_size();
  static const int kSizeFieldNumber = 5;
  inline ::google::protobuf::uint32 size() const;
  inline void set_size(::google::protobuf::uint32 value);

  // optional uint32 status = 6 [default = 0];
  inline bool has_status() const;
  inline void clear_status();
  static const int kStatusFieldNumber = 6;
  inline ::google::protobuf::uint32 status() const;
  inline void set_status(::google::protobuf::uint32 value);

  // optional uint64 timeout = 7;
  inline bool has_timeout() const;
  inline void clear_timeout();
  static const int kTimeoutFieldNumber = 7;
  inline ::google::protobuf::uint64 timeout() const;
  inline void set_timeout(::google::protobuf::uint64 value);

  // optional .bgs.protocol.ProcessId forward_target = 8;
  inline bool has_forward_target() const;
  inline void clear_forward_target();
  static const int kForwardTargetFieldNumber = 8;
  inline const ::bgs::protocol::ProcessId& forward_target() const;
  inline ::bgs::protocol::ProcessId* mutable_forward_target();
  inline ::bgs::protocol::ProcessId* release_forward_target();
  inline void set_allocated_forward_target(::bgs::protocol::ProcessId* forward_target);

  // optional string return_topic = 9;
  inline bool has_return_topic() const;
  inline void clear_return_topic();
  static const int kReturnTopicFieldNumber = 9;
  inline const ::std::string& return_topic() const;
  inline void set_return_topic(const ::std::string& value);
  inline void set_return_topic(const char* value);
  inline void set_return_topic(const char* value, size_t size);
  inline ::std::string* mutable_return_topic();
  inline ::std::string* release_return_topic();
  inline void set_allocated_return_topic(::std::string* return_topic);

  // optional string client_id = 11;
  inline bool has_client_id() const;
  inline void clear_client_id();
  static const int kClientIdFieldNumber = 11;
  inline const ::std::string& client_id() const;
  inline void set_client_id(const ::std::string& value);
  inline void set_client_id(const char* value);
  inline void set_client_id(const char* value, size_t size);
  inline ::std::string* mutable_client_id();
  inline ::std::string* release_client_id();
  inline void set_allocated_client_id(::std::string* client_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.KafkaHeader)
 private:
  inline void set_has_service_hash();
  inline void clear_has_service_hash();
  inline void set_has_method_id();
  inline void clear_has_method_id();
  inline void set_has_token();
  inline void clear_has_token();
  inline void set_has_object_id();
  inline void clear_has_object_id();
  inline void set_has_size();
  inline void clear_has_size();
  inline void set_has_status();
  inline void clear_has_status();
  inline void set_has_timeout();
  inline void clear_has_timeout();
  inline void set_has_forward_target();
  inline void clear_has_forward_target();
  inline void set_has_return_topic();
  inline void clear_has_return_topic();
  inline void set_has_client_id();
  inline void clear_has_client_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 service_hash_;
  ::google::protobuf::uint32 method_id_;
  ::google::protobuf::uint64 object_id_;
  ::google::protobuf::uint32 token_;
  ::google::protobuf::uint32 size_;
  ::google::protobuf::uint64 timeout_;
  ::bgs::protocol::ProcessId* forward_target_;
  ::std::string* return_topic_;
  ::std::string* client_id_;
  ::google::protobuf::uint32 status_;
  friend void TC_PROTO_API protobuf_AddDesc_rpc_5ftypes_2eproto();
  friend void protobuf_AssignDesc_rpc_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_rpc_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static KafkaHeader* default_instance_;
};
// ===================================================================


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


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

// NO_RESPONSE

// -------------------------------------------------------------------

// Address

// required string address = 1;
inline bool Address::has_address() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Address::set_has_address() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Address::clear_has_address() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Address::clear_address() {
  if (address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    address_->clear();
  }
  clear_has_address();
}
inline const ::std::string& Address::address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Address.address)
  return *address_;
}
inline void Address::set_address(const ::std::string& value) {
  set_has_address();
  if (address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    address_ = new ::std::string;
  }
  address_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.Address.address)
}
inline void Address::set_address(const char* value) {
  set_has_address();
  if (address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    address_ = new ::std::string;
  }
  address_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.Address.address)
}
inline void Address::set_address(const char* value, size_t size) {
  set_has_address();
  if (address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    address_ = new ::std::string;
  }
  address_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.Address.address)
}
inline ::std::string* Address::mutable_address() {
  set_has_address();
  if (address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    address_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.Address.address)
  return address_;
}
inline ::std::string* Address::release_address() {
  clear_has_address();
  if (address_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = address_;
    address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void Address::set_allocated_address(::std::string* address) {
  if (address_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete address_;
  }
  if (address) {
    set_has_address();
    address_ = address;
  } else {
    clear_has_address();
    address_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.Address.address)
}

// optional uint32 port = 2;
inline bool Address::has_port() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Address::set_has_port() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Address::clear_has_port() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Address::clear_port() {
  port_ = 0u;
  clear_has_port();
}
inline ::google::protobuf::uint32 Address::port() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Address.port)
  return port_;
}
inline void Address::set_port(::google::protobuf::uint32 value) {
  set_has_port();
  port_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Address.port)
}

// -------------------------------------------------------------------

// ProcessId

// required uint32 label = 1;
inline bool ProcessId::has_label() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ProcessId::set_has_label() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ProcessId::clear_has_label() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ProcessId::clear_label() {
  label_ = 0u;
  clear_has_label();
}
inline ::google::protobuf::uint32 ProcessId::label() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ProcessId.label)
  return label_;
}
inline void ProcessId::set_label(::google::protobuf::uint32 value) {
  set_has_label();
  label_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.ProcessId.label)
}

// required uint32 epoch = 2;
inline bool ProcessId::has_epoch() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ProcessId::set_has_epoch() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ProcessId::clear_has_epoch() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ProcessId::clear_epoch() {
  epoch_ = 0u;
  clear_has_epoch();
}
inline ::google::protobuf::uint32 ProcessId::epoch() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ProcessId.epoch)
  return epoch_;
}
inline void ProcessId::set_epoch(::google::protobuf::uint32 value) {
  set_has_epoch();
  epoch_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.ProcessId.epoch)
}

// -------------------------------------------------------------------

// ObjectAddress

// required .bgs.protocol.ProcessId host = 1;
inline bool ObjectAddress::has_host() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ObjectAddress::set_has_host() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ObjectAddress::clear_has_host() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ObjectAddress::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& ObjectAddress::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ObjectAddress.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* ObjectAddress::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.ObjectAddress.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* ObjectAddress::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void ObjectAddress::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.ObjectAddress.host)
}

// optional uint64 object_id = 2 [default = 0];
inline bool ObjectAddress::has_object_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ObjectAddress::set_has_object_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ObjectAddress::clear_has_object_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ObjectAddress::clear_object_id() {
  object_id_ = GOOGLE_ULONGLONG(0);
  clear_has_object_id();
}
inline ::google::protobuf::uint64 ObjectAddress::object_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ObjectAddress.object_id)
  return object_id_;
}
inline void ObjectAddress::set_object_id(::google::protobuf::uint64 value) {
  set_has_object_id();
  object_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.ObjectAddress.object_id)
}

// -------------------------------------------------------------------

// NoData

// -------------------------------------------------------------------

// ErrorInfo

// required .bgs.protocol.ObjectAddress object_address = 1;
inline bool ErrorInfo::has_object_address() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ErrorInfo::set_has_object_address() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ErrorInfo::clear_has_object_address() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ErrorInfo::clear_object_address() {
  if (object_address_ != NULL) object_address_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_object_address();
}
inline const ::bgs::protocol::ObjectAddress& ErrorInfo::object_address() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ErrorInfo.object_address)
  return object_address_ != NULL ? *object_address_ : *default_instance_->object_address_;
}
inline ::bgs::protocol::ObjectAddress* ErrorInfo::mutable_object_address() {
  set_has_object_address();
  if (object_address_ == NULL) object_address_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.ErrorInfo.object_address)
  return object_address_;
}
inline ::bgs::protocol::ObjectAddress* ErrorInfo::release_object_address() {
  clear_has_object_address();
  ::bgs::protocol::ObjectAddress* temp = object_address_;
  object_address_ = NULL;
  return temp;
}
inline void ErrorInfo::set_allocated_object_address(::bgs::protocol::ObjectAddress* object_address) {
  delete object_address_;
  object_address_ = object_address;
  if (object_address) {
    set_has_object_address();
  } else {
    clear_has_object_address();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.ErrorInfo.object_address)
}

// required uint32 status = 2;
inline bool ErrorInfo::has_status() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ErrorInfo::set_has_status() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ErrorInfo::clear_has_status() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ErrorInfo::clear_status() {
  status_ = 0u;
  clear_has_status();
}
inline ::google::protobuf::uint32 ErrorInfo::status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ErrorInfo.status)
  return status_;
}
inline void ErrorInfo::set_status(::google::protobuf::uint32 value) {
  set_has_status();
  status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.ErrorInfo.status)
}

// required uint32 service_hash = 3;
inline bool ErrorInfo::has_service_hash() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ErrorInfo::set_has_service_hash() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ErrorInfo::clear_has_service_hash() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ErrorInfo::clear_service_hash() {
  service_hash_ = 0u;
  clear_has_service_hash();
}
inline ::google::protobuf::uint32 ErrorInfo::service_hash() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ErrorInfo.service_hash)
  return service_hash_;
}
inline void ErrorInfo::set_service_hash(::google::protobuf::uint32 value) {
  set_has_service_hash();
  service_hash_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.ErrorInfo.service_hash)
}

// required uint32 method_id = 4;
inline bool ErrorInfo::has_method_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ErrorInfo::set_has_method_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ErrorInfo::clear_has_method_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ErrorInfo::clear_method_id() {
  method_id_ = 0u;
  clear_has_method_id();
}
inline ::google::protobuf::uint32 ErrorInfo::method_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.ErrorInfo.method_id)
  return method_id_;
}
inline void ErrorInfo::set_method_id(::google::protobuf::uint32 value) {
  set_has_method_id();
  method_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.ErrorInfo.method_id)
}

// -------------------------------------------------------------------

// FanoutTarget

// optional string client_id = 1;
inline bool FanoutTarget::has_client_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FanoutTarget::set_has_client_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void FanoutTarget::clear_has_client_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void FanoutTarget::clear_client_id() {
  if (client_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_->clear();
  }
  clear_has_client_id();
}
inline const ::std::string& FanoutTarget::client_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.FanoutTarget.client_id)
  return *client_id_;
}
inline void FanoutTarget::set_client_id(const ::std::string& value) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.FanoutTarget.client_id)
}
inline void FanoutTarget::set_client_id(const char* value) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.FanoutTarget.client_id)
}
inline void FanoutTarget::set_client_id(const char* value, size_t size) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.FanoutTarget.client_id)
}
inline ::std::string* FanoutTarget::mutable_client_id() {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.FanoutTarget.client_id)
  return client_id_;
}
inline ::std::string* FanoutTarget::release_client_id() {
  clear_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = client_id_;
    client_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void FanoutTarget::set_allocated_client_id(::std::string* client_id) {
  if (client_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete client_id_;
  }
  if (client_id) {
    set_has_client_id();
    client_id_ = client_id;
  } else {
    clear_has_client_id();
    client_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.FanoutTarget.client_id)
}

// optional bytes key = 2;
inline bool FanoutTarget::has_key() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FanoutTarget::set_has_key() {
  _has_bits_[0] |= 0x00000002u;
}
inline void FanoutTarget::clear_has_key() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void FanoutTarget::clear_key() {
  if (key_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    key_->clear();
  }
  clear_has_key();
}
inline const ::std::string& FanoutTarget::key() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.FanoutTarget.key)
  return *key_;
}
inline void FanoutTarget::set_key(const ::std::string& value) {
  set_has_key();
  if (key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    key_ = new ::std::string;
  }
  key_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.FanoutTarget.key)
}
inline void FanoutTarget::set_key(const char* value) {
  set_has_key();
  if (key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    key_ = new ::std::string;
  }
  key_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.FanoutTarget.key)
}
inline void FanoutTarget::set_key(const void* value, size_t size) {
  set_has_key();
  if (key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    key_ = new ::std::string;
  }
  key_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.FanoutTarget.key)
}
inline ::std::string* FanoutTarget::mutable_key() {
  set_has_key();
  if (key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    key_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.FanoutTarget.key)
  return key_;
}
inline ::std::string* FanoutTarget::release_key() {
  clear_has_key();
  if (key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = key_;
    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void FanoutTarget::set_allocated_key(::std::string* key) {
  if (key_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete key_;
  }
  if (key) {
    set_has_key();
    key_ = key;
  } else {
    clear_has_key();
    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.FanoutTarget.key)
}

// -------------------------------------------------------------------

// Header

// required uint32 service_id = 1;
inline bool Header::has_service_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Header::set_has_service_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Header::clear_has_service_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Header::clear_service_id() {
  service_id_ = 0u;
  clear_has_service_id();
}
inline ::google::protobuf::uint32 Header::service_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.service_id)
  return service_id_;
}
inline void Header::set_service_id(::google::protobuf::uint32 value) {
  set_has_service_id();
  service_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.service_id)
}

// optional uint32 method_id = 2;
inline bool Header::has_method_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Header::set_has_method_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Header::clear_has_method_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Header::clear_method_id() {
  method_id_ = 0u;
  clear_has_method_id();
}
inline ::google::protobuf::uint32 Header::method_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.method_id)
  return method_id_;
}
inline void Header::set_method_id(::google::protobuf::uint32 value) {
  set_has_method_id();
  method_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.method_id)
}

// required uint32 token = 3;
inline bool Header::has_token() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Header::set_has_token() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Header::clear_has_token() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Header::clear_token() {
  token_ = 0u;
  clear_has_token();
}
inline ::google::protobuf::uint32 Header::token() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.token)
  return token_;
}
inline void Header::set_token(::google::protobuf::uint32 value) {
  set_has_token();
  token_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.token)
}

// optional uint64 object_id = 4 [default = 0];
inline bool Header::has_object_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Header::set_has_object_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Header::clear_has_object_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Header::clear_object_id() {
  object_id_ = GOOGLE_ULONGLONG(0);
  clear_has_object_id();
}
inline ::google::protobuf::uint64 Header::object_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.object_id)
  return object_id_;
}
inline void Header::set_object_id(::google::protobuf::uint64 value) {
  set_has_object_id();
  object_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.object_id)
}

// optional uint32 size = 5 [default = 0];
inline bool Header::has_size() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Header::set_has_size() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Header::clear_has_size() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Header::clear_size() {
  size_ = 0u;
  clear_has_size();
}
inline ::google::protobuf::uint32 Header::size() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.size)
  return size_;
}
inline void Header::set_size(::google::protobuf::uint32 value) {
  set_has_size();
  size_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.size)
}

// optional uint32 status = 6 [default = 0];
inline bool Header::has_status() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Header::set_has_status() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Header::clear_has_status() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Header::clear_status() {
  status_ = 0u;
  clear_has_status();
}
inline ::google::protobuf::uint32 Header::status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.status)
  return status_;
}
inline void Header::set_status(::google::protobuf::uint32 value) {
  set_has_status();
  status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.status)
}

// repeated .bgs.protocol.ErrorInfo error = 7;
inline int Header::error_size() const {
  return error_.size();
}
inline void Header::clear_error() {
  error_.Clear();
}
inline const ::bgs::protocol::ErrorInfo& Header::error(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.error)
  return error_.Get(index);
}
inline ::bgs::protocol::ErrorInfo* Header::mutable_error(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.Header.error)
  return error_.Mutable(index);
}
inline ::bgs::protocol::ErrorInfo* Header::add_error() {
  // @@protoc_insertion_point(field_add:bgs.protocol.Header.error)
  return error_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ErrorInfo >&
Header::error() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.Header.error)
  return error_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ErrorInfo >*
Header::mutable_error() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.Header.error)
  return &error_;
}

// optional uint64 timeout = 8;
inline bool Header::has_timeout() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Header::set_has_timeout() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Header::clear_has_timeout() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void Header::clear_timeout() {
  timeout_ = GOOGLE_ULONGLONG(0);
  clear_has_timeout();
}
inline ::google::protobuf::uint64 Header::timeout() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.timeout)
  return timeout_;
}
inline void Header::set_timeout(::google::protobuf::uint64 value) {
  set_has_timeout();
  timeout_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.timeout)
}

// optional bool is_response = 9;
inline bool Header::has_is_response() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void Header::set_has_is_response() {
  _has_bits_[0] |= 0x00000100u;
}
inline void Header::clear_has_is_response() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void Header::clear_is_response() {
  is_response_ = false;
  clear_has_is_response();
}
inline bool Header::is_response() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.is_response)
  return is_response_;
}
inline void Header::set_is_response(bool value) {
  set_has_is_response();
  is_response_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.is_response)
}

// repeated .bgs.protocol.ProcessId forward_targets = 10;
inline int Header::forward_targets_size() const {
  return forward_targets_.size();
}
inline void Header::clear_forward_targets() {
  forward_targets_.Clear();
}
inline const ::bgs::protocol::ProcessId& Header::forward_targets(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.forward_targets)
  return forward_targets_.Get(index);
}
inline ::bgs::protocol::ProcessId* Header::mutable_forward_targets(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.Header.forward_targets)
  return forward_targets_.Mutable(index);
}
inline ::bgs::protocol::ProcessId* Header::add_forward_targets() {
  // @@protoc_insertion_point(field_add:bgs.protocol.Header.forward_targets)
  return forward_targets_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ProcessId >&
Header::forward_targets() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.Header.forward_targets)
  return forward_targets_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::ProcessId >*
Header::mutable_forward_targets() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.Header.forward_targets)
  return &forward_targets_;
}

// optional fixed32 service_hash = 11;
inline bool Header::has_service_hash() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void Header::set_has_service_hash() {
  _has_bits_[0] |= 0x00000400u;
}
inline void Header::clear_has_service_hash() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void Header::clear_service_hash() {
  service_hash_ = 0u;
  clear_has_service_hash();
}
inline ::google::protobuf::uint32 Header::service_hash() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.service_hash)
  return service_hash_;
}
inline void Header::set_service_hash(::google::protobuf::uint32 value) {
  set_has_service_hash();
  service_hash_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.service_hash)
}

// optional string client_id = 13;
inline bool Header::has_client_id() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void Header::set_has_client_id() {
  _has_bits_[0] |= 0x00000800u;
}
inline void Header::clear_has_client_id() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void Header::clear_client_id() {
  if (client_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_->clear();
  }
  clear_has_client_id();
}
inline const ::std::string& Header::client_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.client_id)
  return *client_id_;
}
inline void Header::set_client_id(const ::std::string& value) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.client_id)
}
inline void Header::set_client_id(const char* value) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.Header.client_id)
}
inline void Header::set_client_id(const char* value, size_t size) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.Header.client_id)
}
inline ::std::string* Header::mutable_client_id() {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.Header.client_id)
  return client_id_;
}
inline ::std::string* Header::release_client_id() {
  clear_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = client_id_;
    client_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void Header::set_allocated_client_id(::std::string* client_id) {
  if (client_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete client_id_;
  }
  if (client_id) {
    set_has_client_id();
    client_id_ = client_id;
  } else {
    clear_has_client_id();
    client_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.Header.client_id)
}

// repeated .bgs.protocol.FanoutTarget fanout_target = 14;
inline int Header::fanout_target_size() const {
  return fanout_target_.size();
}
inline void Header::clear_fanout_target() {
  fanout_target_.Clear();
}
inline const ::bgs::protocol::FanoutTarget& Header::fanout_target(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.fanout_target)
  return fanout_target_.Get(index);
}
inline ::bgs::protocol::FanoutTarget* Header::mutable_fanout_target(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.Header.fanout_target)
  return fanout_target_.Mutable(index);
}
inline ::bgs::protocol::FanoutTarget* Header::add_fanout_target() {
  // @@protoc_insertion_point(field_add:bgs.protocol.Header.fanout_target)
  return fanout_target_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::FanoutTarget >&
Header::fanout_target() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.Header.fanout_target)
  return fanout_target_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::FanoutTarget >*
Header::mutable_fanout_target() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.Header.fanout_target)
  return &fanout_target_;
}

// repeated string client_id_fanout_target = 15;
inline int Header::client_id_fanout_target_size() const {
  return client_id_fanout_target_.size();
}
inline void Header::clear_client_id_fanout_target() {
  client_id_fanout_target_.Clear();
}
inline const ::std::string& Header::client_id_fanout_target(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.Header.client_id_fanout_target)
  return client_id_fanout_target_.Get(index);
}
inline ::std::string* Header::mutable_client_id_fanout_target(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.Header.client_id_fanout_target)
  return client_id_fanout_target_.Mutable(index);
}
inline void Header::set_client_id_fanout_target(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:bgs.protocol.Header.client_id_fanout_target)
  client_id_fanout_target_.Mutable(index)->assign(value);
}
inline void Header::set_client_id_fanout_target(int index, const char* value) {
  client_id_fanout_target_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.Header.client_id_fanout_target)
}
inline void Header::set_client_id_fanout_target(int index, const char* value, size_t size) {
  client_id_fanout_target_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.Header.client_id_fanout_target)
}
inline ::std::string* Header::add_client_id_fanout_target() {
  return client_id_fanout_target_.Add();
}
inline void Header::add_client_id_fanout_target(const ::std::string& value) {
  client_id_fanout_target_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.Header.client_id_fanout_target)
}
inline void Header::add_client_id_fanout_target(const char* value) {
  client_id_fanout_target_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:bgs.protocol.Header.client_id_fanout_target)
}
inline void Header::add_client_id_fanout_target(const char* value, size_t size) {
  client_id_fanout_target_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:bgs.protocol.Header.client_id_fanout_target)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
Header::client_id_fanout_target() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.Header.client_id_fanout_target)
  return client_id_fanout_target_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
Header::mutable_client_id_fanout_target() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.Header.client_id_fanout_target)
  return &client_id_fanout_target_;
}

// -------------------------------------------------------------------

// KafkaHeader

// optional fixed32 service_hash = 1;
inline bool KafkaHeader::has_service_hash() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void KafkaHeader::set_has_service_hash() {
  _has_bits_[0] |= 0x00000001u;
}
inline void KafkaHeader::clear_has_service_hash() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void KafkaHeader::clear_service_hash() {
  service_hash_ = 0u;
  clear_has_service_hash();
}
inline ::google::protobuf::uint32 KafkaHeader::service_hash() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.service_hash)
  return service_hash_;
}
inline void KafkaHeader::set_service_hash(::google::protobuf::uint32 value) {
  set_has_service_hash();
  service_hash_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.service_hash)
}

// optional uint32 method_id = 2;
inline bool KafkaHeader::has_method_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void KafkaHeader::set_has_method_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void KafkaHeader::clear_has_method_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void KafkaHeader::clear_method_id() {
  method_id_ = 0u;
  clear_has_method_id();
}
inline ::google::protobuf::uint32 KafkaHeader::method_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.method_id)
  return method_id_;
}
inline void KafkaHeader::set_method_id(::google::protobuf::uint32 value) {
  set_has_method_id();
  method_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.method_id)
}

// optional uint32 token = 3;
inline bool KafkaHeader::has_token() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void KafkaHeader::set_has_token() {
  _has_bits_[0] |= 0x00000004u;
}
inline void KafkaHeader::clear_has_token() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void KafkaHeader::clear_token() {
  token_ = 0u;
  clear_has_token();
}
inline ::google::protobuf::uint32 KafkaHeader::token() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.token)
  return token_;
}
inline void KafkaHeader::set_token(::google::protobuf::uint32 value) {
  set_has_token();
  token_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.token)
}

// optional uint64 object_id = 4 [default = 0];
inline bool KafkaHeader::has_object_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void KafkaHeader::set_has_object_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void KafkaHeader::clear_has_object_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void KafkaHeader::clear_object_id() {
  object_id_ = GOOGLE_ULONGLONG(0);
  clear_has_object_id();
}
inline ::google::protobuf::uint64 KafkaHeader::object_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.object_id)
  return object_id_;
}
inline void KafkaHeader::set_object_id(::google::protobuf::uint64 value) {
  set_has_object_id();
  object_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.object_id)
}

// optional uint32 size = 5 [default = 0];
inline bool KafkaHeader::has_size() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void KafkaHeader::set_has_size() {
  _has_bits_[0] |= 0x00000010u;
}
inline void KafkaHeader::clear_has_size() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void KafkaHeader::clear_size() {
  size_ = 0u;
  clear_has_size();
}
inline ::google::protobuf::uint32 KafkaHeader::size() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.size)
  return size_;
}
inline void KafkaHeader::set_size(::google::protobuf::uint32 value) {
  set_has_size();
  size_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.size)
}

// optional uint32 status = 6 [default = 0];
inline bool KafkaHeader::has_status() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void KafkaHeader::set_has_status() {
  _has_bits_[0] |= 0x00000020u;
}
inline void KafkaHeader::clear_has_status() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void KafkaHeader::clear_status() {
  status_ = 0u;
  clear_has_status();
}
inline ::google::protobuf::uint32 KafkaHeader::status() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.status)
  return status_;
}
inline void KafkaHeader::set_status(::google::protobuf::uint32 value) {
  set_has_status();
  status_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.status)
}

// optional uint64 timeout = 7;
inline bool KafkaHeader::has_timeout() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void KafkaHeader::set_has_timeout() {
  _has_bits_[0] |= 0x00000040u;
}
inline void KafkaHeader::clear_has_timeout() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void KafkaHeader::clear_timeout() {
  timeout_ = GOOGLE_ULONGLONG(0);
  clear_has_timeout();
}
inline ::google::protobuf::uint64 KafkaHeader::timeout() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.timeout)
  return timeout_;
}
inline void KafkaHeader::set_timeout(::google::protobuf::uint64 value) {
  set_has_timeout();
  timeout_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.timeout)
}

// optional .bgs.protocol.ProcessId forward_target = 8;
inline bool KafkaHeader::has_forward_target() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void KafkaHeader::set_has_forward_target() {
  _has_bits_[0] |= 0x00000080u;
}
inline void KafkaHeader::clear_has_forward_target() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void KafkaHeader::clear_forward_target() {
  if (forward_target_ != NULL) forward_target_->::bgs::protocol::ProcessId::Clear();
  clear_has_forward_target();
}
inline const ::bgs::protocol::ProcessId& KafkaHeader::forward_target() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.forward_target)
  return forward_target_ != NULL ? *forward_target_ : *default_instance_->forward_target_;
}
inline ::bgs::protocol::ProcessId* KafkaHeader::mutable_forward_target() {
  set_has_forward_target();
  if (forward_target_ == NULL) forward_target_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.KafkaHeader.forward_target)
  return forward_target_;
}
inline ::bgs::protocol::ProcessId* KafkaHeader::release_forward_target() {
  clear_has_forward_target();
  ::bgs::protocol::ProcessId* temp = forward_target_;
  forward_target_ = NULL;
  return temp;
}
inline void KafkaHeader::set_allocated_forward_target(::bgs::protocol::ProcessId* forward_target) {
  delete forward_target_;
  forward_target_ = forward_target;
  if (forward_target) {
    set_has_forward_target();
  } else {
    clear_has_forward_target();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.KafkaHeader.forward_target)
}

// optional string return_topic = 9;
inline bool KafkaHeader::has_return_topic() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void KafkaHeader::set_has_return_topic() {
  _has_bits_[0] |= 0x00000100u;
}
inline void KafkaHeader::clear_has_return_topic() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void KafkaHeader::clear_return_topic() {
  if (return_topic_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return_topic_->clear();
  }
  clear_has_return_topic();
}
inline const ::std::string& KafkaHeader::return_topic() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.return_topic)
  return *return_topic_;
}
inline void KafkaHeader::set_return_topic(const ::std::string& value) {
  set_has_return_topic();
  if (return_topic_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return_topic_ = new ::std::string;
  }
  return_topic_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.return_topic)
}
inline void KafkaHeader::set_return_topic(const char* value) {
  set_has_return_topic();
  if (return_topic_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return_topic_ = new ::std::string;
  }
  return_topic_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.KafkaHeader.return_topic)
}
inline void KafkaHeader::set_return_topic(const char* value, size_t size) {
  set_has_return_topic();
  if (return_topic_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return_topic_ = new ::std::string;
  }
  return_topic_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.KafkaHeader.return_topic)
}
inline ::std::string* KafkaHeader::mutable_return_topic() {
  set_has_return_topic();
  if (return_topic_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return_topic_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.KafkaHeader.return_topic)
  return return_topic_;
}
inline ::std::string* KafkaHeader::release_return_topic() {
  clear_has_return_topic();
  if (return_topic_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = return_topic_;
    return_topic_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void KafkaHeader::set_allocated_return_topic(::std::string* return_topic) {
  if (return_topic_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete return_topic_;
  }
  if (return_topic) {
    set_has_return_topic();
    return_topic_ = return_topic;
  } else {
    clear_has_return_topic();
    return_topic_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.KafkaHeader.return_topic)
}

// optional string client_id = 11;
inline bool KafkaHeader::has_client_id() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void KafkaHeader::set_has_client_id() {
  _has_bits_[0] |= 0x00000200u;
}
inline void KafkaHeader::clear_has_client_id() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void KafkaHeader::clear_client_id() {
  if (client_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_->clear();
  }
  clear_has_client_id();
}
inline const ::std::string& KafkaHeader::client_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.KafkaHeader.client_id)
  return *client_id_;
}
inline void KafkaHeader::set_client_id(const ::std::string& value) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.KafkaHeader.client_id)
}
inline void KafkaHeader::set_client_id(const char* value) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.KafkaHeader.client_id)
}
inline void KafkaHeader::set_client_id(const char* value, size_t size) {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  client_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.KafkaHeader.client_id)
}
inline ::std::string* KafkaHeader::mutable_client_id() {
  set_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    client_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.KafkaHeader.client_id)
  return client_id_;
}
inline ::std::string* KafkaHeader::release_client_id() {
  clear_has_client_id();
  if (client_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = client_id_;
    client_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void KafkaHeader::set_allocated_client_id(::std::string* client_id) {
  if (client_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete client_id_;
  }
  if (client_id) {
    set_has_client_id();
    client_id_ = client_id;
  } else {
    clear_has_client_id();
    client_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.KafkaHeader.client_id)
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {


}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_rpc_5ftypes_2eproto__INCLUDED
