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

#include "rpc.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.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>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace protobuf_rpc_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_rpc_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Data;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_rpc_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Error;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_rpc_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Event;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_rpc_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Request;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_rpc_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Response;
}  // namespace protobuf_rpc_2eproto
namespace com {
namespace mycelius {
namespace message {
class DataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Data>
      _instance;
} _Data_default_instance_;
class RequestDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Request>
      _instance;
} _Request_default_instance_;
class ResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Response>
      _instance;
} _Response_default_instance_;
class ErrorDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Error>
      _instance;
} _Error_default_instance_;
class EventDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Event>
      _instance;
} _Event_default_instance_;
class MessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Message>
      _instance;
} _Message_default_instance_;
}  // namespace message
}  // namespace mycelius
}  // namespace com
namespace protobuf_rpc_2eproto {
static void InitDefaultsData() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::mycelius::message::_Data_default_instance_;
    new (ptr) ::com::mycelius::message::Data();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::mycelius::message::Data::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Data =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsData}, {}};

static void InitDefaultsRequest() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::mycelius::message::_Request_default_instance_;
    new (ptr) ::com::mycelius::message::Request();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::mycelius::message::Request::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Request =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsRequest}, {
      &protobuf_rpc_2eproto::scc_info_Data.base,}};

static void InitDefaultsResponse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::mycelius::message::_Response_default_instance_;
    new (ptr) ::com::mycelius::message::Response();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::mycelius::message::Response::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Response =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsResponse}, {
      &protobuf_rpc_2eproto::scc_info_Data.base,}};

static void InitDefaultsError() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::mycelius::message::_Error_default_instance_;
    new (ptr) ::com::mycelius::message::Error();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::mycelius::message::Error::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Error =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsError}, {}};

static void InitDefaultsEvent() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::mycelius::message::_Event_default_instance_;
    new (ptr) ::com::mycelius::message::Event();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::mycelius::message::Event::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Event =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsEvent}, {
      &protobuf_rpc_2eproto::scc_info_Data.base,}};

static void InitDefaultsMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::com::mycelius::message::_Message_default_instance_;
    new (ptr) ::com::mycelius::message::Message();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::com::mycelius::message::Message::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<4> scc_info_Message =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsMessage}, {
      &protobuf_rpc_2eproto::scc_info_Request.base,
      &protobuf_rpc_2eproto::scc_info_Response.base,
      &protobuf_rpc_2eproto::scc_info_Error.base,
      &protobuf_rpc_2eproto::scc_info_Event.base,}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_Data.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Request.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Response.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Error.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Event.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Message.base);
}

::google::protobuf::Metadata file_level_metadata[6];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[2];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Data, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Data, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Data, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Data, databytes_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Data, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Data, typename__),
  0,
  1,
  3,
  2,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Request, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Request, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Request, method_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Request, params_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Request, id_),
  0,
  ~0u,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Response, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Response, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Response, results_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Response, id_),
  ~0u,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Error, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Error, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Error, code_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Error, message_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Error, id_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Error, data_),
  3,
  0,
  1,
  2,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Event, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Event, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Event, code_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Event, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Event, evtdata_),
  1,
  0,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, index_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, total_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, rqst_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, rsp_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, err_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, evt_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::com::mycelius::message::Message, id_),
  8,
  6,
  7,
  2,
  3,
  4,
  5,
  0,
  1,
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 9, sizeof(::com::mycelius::message::Data)},
  { 13, 21, sizeof(::com::mycelius::message::Request)},
  { 24, 31, sizeof(::com::mycelius::message::Response)},
  { 33, 42, sizeof(::com::mycelius::message::Error)},
  { 46, 54, sizeof(::com::mycelius::message::Event)},
  { 57, 71, sizeof(::com::mycelius::message::Message)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::mycelius::message::_Data_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::mycelius::message::_Request_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::mycelius::message::_Response_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::mycelius::message::_Error_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::mycelius::message::_Event_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::com::mycelius::message::_Message_default_instance_),
};

static void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "rpc.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

static void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 6);
}

static void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n\trpc.proto\022\024com.mycelius.message\"\312\001\n\004Da"
      "ta\022\014\n\004name\030\001 \002(\t\022\021\n\tdataBytes\030\002 \002(\014\0228\n\004t"
      "ype\030\003 \002(\0162#.com.mycelius.message.Data.Da"
      "taType:\005BYTES\022\020\n\010typeName\030\004 \001(\t\"U\n\010DataT"
      "ype\022\n\n\006DOUBLE\020\000\022\013\n\007INTEGER\020\001\022\n\n\006STRING\020\002"
      "\022\t\n\005BYTES\020\003\022\014\n\010JSON_STR\020\004\022\013\n\007BOOLEAN\020\005\"Q"
      "\n\007Request\022\016\n\006method\030\001 \002(\t\022*\n\006params\030\002 \003("
      "\0132\032.com.mycelius.message.Data\022\n\n\002id\030\003 \002("
      "\t\"C\n\010Response\022+\n\007results\030\001 \003(\0132\032.com.myc"
      "elius.message.Data\022\n\n\002id\030\002 \002(\t\"@\n\005Error\022"
      "\014\n\004code\030\001 \002(\005\022\017\n\007message\030\002 \002(\t\022\n\n\002id\030\003 \002"
      "(\t\022\014\n\004data\030\004 \001(\014\"P\n\005Event\022\014\n\004code\030\001 \002(\005\022"
      "\014\n\004name\030\002 \002(\t\022+\n\007evtData\030\003 \003(\0132\032.com.myc"
      "elius.message.Data\"\375\002\n\007Message\022>\n\004type\030\001"
      " \002(\0162).com.mycelius.message.Message.Mess"
      "ageType:\005ERROR\022\r\n\005index\030\002 \002(\021\022\r\n\005total\030\003"
      " \002(\005\022+\n\004rqst\030\004 \001(\0132\035.com.mycelius.messag"
      "e.Request\022+\n\003rsp\030\005 \001(\0132\036.com.mycelius.me"
      "ssage.Response\022(\n\003err\030\006 \001(\0132\033.com.myceli"
      "us.message.Error\022(\n\003evt\030\007 \001(\0132\033.com.myce"
      "lius.message.Event\022\014\n\004data\030\010 \001(\014\022\n\n\002id\030\t"
      " \001(\t\"L\n\013MessageType\022\013\n\007REQUEST\020\000\022\014\n\010RESP"
      "ONSE\020\001\022\t\n\005ERROR\020\002\022\t\n\005EVENT\020\003\022\014\n\010TRANSFER"
      "\020\004"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 922);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "rpc.proto", &protobuf_RegisterTypes);
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_rpc_2eproto
namespace com {
namespace mycelius {
namespace message {
const ::google::protobuf::EnumDescriptor* Data_DataType_descriptor() {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_rpc_2eproto::file_level_enum_descriptors[0];
}
bool Data_DataType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const Data_DataType Data::DOUBLE;
const Data_DataType Data::INTEGER;
const Data_DataType Data::STRING;
const Data_DataType Data::BYTES;
const Data_DataType Data::JSON_STR;
const Data_DataType Data::BOOLEAN;
const Data_DataType Data::DataType_MIN;
const Data_DataType Data::DataType_MAX;
const int Data::DataType_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* Message_MessageType_descriptor() {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_rpc_2eproto::file_level_enum_descriptors[1];
}
bool Message_MessageType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const Message_MessageType Message::REQUEST;
const Message_MessageType Message::RESPONSE;
const Message_MessageType Message::ERROR;
const Message_MessageType Message::EVENT;
const Message_MessageType Message::TRANSFER;
const Message_MessageType Message::MessageType_MIN;
const Message_MessageType Message::MessageType_MAX;
const int Message::MessageType_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

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

void Data::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Data::kNameFieldNumber;
const int Data::kDataBytesFieldNumber;
const int Data::kTypeFieldNumber;
const int Data::kTypeNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Data::Data()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_rpc_2eproto::scc_info_Data.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.mycelius.message.Data)
}
Data::Data(const Data& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  databytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_databytes()) {
    databytes_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.databytes_);
  }
  typename__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_typename_()) {
    typename__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.typename__);
  }
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:com.mycelius.message.Data)
}

void Data::SharedCtor() {
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  databytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  typename__.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_ = 3;
}

Data::~Data() {
  // @@protoc_insertion_point(destructor:com.mycelius.message.Data)
  SharedDtor();
}

void Data::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  databytes_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  typename__.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Data::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Data::descriptor() {
  ::protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Data& Data::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_rpc_2eproto::scc_info_Data.base);
  return *internal_default_instance();
}

void Data::Clear() {
// @@protoc_insertion_point(message_clear_start:com.mycelius.message.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      name_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000002u) {
      databytes_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000004u) {
      typename__.ClearNonDefaultToEmptyNoArena();
    }
    type_ = 3;
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Data::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.mycelius.message.Data)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), static_cast<int>(this->name().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Data.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required bytes dataBytes = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_databytes()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required .com.mycelius.message.Data.DataType type = 3 [default = BYTES];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          int value = 0;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::com::mycelius::message::Data_DataType_IsValid(value)) {
            set_type(static_cast< ::com::mycelius::message::Data_DataType >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                3, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string typeName = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_typename_()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->typename_().data(), static_cast<int>(this->typename_().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Data.typeName");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.mycelius.message.Data)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.mycelius.message.Data)
  return false;
#undef DO_
}

void Data::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.mycelius.message.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Data.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // required bytes dataBytes = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->databytes(), output);
  }

  // required .com.mycelius.message.Data.DataType type = 3 [default = BYTES];
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      3, this->type(), output);
  }

  // optional string typeName = 4;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->typename_().data(), static_cast<int>(this->typename_().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Data.typeName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->typename_(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.mycelius.message.Data)
}

::google::protobuf::uint8* Data::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:com.mycelius.message.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Data.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  // required bytes dataBytes = 2;
  if (cached_has_bits & 0x00000002u) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        2, this->databytes(), target);
  }

  // required .com.mycelius.message.Data.DataType type = 3 [default = BYTES];
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      3, this->type(), target);
  }

  // optional string typeName = 4;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->typename_().data(), static_cast<int>(this->typename_().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Data.typeName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->typename_(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.mycelius.message.Data)
  return target;
}

size_t Data::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.mycelius.message.Data)
  size_t total_size = 0;

  if (has_name()) {
    // required string name = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  if (has_databytes()) {
    // required bytes dataBytes = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::BytesSize(
        this->databytes());
  }

  if (has_type()) {
    // required .com.mycelius.message.Data.DataType type = 3 [default = BYTES];
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
  }

  return total_size;
}
size_t Data::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.mycelius.message.Data)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x0000000b) ^ 0x0000000b) == 0) {  // All required fields are present.
    // required string name = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());

    // required bytes dataBytes = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::BytesSize(
        this->databytes());

    // required .com.mycelius.message.Data.DataType type = 3 [default = BYTES];
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // optional string typeName = 4;
  if (has_typename_()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->typename_());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Data::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.mycelius.message.Data)
  GOOGLE_DCHECK_NE(&from, this);
  const Data* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Data>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.mycelius.message.Data)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.mycelius.message.Data)
    MergeFrom(*source);
  }
}

void Data::MergeFrom(const Data& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.mycelius.message.Data)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_name();
      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_databytes();
      databytes_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.databytes_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_typename_();
      typename__.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.typename__);
    }
    if (cached_has_bits & 0x00000008u) {
      type_ = from.type_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Data::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.mycelius.message.Data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Data::CopyFrom(const Data& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.mycelius.message.Data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Data::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000000b) != 0x0000000b) return false;
  return true;
}

void Data::Swap(Data* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Data::InternalSwap(Data* other) {
  using std::swap;
  name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  databytes_.Swap(&other->databytes_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  typename__.Swap(&other->typename__, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(type_, other->type_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Data::GetMetadata() const {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages];
}

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

void Request::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Request::kMethodFieldNumber;
const int Request::kParamsFieldNumber;
const int Request::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Request::Request()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_rpc_2eproto::scc_info_Request.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.mycelius.message.Request)
}
Request::Request(const Request& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      params_(from.params_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  method_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_method()) {
    method_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.method_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_id()) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  // @@protoc_insertion_point(copy_constructor:com.mycelius.message.Request)
}

void Request::SharedCtor() {
  method_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Request::~Request() {
  // @@protoc_insertion_point(destructor:com.mycelius.message.Request)
  SharedDtor();
}

void Request::SharedDtor() {
  method_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Request::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Request::descriptor() {
  ::protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Request& Request::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_rpc_2eproto::scc_info_Request.base);
  return *internal_default_instance();
}

void Request::Clear() {
// @@protoc_insertion_point(message_clear_start:com.mycelius.message.Request)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  params_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      method_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000002u) {
      id_.ClearNonDefaultToEmptyNoArena();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Request::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.mycelius.message.Request)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string method = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_method()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->method().data(), static_cast<int>(this->method().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Request.method");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.mycelius.message.Data params = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_params()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Request.id");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.mycelius.message.Request)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.mycelius.message.Request)
  return false;
#undef DO_
}

void Request::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.mycelius.message.Request)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string method = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->method().data(), static_cast<int>(this->method().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Request.method");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->method(), output);
  }

  // repeated .com.mycelius.message.Data params = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->params_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2,
      this->params(static_cast<int>(i)),
      output);
  }

  // required string id = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Request.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.mycelius.message.Request)
}

::google::protobuf::uint8* Request::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:com.mycelius.message.Request)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string method = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->method().data(), static_cast<int>(this->method().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Request.method");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->method(), target);
  }

  // repeated .com.mycelius.message.Data params = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->params_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->params(static_cast<int>(i)), deterministic, target);
  }

  // required string id = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Request.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.mycelius.message.Request)
  return target;
}

size_t Request::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.mycelius.message.Request)
  size_t total_size = 0;

  if (has_method()) {
    // required string method = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->method());
  }

  if (has_id()) {
    // required string id = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  return total_size;
}
size_t Request::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.mycelius.message.Request)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
    // required string method = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->method());

    // required string id = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // repeated .com.mycelius.message.Data params = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->params_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->params(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Request::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.mycelius.message.Request)
  GOOGLE_DCHECK_NE(&from, this);
  const Request* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Request>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.mycelius.message.Request)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.mycelius.message.Request)
    MergeFrom(*source);
  }
}

void Request::MergeFrom(const Request& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.mycelius.message.Request)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  params_.MergeFrom(from.params_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_method();
      method_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.method_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_id();
      id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
    }
  }
}

void Request::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.mycelius.message.Request)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Request::CopyFrom(const Request& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.mycelius.message.Request)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Request::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
  if (!::google::protobuf::internal::AllAreInitialized(this->params())) return false;
  return true;
}

void Request::Swap(Request* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Request::InternalSwap(Request* other) {
  using std::swap;
  CastToBase(&params_)->InternalSwap(CastToBase(&other->params_));
  method_.Swap(&other->method_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Request::GetMetadata() const {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages];
}

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

void Response::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Response::kResultsFieldNumber;
const int Response::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Response::Response()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_rpc_2eproto::scc_info_Response.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.mycelius.message.Response)
}
Response::Response(const Response& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      results_(from.results_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_id()) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  // @@protoc_insertion_point(copy_constructor:com.mycelius.message.Response)
}

void Response::SharedCtor() {
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Response::~Response() {
  // @@protoc_insertion_point(destructor:com.mycelius.message.Response)
  SharedDtor();
}

void Response::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Response::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Response::descriptor() {
  ::protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Response& Response::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_rpc_2eproto::scc_info_Response.base);
  return *internal_default_instance();
}

void Response::Clear() {
// @@protoc_insertion_point(message_clear_start:com.mycelius.message.Response)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  results_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    id_.ClearNonDefaultToEmptyNoArena();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Response::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.mycelius.message.Response)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .com.mycelius.message.Data results = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_results()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string id = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Response.id");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.mycelius.message.Response)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.mycelius.message.Response)
  return false;
#undef DO_
}

void Response::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.mycelius.message.Response)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .com.mycelius.message.Data results = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->results_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->results(static_cast<int>(i)),
      output);
  }

  cached_has_bits = _has_bits_[0];
  // required string id = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Response.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.mycelius.message.Response)
}

::google::protobuf::uint8* Response::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:com.mycelius.message.Response)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .com.mycelius.message.Data results = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->results_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->results(static_cast<int>(i)), deterministic, target);
  }

  cached_has_bits = _has_bits_[0];
  // required string id = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Response.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.mycelius.message.Response)
  return target;
}

size_t Response::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.mycelius.message.Response)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  // required string id = 2;
  if (has_id()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }
  // repeated .com.mycelius.message.Data results = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->results_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->results(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Response::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.mycelius.message.Response)
  GOOGLE_DCHECK_NE(&from, this);
  const Response* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Response>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.mycelius.message.Response)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.mycelius.message.Response)
    MergeFrom(*source);
  }
}

void Response::MergeFrom(const Response& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.mycelius.message.Response)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  results_.MergeFrom(from.results_);
  if (from.has_id()) {
    set_has_id();
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
}

void Response::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.mycelius.message.Response)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Response::CopyFrom(const Response& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.mycelius.message.Response)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Response::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  if (!::google::protobuf::internal::AllAreInitialized(this->results())) return false;
  return true;
}

void Response::Swap(Response* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Response::InternalSwap(Response* other) {
  using std::swap;
  CastToBase(&results_)->InternalSwap(CastToBase(&other->results_));
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Response::GetMetadata() const {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages];
}

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

void Error::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Error::kCodeFieldNumber;
const int Error::kMessageFieldNumber;
const int Error::kIdFieldNumber;
const int Error::kDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Error::Error()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_rpc_2eproto::scc_info_Error.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.mycelius.message.Error)
}
Error::Error(const Error& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_message()) {
    message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_id()) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_data()) {
    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:com.mycelius.message.Error)
}

void Error::SharedCtor() {
  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  code_ = 0;
}

Error::~Error() {
  // @@protoc_insertion_point(destructor:com.mycelius.message.Error)
  SharedDtor();
}

void Error::SharedDtor() {
  message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Error::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Error::descriptor() {
  ::protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Error& Error::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_rpc_2eproto::scc_info_Error.base);
  return *internal_default_instance();
}

void Error::Clear() {
// @@protoc_insertion_point(message_clear_start:com.mycelius.message.Error)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      message_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000002u) {
      id_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000004u) {
      data_.ClearNonDefaultToEmptyNoArena();
    }
  }
  code_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Error::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.mycelius.message.Error)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required int32 code = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_code();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string message = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_message()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->message().data(), static_cast<int>(this->message().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Error.message");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Error.id");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional bytes data = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.mycelius.message.Error)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.mycelius.message.Error)
  return false;
#undef DO_
}

void Error::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.mycelius.message.Error)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 code = 1;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->code(), output);
  }

  // required string message = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->message().data(), static_cast<int>(this->message().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Error.message");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->message(), output);
  }

  // required string id = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Error.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->id(), output);
  }

  // optional bytes data = 4;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      4, this->data(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.mycelius.message.Error)
}

::google::protobuf::uint8* Error::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:com.mycelius.message.Error)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 code = 1;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->code(), target);
  }

  // required string message = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->message().data(), static_cast<int>(this->message().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Error.message");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->message(), target);
  }

  // required string id = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Error.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->id(), target);
  }

  // optional bytes data = 4;
  if (cached_has_bits & 0x00000004u) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        4, this->data(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.mycelius.message.Error)
  return target;
}

size_t Error::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.mycelius.message.Error)
  size_t total_size = 0;

  if (has_message()) {
    // required string message = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->message());
  }

  if (has_id()) {
    // required string id = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

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

  return total_size;
}
size_t Error::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.mycelius.message.Error)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x0000000b) ^ 0x0000000b) == 0) {  // All required fields are present.
    // required string message = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->message());

    // required string id = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());

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

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // optional bytes data = 4;
  if (has_data()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::BytesSize(
        this->data());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Error::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.mycelius.message.Error)
  GOOGLE_DCHECK_NE(&from, this);
  const Error* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Error>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.mycelius.message.Error)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.mycelius.message.Error)
    MergeFrom(*source);
  }
}

void Error::MergeFrom(const Error& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.mycelius.message.Error)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_message();
      message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_id();
      id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_data();
      data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
    }
    if (cached_has_bits & 0x00000008u) {
      code_ = from.code_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Error::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.mycelius.message.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Error::CopyFrom(const Error& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.mycelius.message.Error)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Error::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000000b) != 0x0000000b) return false;
  return true;
}

void Error::Swap(Error* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Error::InternalSwap(Error* other) {
  using std::swap;
  message_.Swap(&other->message_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  data_.Swap(&other->data_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(code_, other->code_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Error::GetMetadata() const {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages];
}

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

void Event::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Event::kCodeFieldNumber;
const int Event::kNameFieldNumber;
const int Event::kEvtDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Event::Event()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_rpc_2eproto::scc_info_Event.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.mycelius.message.Event)
}
Event::Event(const Event& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      evtdata_(from.evtdata_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:com.mycelius.message.Event)
}

void Event::SharedCtor() {
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  code_ = 0;
}

Event::~Event() {
  // @@protoc_insertion_point(destructor:com.mycelius.message.Event)
  SharedDtor();
}

void Event::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Event::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Event::descriptor() {
  ::protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Event& Event::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_rpc_2eproto::scc_info_Event.base);
  return *internal_default_instance();
}

void Event::Clear() {
// @@protoc_insertion_point(message_clear_start:com.mycelius.message.Event)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  evtdata_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    name_.ClearNonDefaultToEmptyNoArena();
  }
  code_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Event::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.mycelius.message.Event)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required int32 code = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_code();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string name = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), static_cast<int>(this->name().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Event.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.mycelius.message.Data evtData = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_evtdata()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.mycelius.message.Event)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.mycelius.message.Event)
  return false;
#undef DO_
}

void Event::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.mycelius.message.Event)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 code = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->code(), output);
  }

  // required string name = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Event.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->name(), output);
  }

  // repeated .com.mycelius.message.Data evtData = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->evtdata_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3,
      this->evtdata(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.mycelius.message.Event)
}

::google::protobuf::uint8* Event::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:com.mycelius.message.Event)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required int32 code = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->code(), target);
  }

  // required string name = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Event.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->name(), target);
  }

  // repeated .com.mycelius.message.Data evtData = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->evtdata_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, this->evtdata(static_cast<int>(i)), deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.mycelius.message.Event)
  return target;
}

size_t Event::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.mycelius.message.Event)
  size_t total_size = 0;

  if (has_name()) {
    // required string name = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

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

  return total_size;
}
size_t Event::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.mycelius.message.Event)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
    // required string name = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());

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

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  // repeated .com.mycelius.message.Data evtData = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->evtdata_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->evtdata(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Event::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.mycelius.message.Event)
  GOOGLE_DCHECK_NE(&from, this);
  const Event* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Event>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.mycelius.message.Event)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.mycelius.message.Event)
    MergeFrom(*source);
  }
}

void Event::MergeFrom(const Event& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.mycelius.message.Event)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  evtdata_.MergeFrom(from.evtdata_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_name();
      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
    }
    if (cached_has_bits & 0x00000002u) {
      code_ = from.code_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Event::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.mycelius.message.Event)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Event::CopyFrom(const Event& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.mycelius.message.Event)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Event::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
  if (!::google::protobuf::internal::AllAreInitialized(this->evtdata())) return false;
  return true;
}

void Event::Swap(Event* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Event::InternalSwap(Event* other) {
  using std::swap;
  CastToBase(&evtdata_)->InternalSwap(CastToBase(&other->evtdata_));
  name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(code_, other->code_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Event::GetMetadata() const {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages];
}

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

void Message::InitAsDefaultInstance() {
  ::com::mycelius::message::_Message_default_instance_._instance.get_mutable()->rqst_ = const_cast< ::com::mycelius::message::Request*>(
      ::com::mycelius::message::Request::internal_default_instance());
  ::com::mycelius::message::_Message_default_instance_._instance.get_mutable()->rsp_ = const_cast< ::com::mycelius::message::Response*>(
      ::com::mycelius::message::Response::internal_default_instance());
  ::com::mycelius::message::_Message_default_instance_._instance.get_mutable()->err_ = const_cast< ::com::mycelius::message::Error*>(
      ::com::mycelius::message::Error::internal_default_instance());
  ::com::mycelius::message::_Message_default_instance_._instance.get_mutable()->evt_ = const_cast< ::com::mycelius::message::Event*>(
      ::com::mycelius::message::Event::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Message::kTypeFieldNumber;
const int Message::kIndexFieldNumber;
const int Message::kTotalFieldNumber;
const int Message::kRqstFieldNumber;
const int Message::kRspFieldNumber;
const int Message::kErrFieldNumber;
const int Message::kEvtFieldNumber;
const int Message::kDataFieldNumber;
const int Message::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Message::Message()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_rpc_2eproto::scc_info_Message.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.mycelius.message.Message)
}
Message::Message(const Message& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_data()) {
    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_id()) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.has_rqst()) {
    rqst_ = new ::com::mycelius::message::Request(*from.rqst_);
  } else {
    rqst_ = NULL;
  }
  if (from.has_rsp()) {
    rsp_ = new ::com::mycelius::message::Response(*from.rsp_);
  } else {
    rsp_ = NULL;
  }
  if (from.has_err()) {
    err_ = new ::com::mycelius::message::Error(*from.err_);
  } else {
    err_ = NULL;
  }
  if (from.has_evt()) {
    evt_ = new ::com::mycelius::message::Event(*from.evt_);
  } else {
    evt_ = NULL;
  }
  ::memcpy(&index_, &from.index_,
    static_cast<size_t>(reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&index_)) + sizeof(type_));
  // @@protoc_insertion_point(copy_constructor:com.mycelius.message.Message)
}

void Message::SharedCtor() {
  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&rqst_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&total_) -
      reinterpret_cast<char*>(&rqst_)) + sizeof(total_));
  type_ = 2;
}

Message::~Message() {
  // @@protoc_insertion_point(destructor:com.mycelius.message.Message)
  SharedDtor();
}

void Message::SharedDtor() {
  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete rqst_;
  if (this != internal_default_instance()) delete rsp_;
  if (this != internal_default_instance()) delete err_;
  if (this != internal_default_instance()) delete evt_;
}

void Message::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Message::descriptor() {
  ::protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Message& Message::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_rpc_2eproto::scc_info_Message.base);
  return *internal_default_instance();
}

void Message::Clear() {
// @@protoc_insertion_point(message_clear_start:com.mycelius.message.Message)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      data_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000002u) {
      id_.ClearNonDefaultToEmptyNoArena();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(rqst_ != NULL);
      rqst_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      GOOGLE_DCHECK(rsp_ != NULL);
      rsp_->Clear();
    }
    if (cached_has_bits & 0x00000010u) {
      GOOGLE_DCHECK(err_ != NULL);
      err_->Clear();
    }
    if (cached_has_bits & 0x00000020u) {
      GOOGLE_DCHECK(evt_ != NULL);
      evt_->Clear();
    }
  }
  if (cached_has_bits & 192u) {
    ::memset(&index_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&total_) -
        reinterpret_cast<char*>(&index_)) + sizeof(total_));
  }
  type_ = 2;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Message::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.mycelius.message.Message)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .com.mycelius.message.Message.MessageType type = 1 [default = ERROR];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          int value = 0;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          if (::com::mycelius::message::Message_MessageType_IsValid(value)) {
            set_type(static_cast< ::com::mycelius::message::Message_MessageType >(value));
          } else {
            mutable_unknown_fields()->AddVarint(
                1, static_cast< ::google::protobuf::uint64>(value));
          }
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required sint32 index = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_index();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
                 input, &index_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 total = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_total();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &total_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.mycelius.message.Request rqst = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_rqst()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.mycelius.message.Response rsp = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_rsp()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.mycelius.message.Error err = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_err()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.mycelius.message.Event evt = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_evt()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional bytes data = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string id = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.mycelius.message.Message.id");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.mycelius.message.Message)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.mycelius.message.Message)
  return false;
#undef DO_
}

void Message::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.mycelius.message.Message)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.mycelius.message.Message.MessageType type = 1 [default = ERROR];
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->type(), output);
  }

  // required sint32 index = 2;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteSInt32(2, this->index(), output);
  }

  // required int32 total = 3;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->total(), output);
  }

  // optional .com.mycelius.message.Request rqst = 4;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_rqst(), output);
  }

  // optional .com.mycelius.message.Response rsp = 5;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->_internal_rsp(), output);
  }

  // optional .com.mycelius.message.Error err = 6;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, this->_internal_err(), output);
  }

  // optional .com.mycelius.message.Event evt = 7;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, this->_internal_evt(), output);
  }

  // optional bytes data = 8;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      8, this->data(), output);
  }

  // optional string id = 9;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Message.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      9, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.mycelius.message.Message)
}

::google::protobuf::uint8* Message::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:com.mycelius.message.Message)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.mycelius.message.Message.MessageType type = 1 [default = ERROR];
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->type(), target);
  }

  // required sint32 index = 2;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteSInt32ToArray(2, this->index(), target);
  }

  // required int32 total = 3;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->total(), target);
  }

  // optional .com.mycelius.message.Request rqst = 4;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_rqst(), deterministic, target);
  }

  // optional .com.mycelius.message.Response rsp = 5;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->_internal_rsp(), deterministic, target);
  }

  // optional .com.mycelius.message.Error err = 6;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, this->_internal_err(), deterministic, target);
  }

  // optional .com.mycelius.message.Event evt = 7;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, this->_internal_evt(), deterministic, target);
  }

  // optional bytes data = 8;
  if (cached_has_bits & 0x00000001u) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        8, this->data(), target);
  }

  // optional string id = 9;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.mycelius.message.Message.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        9, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.mycelius.message.Message)
  return target;
}

size_t Message::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.mycelius.message.Message)
  size_t total_size = 0;

  if (has_index()) {
    // required sint32 index = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::SInt32Size(
        this->index());
  }

  if (has_total()) {
    // required int32 total = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->total());
  }

  if (has_type()) {
    // required .com.mycelius.message.Message.MessageType type = 1 [default = ERROR];
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
  }

  return total_size;
}
size_t Message::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.mycelius.message.Message)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (((_has_bits_[0] & 0x000001c0) ^ 0x000001c0) == 0) {  // All required fields are present.
    // required sint32 index = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::SInt32Size(
        this->index());

    // required int32 total = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->total());

    // required .com.mycelius.message.Message.MessageType type = 1 [default = ERROR];
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  if (_has_bits_[0 / 32] & 63u) {
    // optional bytes data = 8;
    if (has_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->data());
    }

    // optional string id = 9;
    if (has_id()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->id());
    }

    // optional .com.mycelius.message.Request rqst = 4;
    if (has_rqst()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *rqst_);
    }

    // optional .com.mycelius.message.Response rsp = 5;
    if (has_rsp()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *rsp_);
    }

    // optional .com.mycelius.message.Error err = 6;
    if (has_err()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *err_);
    }

    // optional .com.mycelius.message.Event evt = 7;
    if (has_evt()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *evt_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Message::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.mycelius.message.Message)
  GOOGLE_DCHECK_NE(&from, this);
  const Message* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Message>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.mycelius.message.Message)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.mycelius.message.Message)
    MergeFrom(*source);
  }
}

void Message::MergeFrom(const Message& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.mycelius.message.Message)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_data();
      data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_id();
      id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_rqst()->::com::mycelius::message::Request::MergeFrom(from.rqst());
    }
    if (cached_has_bits & 0x00000008u) {
      mutable_rsp()->::com::mycelius::message::Response::MergeFrom(from.rsp());
    }
    if (cached_has_bits & 0x00000010u) {
      mutable_err()->::com::mycelius::message::Error::MergeFrom(from.err());
    }
    if (cached_has_bits & 0x00000020u) {
      mutable_evt()->::com::mycelius::message::Event::MergeFrom(from.evt());
    }
    if (cached_has_bits & 0x00000040u) {
      index_ = from.index_;
    }
    if (cached_has_bits & 0x00000080u) {
      total_ = from.total_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00000100u) {
    set_type(from.type());
  }
}

void Message::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.mycelius.message.Message)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Message::CopyFrom(const Message& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.mycelius.message.Message)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Message::IsInitialized() const {
  if ((_has_bits_[0] & 0x000001c0) != 0x000001c0) return false;
  if (has_rqst()) {
    if (!this->rqst_->IsInitialized()) return false;
  }
  if (has_rsp()) {
    if (!this->rsp_->IsInitialized()) return false;
  }
  if (has_err()) {
    if (!this->err_->IsInitialized()) return false;
  }
  if (has_evt()) {
    if (!this->evt_->IsInitialized()) return false;
  }
  return true;
}

void Message::Swap(Message* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Message::InternalSwap(Message* other) {
  using std::swap;
  data_.Swap(&other->data_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(rqst_, other->rqst_);
  swap(rsp_, other->rsp_);
  swap(err_, other->err_);
  swap(evt_, other->evt_);
  swap(index_, other->index_);
  swap(total_, other->total_);
  swap(type_, other->type_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata Message::GetMetadata() const {
  protobuf_rpc_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_rpc_2eproto::file_level_metadata[kIndexInFileMessages];
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace message
}  // namespace mycelius
}  // namespace com
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::com::mycelius::message::Data* Arena::CreateMaybeMessage< ::com::mycelius::message::Data >(Arena* arena) {
  return Arena::CreateInternal< ::com::mycelius::message::Data >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::com::mycelius::message::Request* Arena::CreateMaybeMessage< ::com::mycelius::message::Request >(Arena* arena) {
  return Arena::CreateInternal< ::com::mycelius::message::Request >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::com::mycelius::message::Response* Arena::CreateMaybeMessage< ::com::mycelius::message::Response >(Arena* arena) {
  return Arena::CreateInternal< ::com::mycelius::message::Response >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::com::mycelius::message::Error* Arena::CreateMaybeMessage< ::com::mycelius::message::Error >(Arena* arena) {
  return Arena::CreateInternal< ::com::mycelius::message::Error >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::com::mycelius::message::Event* Arena::CreateMaybeMessage< ::com::mycelius::message::Event >(Arena* arena) {
  return Arena::CreateInternal< ::com::mycelius::message::Event >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::com::mycelius::message::Message* Arena::CreateMaybeMessage< ::com::mycelius::message::Message >(Arena* arena) {
  return Arena::CreateInternal< ::com::mycelius::message::Message >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)