You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/05/30 01:45:16 UTC

[07/15] DRILL-423: C++ Client. Initial implementation (reviewed)

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/e1e5ea0e/contrib/native/client/src/protobuf/ExecutionProtos.pb.h
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/protobuf/ExecutionProtos.pb.h b/contrib/native/client/src/protobuf/ExecutionProtos.pb.h
new file mode 100644
index 0000000..a602c1f
--- /dev/null
+++ b/contrib/native/client/src/protobuf/ExecutionProtos.pb.h
@@ -0,0 +1,251 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ExecutionProtos.proto
+
+#ifndef PROTOBUF_ExecutionProtos_2eproto__INCLUDED
+#define PROTOBUF_ExecutionProtos_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2005000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers.  Please update
+#error your headers.
+#endif
+#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers.  Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "Coordination.pb.h"
+#include "UserBitShared.pb.h"
+// @@protoc_insertion_point(includes)
+
+namespace exec {
+namespace bit {
+
+// Internal implementation detail -- do not call these.
+void  protobuf_AddDesc_ExecutionProtos_2eproto();
+void protobuf_AssignDesc_ExecutionProtos_2eproto();
+void protobuf_ShutdownFile_ExecutionProtos_2eproto();
+
+class FragmentHandle;
+
+// ===================================================================
+
+class FragmentHandle : public ::google::protobuf::Message {
+ public:
+  FragmentHandle();
+  virtual ~FragmentHandle();
+
+  FragmentHandle(const FragmentHandle& from);
+
+  inline FragmentHandle& operator=(const FragmentHandle& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const FragmentHandle& default_instance();
+
+  void Swap(FragmentHandle* other);
+
+  // implements Message ----------------------------------------------
+
+  FragmentHandle* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const FragmentHandle& from);
+  void MergeFrom(const FragmentHandle& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional .exec.shared.QueryId query_id = 1;
+  inline bool has_query_id() const;
+  inline void clear_query_id();
+  static const int kQueryIdFieldNumber = 1;
+  inline const ::exec::shared::QueryId& query_id() const;
+  inline ::exec::shared::QueryId* mutable_query_id();
+  inline ::exec::shared::QueryId* release_query_id();
+  inline void set_allocated_query_id(::exec::shared::QueryId* query_id);
+
+  // optional int32 major_fragment_id = 2;
+  inline bool has_major_fragment_id() const;
+  inline void clear_major_fragment_id();
+  static const int kMajorFragmentIdFieldNumber = 2;
+  inline ::google::protobuf::int32 major_fragment_id() const;
+  inline void set_major_fragment_id(::google::protobuf::int32 value);
+
+  // optional int32 minor_fragment_id = 3;
+  inline bool has_minor_fragment_id() const;
+  inline void clear_minor_fragment_id();
+  static const int kMinorFragmentIdFieldNumber = 3;
+  inline ::google::protobuf::int32 minor_fragment_id() const;
+  inline void set_minor_fragment_id(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:exec.bit.FragmentHandle)
+ private:
+  inline void set_has_query_id();
+  inline void clear_has_query_id();
+  inline void set_has_major_fragment_id();
+  inline void clear_has_major_fragment_id();
+  inline void set_has_minor_fragment_id();
+  inline void clear_has_minor_fragment_id();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::exec::shared::QueryId* query_id_;
+  ::google::protobuf::int32 major_fragment_id_;
+  ::google::protobuf::int32 minor_fragment_id_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
+
+  friend void  protobuf_AddDesc_ExecutionProtos_2eproto();
+  friend void protobuf_AssignDesc_ExecutionProtos_2eproto();
+  friend void protobuf_ShutdownFile_ExecutionProtos_2eproto();
+
+  void InitAsDefaultInstance();
+  static FragmentHandle* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+// FragmentHandle
+
+// optional .exec.shared.QueryId query_id = 1;
+inline bool FragmentHandle::has_query_id() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void FragmentHandle::set_has_query_id() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void FragmentHandle::clear_has_query_id() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void FragmentHandle::clear_query_id() {
+  if (query_id_ != NULL) query_id_->::exec::shared::QueryId::Clear();
+  clear_has_query_id();
+}
+inline const ::exec::shared::QueryId& FragmentHandle::query_id() const {
+  return query_id_ != NULL ? *query_id_ : *default_instance_->query_id_;
+}
+inline ::exec::shared::QueryId* FragmentHandle::mutable_query_id() {
+  set_has_query_id();
+  if (query_id_ == NULL) query_id_ = new ::exec::shared::QueryId;
+  return query_id_;
+}
+inline ::exec::shared::QueryId* FragmentHandle::release_query_id() {
+  clear_has_query_id();
+  ::exec::shared::QueryId* temp = query_id_;
+  query_id_ = NULL;
+  return temp;
+}
+inline void FragmentHandle::set_allocated_query_id(::exec::shared::QueryId* query_id) {
+  delete query_id_;
+  query_id_ = query_id;
+  if (query_id) {
+    set_has_query_id();
+  } else {
+    clear_has_query_id();
+  }
+}
+
+// optional int32 major_fragment_id = 2;
+inline bool FragmentHandle::has_major_fragment_id() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void FragmentHandle::set_has_major_fragment_id() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void FragmentHandle::clear_has_major_fragment_id() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void FragmentHandle::clear_major_fragment_id() {
+  major_fragment_id_ = 0;
+  clear_has_major_fragment_id();
+}
+inline ::google::protobuf::int32 FragmentHandle::major_fragment_id() const {
+  return major_fragment_id_;
+}
+inline void FragmentHandle::set_major_fragment_id(::google::protobuf::int32 value) {
+  set_has_major_fragment_id();
+  major_fragment_id_ = value;
+}
+
+// optional int32 minor_fragment_id = 3;
+inline bool FragmentHandle::has_minor_fragment_id() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void FragmentHandle::set_has_minor_fragment_id() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void FragmentHandle::clear_has_minor_fragment_id() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void FragmentHandle::clear_minor_fragment_id() {
+  minor_fragment_id_ = 0;
+  clear_has_minor_fragment_id();
+}
+inline ::google::protobuf::int32 FragmentHandle::minor_fragment_id() const {
+  return minor_fragment_id_;
+}
+inline void FragmentHandle::set_minor_fragment_id(::google::protobuf::int32 value) {
+  set_has_minor_fragment_id();
+  minor_fragment_id_ = value;
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace bit
+}  // namespace exec
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+
+
+}  // namespace google
+}  // namespace protobuf
+#endif  // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif  // PROTOBUF_ExecutionProtos_2eproto__INCLUDED

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/e1e5ea0e/contrib/native/client/src/protobuf/GeneralRPC.pb.cc
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/protobuf/GeneralRPC.pb.cc b/contrib/native/client/src/protobuf/GeneralRPC.pb.cc
new file mode 100644
index 0000000..68929cc
--- /dev/null
+++ b/contrib/native/client/src/protobuf/GeneralRPC.pb.cc
@@ -0,0 +1,1381 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: GeneralRPC.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "GeneralRPC.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace exec {
+namespace rpc {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Ack_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  Ack_reflection_ = NULL;
+const ::google::protobuf::Descriptor* RpcHeader_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  RpcHeader_reflection_ = NULL;
+const ::google::protobuf::Descriptor* CompleteRpcMessage_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  CompleteRpcMessage_reflection_ = NULL;
+const ::google::protobuf::Descriptor* RpcFailure_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  RpcFailure_reflection_ = NULL;
+const ::google::protobuf::EnumDescriptor* RpcMode_descriptor_ = NULL;
+
+}  // namespace
+
+
+void protobuf_AssignDesc_GeneralRPC_2eproto() {
+  protobuf_AddDesc_GeneralRPC_2eproto();
+  const ::google::protobuf::FileDescriptor* file =
+    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+      "GeneralRPC.proto");
+  GOOGLE_CHECK(file != NULL);
+  Ack_descriptor_ = file->message_type(0);
+  static const int Ack_offsets_[1] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Ack, ok_),
+  };
+  Ack_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      Ack_descriptor_,
+      Ack::default_instance_,
+      Ack_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Ack, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Ack, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(Ack));
+  RpcHeader_descriptor_ = file->message_type(1);
+  static const int RpcHeader_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcHeader, mode_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcHeader, coordination_id_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcHeader, rpc_type_),
+  };
+  RpcHeader_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      RpcHeader_descriptor_,
+      RpcHeader::default_instance_,
+      RpcHeader_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcHeader, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcHeader, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(RpcHeader));
+  CompleteRpcMessage_descriptor_ = file->message_type(2);
+  static const int CompleteRpcMessage_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CompleteRpcMessage, header_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CompleteRpcMessage, protobuf_body_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CompleteRpcMessage, raw_body_),
+  };
+  CompleteRpcMessage_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      CompleteRpcMessage_descriptor_,
+      CompleteRpcMessage::default_instance_,
+      CompleteRpcMessage_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CompleteRpcMessage, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CompleteRpcMessage, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(CompleteRpcMessage));
+  RpcFailure_descriptor_ = file->message_type(3);
+  static const int RpcFailure_offsets_[4] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcFailure, error_id_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcFailure, error_code_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcFailure, short_error_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcFailure, long_error_),
+  };
+  RpcFailure_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      RpcFailure_descriptor_,
+      RpcFailure::default_instance_,
+      RpcFailure_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcFailure, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcFailure, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(RpcFailure));
+  RpcMode_descriptor_ = file->enum_type(0);
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+                 &protobuf_AssignDesc_GeneralRPC_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    Ack_descriptor_, &Ack::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    RpcHeader_descriptor_, &RpcHeader::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    CompleteRpcMessage_descriptor_, &CompleteRpcMessage::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    RpcFailure_descriptor_, &RpcFailure::default_instance());
+}
+
+}  // namespace
+
+void protobuf_ShutdownFile_GeneralRPC_2eproto() {
+  delete Ack::default_instance_;
+  delete Ack_reflection_;
+  delete RpcHeader::default_instance_;
+  delete RpcHeader_reflection_;
+  delete CompleteRpcMessage::default_instance_;
+  delete CompleteRpcMessage_reflection_;
+  delete RpcFailure::default_instance_;
+  delete RpcFailure_reflection_;
+}
+
+void protobuf_AddDesc_GeneralRPC_2eproto() {
+  static bool already_here = false;
+  if (already_here) return;
+  already_here = true;
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  ::exec::protobuf_AddDesc_Coordination_2eproto();
+  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+    "\n\020GeneralRPC.proto\022\010exec.rpc\032\022Coordinati"
+    "on.proto\"\021\n\003Ack\022\n\n\002ok\030\001 \001(\010\"W\n\tRpcHeader"
+    "\022\037\n\004mode\030\001 \001(\0162\021.exec.rpc.RpcMode\022\027\n\017coo"
+    "rdination_id\030\002 \001(\005\022\020\n\010rpc_type\030\003 \001(\005\"b\n\022"
+    "CompleteRpcMessage\022#\n\006header\030\001 \001(\0132\023.exe"
+    "c.rpc.RpcHeader\022\025\n\rprotobuf_body\030\002 \001(\014\022\020"
+    "\n\010raw_body\030\003 \001(\014\"[\n\nRpcFailure\022\020\n\010error_"
+    "id\030\001 \001(\003\022\022\n\nerror_code\030\002 \001(\005\022\023\n\013short_er"
+    "ror\030\003 \001(\t\022\022\n\nlong_error\030\004 \001(\t*:\n\007RpcMode"
+    "\022\013\n\007REQUEST\020\000\022\014\n\010RESPONSE\020\001\022\024\n\020RESPONSE_"
+    "FAILURE\020\002B1\n\033org.apache.drill.exec.proto"
+    "B\020GeneralRPCProtosH\001", 460);
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+    "GeneralRPC.proto", &protobuf_RegisterTypes);
+  Ack::default_instance_ = new Ack();
+  RpcHeader::default_instance_ = new RpcHeader();
+  CompleteRpcMessage::default_instance_ = new CompleteRpcMessage();
+  RpcFailure::default_instance_ = new RpcFailure();
+  Ack::default_instance_->InitAsDefaultInstance();
+  RpcHeader::default_instance_->InitAsDefaultInstance();
+  CompleteRpcMessage::default_instance_->InitAsDefaultInstance();
+  RpcFailure::default_instance_->InitAsDefaultInstance();
+  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_GeneralRPC_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_GeneralRPC_2eproto {
+  StaticDescriptorInitializer_GeneralRPC_2eproto() {
+    protobuf_AddDesc_GeneralRPC_2eproto();
+  }
+} static_descriptor_initializer_GeneralRPC_2eproto_;
+const ::google::protobuf::EnumDescriptor* RpcMode_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return RpcMode_descriptor_;
+}
+bool RpcMode_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Ack::kOkFieldNumber;
+#endif  // !_MSC_VER
+
+Ack::Ack()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void Ack::InitAsDefaultInstance() {
+}
+
+Ack::Ack(const Ack& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void Ack::SharedCtor() {
+  _cached_size_ = 0;
+  ok_ = false;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+Ack::~Ack() {
+  SharedDtor();
+}
+
+void Ack::SharedDtor() {
+  if (this != default_instance_) {
+  }
+}
+
+void Ack::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Ack::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return Ack_descriptor_;
+}
+
+const Ack& Ack::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_GeneralRPC_2eproto();
+  return *default_instance_;
+}
+
+Ack* Ack::default_instance_ = NULL;
+
+Ack* Ack::New() const {
+  return new Ack;
+}
+
+void Ack::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    ok_ = false;
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool Ack::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional bool ok = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &ok_)));
+          set_has_ok();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectAtEnd()) return true;
+        break;
+      }
+
+      default: {
+      handle_uninterpreted:
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          return true;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void Ack::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // optional bool ok = 1;
+  if (has_ok()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->ok(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* Ack::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // optional bool ok = 1;
+  if (has_ok()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->ok(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int Ack::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // optional bool ok = 1;
+    if (has_ok()) {
+      total_size += 1 + 1;
+    }
+
+  }
+  if (!unknown_fields().empty()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = total_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void Ack::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const Ack* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const Ack*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void Ack::MergeFrom(const Ack& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_ok()) {
+      set_ok(from.ok());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void Ack::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void Ack::CopyFrom(const Ack& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Ack::IsInitialized() const {
+
+  return true;
+}
+
+void Ack::Swap(Ack* other) {
+  if (other != this) {
+    std::swap(ok_, other->ok_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata Ack::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = Ack_descriptor_;
+  metadata.reflection = Ack_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int RpcHeader::kModeFieldNumber;
+const int RpcHeader::kCoordinationIdFieldNumber;
+const int RpcHeader::kRpcTypeFieldNumber;
+#endif  // !_MSC_VER
+
+RpcHeader::RpcHeader()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void RpcHeader::InitAsDefaultInstance() {
+}
+
+RpcHeader::RpcHeader(const RpcHeader& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void RpcHeader::SharedCtor() {
+  _cached_size_ = 0;
+  mode_ = 0;
+  coordination_id_ = 0;
+  rpc_type_ = 0;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+RpcHeader::~RpcHeader() {
+  SharedDtor();
+}
+
+void RpcHeader::SharedDtor() {
+  if (this != default_instance_) {
+  }
+}
+
+void RpcHeader::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RpcHeader::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return RpcHeader_descriptor_;
+}
+
+const RpcHeader& RpcHeader::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_GeneralRPC_2eproto();
+  return *default_instance_;
+}
+
+RpcHeader* RpcHeader::default_instance_ = NULL;
+
+RpcHeader* RpcHeader::New() const {
+  return new RpcHeader;
+}
+
+void RpcHeader::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    mode_ = 0;
+    coordination_id_ = 0;
+    rpc_type_ = 0;
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool RpcHeader::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional .exec.rpc.RpcMode mode = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::rpc::RpcMode_IsValid(value)) {
+            set_mode(static_cast< ::exec::rpc::RpcMode >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(1, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(16)) goto parse_coordination_id;
+        break;
+      }
+
+      // optional int32 coordination_id = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_coordination_id:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &coordination_id_)));
+          set_has_coordination_id();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(24)) goto parse_rpc_type;
+        break;
+      }
+
+      // optional int32 rpc_type = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_rpc_type:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &rpc_type_)));
+          set_has_rpc_type();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectAtEnd()) return true;
+        break;
+      }
+
+      default: {
+      handle_uninterpreted:
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          return true;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void RpcHeader::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // optional .exec.rpc.RpcMode mode = 1;
+  if (has_mode()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->mode(), output);
+  }
+
+  // optional int32 coordination_id = 2;
+  if (has_coordination_id()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->coordination_id(), output);
+  }
+
+  // optional int32 rpc_type = 3;
+  if (has_rpc_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->rpc_type(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* RpcHeader::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // optional .exec.rpc.RpcMode mode = 1;
+  if (has_mode()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->mode(), target);
+  }
+
+  // optional int32 coordination_id = 2;
+  if (has_coordination_id()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->coordination_id(), target);
+  }
+
+  // optional int32 rpc_type = 3;
+  if (has_rpc_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->rpc_type(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int RpcHeader::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // optional .exec.rpc.RpcMode mode = 1;
+    if (has_mode()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->mode());
+    }
+
+    // optional int32 coordination_id = 2;
+    if (has_coordination_id()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->coordination_id());
+    }
+
+    // optional int32 rpc_type = 3;
+    if (has_rpc_type()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->rpc_type());
+    }
+
+  }
+  if (!unknown_fields().empty()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = total_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void RpcHeader::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const RpcHeader* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const RpcHeader*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void RpcHeader::MergeFrom(const RpcHeader& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_mode()) {
+      set_mode(from.mode());
+    }
+    if (from.has_coordination_id()) {
+      set_coordination_id(from.coordination_id());
+    }
+    if (from.has_rpc_type()) {
+      set_rpc_type(from.rpc_type());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void RpcHeader::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RpcHeader::CopyFrom(const RpcHeader& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RpcHeader::IsInitialized() const {
+
+  return true;
+}
+
+void RpcHeader::Swap(RpcHeader* other) {
+  if (other != this) {
+    std::swap(mode_, other->mode_);
+    std::swap(coordination_id_, other->coordination_id_);
+    std::swap(rpc_type_, other->rpc_type_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata RpcHeader::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = RpcHeader_descriptor_;
+  metadata.reflection = RpcHeader_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int CompleteRpcMessage::kHeaderFieldNumber;
+const int CompleteRpcMessage::kProtobufBodyFieldNumber;
+const int CompleteRpcMessage::kRawBodyFieldNumber;
+#endif  // !_MSC_VER
+
+CompleteRpcMessage::CompleteRpcMessage()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void CompleteRpcMessage::InitAsDefaultInstance() {
+  header_ = const_cast< ::exec::rpc::RpcHeader*>(&::exec::rpc::RpcHeader::default_instance());
+}
+
+CompleteRpcMessage::CompleteRpcMessage(const CompleteRpcMessage& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void CompleteRpcMessage::SharedCtor() {
+  _cached_size_ = 0;
+  header_ = NULL;
+  protobuf_body_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  raw_body_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+CompleteRpcMessage::~CompleteRpcMessage() {
+  SharedDtor();
+}
+
+void CompleteRpcMessage::SharedDtor() {
+  if (protobuf_body_ != &::google::protobuf::internal::kEmptyString) {
+    delete protobuf_body_;
+  }
+  if (raw_body_ != &::google::protobuf::internal::kEmptyString) {
+    delete raw_body_;
+  }
+  if (this != default_instance_) {
+    delete header_;
+  }
+}
+
+void CompleteRpcMessage::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* CompleteRpcMessage::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return CompleteRpcMessage_descriptor_;
+}
+
+const CompleteRpcMessage& CompleteRpcMessage::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_GeneralRPC_2eproto();
+  return *default_instance_;
+}
+
+CompleteRpcMessage* CompleteRpcMessage::default_instance_ = NULL;
+
+CompleteRpcMessage* CompleteRpcMessage::New() const {
+  return new CompleteRpcMessage;
+}
+
+void CompleteRpcMessage::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (has_header()) {
+      if (header_ != NULL) header_->::exec::rpc::RpcHeader::Clear();
+    }
+    if (has_protobuf_body()) {
+      if (protobuf_body_ != &::google::protobuf::internal::kEmptyString) {
+        protobuf_body_->clear();
+      }
+    }
+    if (has_raw_body()) {
+      if (raw_body_ != &::google::protobuf::internal::kEmptyString) {
+        raw_body_->clear();
+      }
+    }
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool CompleteRpcMessage::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional .exec.rpc.RpcHeader header = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_header()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(18)) goto parse_protobuf_body;
+        break;
+      }
+
+      // optional bytes protobuf_body = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_protobuf_body:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_protobuf_body()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(26)) goto parse_raw_body;
+        break;
+      }
+
+      // optional bytes raw_body = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_raw_body:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_raw_body()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectAtEnd()) return true;
+        break;
+      }
+
+      default: {
+      handle_uninterpreted:
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          return true;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void CompleteRpcMessage::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // optional .exec.rpc.RpcHeader header = 1;
+  if (has_header()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      1, this->header(), output);
+  }
+
+  // optional bytes protobuf_body = 2;
+  if (has_protobuf_body()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytes(
+      2, this->protobuf_body(), output);
+  }
+
+  // optional bytes raw_body = 3;
+  if (has_raw_body()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytes(
+      3, this->raw_body(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* CompleteRpcMessage::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // optional .exec.rpc.RpcHeader header = 1;
+  if (has_header()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteMessageNoVirtualToArray(
+        1, this->header(), target);
+  }
+
+  // optional bytes protobuf_body = 2;
+  if (has_protobuf_body()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        2, this->protobuf_body(), target);
+  }
+
+  // optional bytes raw_body = 3;
+  if (has_raw_body()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        3, this->raw_body(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int CompleteRpcMessage::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // optional .exec.rpc.RpcHeader header = 1;
+    if (has_header()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->header());
+    }
+
+    // optional bytes protobuf_body = 2;
+    if (has_protobuf_body()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::BytesSize(
+          this->protobuf_body());
+    }
+
+    // optional bytes raw_body = 3;
+    if (has_raw_body()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::BytesSize(
+          this->raw_body());
+    }
+
+  }
+  if (!unknown_fields().empty()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = total_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void CompleteRpcMessage::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const CompleteRpcMessage* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const CompleteRpcMessage*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void CompleteRpcMessage::MergeFrom(const CompleteRpcMessage& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_header()) {
+      mutable_header()->::exec::rpc::RpcHeader::MergeFrom(from.header());
+    }
+    if (from.has_protobuf_body()) {
+      set_protobuf_body(from.protobuf_body());
+    }
+    if (from.has_raw_body()) {
+      set_raw_body(from.raw_body());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void CompleteRpcMessage::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void CompleteRpcMessage::CopyFrom(const CompleteRpcMessage& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool CompleteRpcMessage::IsInitialized() const {
+
+  return true;
+}
+
+void CompleteRpcMessage::Swap(CompleteRpcMessage* other) {
+  if (other != this) {
+    std::swap(header_, other->header_);
+    std::swap(protobuf_body_, other->protobuf_body_);
+    std::swap(raw_body_, other->raw_body_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata CompleteRpcMessage::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = CompleteRpcMessage_descriptor_;
+  metadata.reflection = CompleteRpcMessage_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int RpcFailure::kErrorIdFieldNumber;
+const int RpcFailure::kErrorCodeFieldNumber;
+const int RpcFailure::kShortErrorFieldNumber;
+const int RpcFailure::kLongErrorFieldNumber;
+#endif  // !_MSC_VER
+
+RpcFailure::RpcFailure()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void RpcFailure::InitAsDefaultInstance() {
+}
+
+RpcFailure::RpcFailure(const RpcFailure& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void RpcFailure::SharedCtor() {
+  _cached_size_ = 0;
+  error_id_ = GOOGLE_LONGLONG(0);
+  error_code_ = 0;
+  short_error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  long_error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+RpcFailure::~RpcFailure() {
+  SharedDtor();
+}
+
+void RpcFailure::SharedDtor() {
+  if (short_error_ != &::google::protobuf::internal::kEmptyString) {
+    delete short_error_;
+  }
+  if (long_error_ != &::google::protobuf::internal::kEmptyString) {
+    delete long_error_;
+  }
+  if (this != default_instance_) {
+  }
+}
+
+void RpcFailure::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RpcFailure::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return RpcFailure_descriptor_;
+}
+
+const RpcFailure& RpcFailure::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_GeneralRPC_2eproto();
+  return *default_instance_;
+}
+
+RpcFailure* RpcFailure::default_instance_ = NULL;
+
+RpcFailure* RpcFailure::New() const {
+  return new RpcFailure;
+}
+
+void RpcFailure::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    error_id_ = GOOGLE_LONGLONG(0);
+    error_code_ = 0;
+    if (has_short_error()) {
+      if (short_error_ != &::google::protobuf::internal::kEmptyString) {
+        short_error_->clear();
+      }
+    }
+    if (has_long_error()) {
+      if (long_error_ != &::google::protobuf::internal::kEmptyString) {
+        long_error_->clear();
+      }
+    }
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool RpcFailure::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional int64 error_id = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+                 input, &error_id_)));
+          set_has_error_id();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(16)) goto parse_error_code;
+        break;
+      }
+
+      // optional int32 error_code = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_error_code:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &error_code_)));
+          set_has_error_code();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(26)) goto parse_short_error;
+        break;
+      }
+
+      // optional string short_error = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_short_error:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_short_error()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->short_error().data(), this->short_error().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(34)) goto parse_long_error;
+        break;
+      }
+
+      // optional string long_error = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_long_error:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_long_error()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->long_error().data(), this->long_error().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectAtEnd()) return true;
+        break;
+      }
+
+      default: {
+      handle_uninterpreted:
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          return true;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void RpcFailure::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // optional int64 error_id = 1;
+  if (has_error_id()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->error_id(), output);
+  }
+
+  // optional int32 error_code = 2;
+  if (has_error_code()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->error_code(), output);
+  }
+
+  // optional string short_error = 3;
+  if (has_short_error()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->short_error().data(), this->short_error().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      3, this->short_error(), output);
+  }
+
+  // optional string long_error = 4;
+  if (has_long_error()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->long_error().data(), this->long_error().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      4, this->long_error(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* RpcFailure::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // optional int64 error_id = 1;
+  if (has_error_id()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->error_id(), target);
+  }
+
+  // optional int32 error_code = 2;
+  if (has_error_code()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->error_code(), target);
+  }
+
+  // optional string short_error = 3;
+  if (has_short_error()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->short_error().data(), this->short_error().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->short_error(), target);
+  }
+
+  // optional string long_error = 4;
+  if (has_long_error()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->long_error().data(), this->long_error().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->long_error(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int RpcFailure::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // optional int64 error_id = 1;
+    if (has_error_id()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int64Size(
+          this->error_id());
+    }
+
+    // optional int32 error_code = 2;
+    if (has_error_code()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->error_code());
+    }
+
+    // optional string short_error = 3;
+    if (has_short_error()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->short_error());
+    }
+
+    // optional string long_error = 4;
+    if (has_long_error()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->long_error());
+    }
+
+  }
+  if (!unknown_fields().empty()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = total_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void RpcFailure::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const RpcFailure* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const RpcFailure*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void RpcFailure::MergeFrom(const RpcFailure& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_error_id()) {
+      set_error_id(from.error_id());
+    }
+    if (from.has_error_code()) {
+      set_error_code(from.error_code());
+    }
+    if (from.has_short_error()) {
+      set_short_error(from.short_error());
+    }
+    if (from.has_long_error()) {
+      set_long_error(from.long_error());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void RpcFailure::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RpcFailure::CopyFrom(const RpcFailure& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RpcFailure::IsInitialized() const {
+
+  return true;
+}
+
+void RpcFailure::Swap(RpcFailure* other) {
+  if (other != this) {
+    std::swap(error_id_, other->error_id_);
+    std::swap(error_code_, other->error_code_);
+    std::swap(short_error_, other->short_error_);
+    std::swap(long_error_, other->long_error_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata RpcFailure::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = RpcFailure_descriptor_;
+  metadata.reflection = RpcFailure_reflection_;
+  return metadata;
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace rpc
+}  // namespace exec
+
+// @@protoc_insertion_point(global_scope)

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/e1e5ea0e/contrib/native/client/src/protobuf/GeneralRPC.pb.h
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/protobuf/GeneralRPC.pb.h b/contrib/native/client/src/protobuf/GeneralRPC.pb.h
new file mode 100644
index 0000000..cfafd65
--- /dev/null
+++ b/contrib/native/client/src/protobuf/GeneralRPC.pb.h
@@ -0,0 +1,975 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: GeneralRPC.proto
+
+#ifndef PROTOBUF_GeneralRPC_2eproto__INCLUDED
+#define PROTOBUF_GeneralRPC_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2005000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers.  Please update
+#error your headers.
+#endif
+#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers.  Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "Coordination.pb.h"
+// @@protoc_insertion_point(includes)
+
+namespace exec {
+namespace rpc {
+
+// Internal implementation detail -- do not call these.
+void  protobuf_AddDesc_GeneralRPC_2eproto();
+void protobuf_AssignDesc_GeneralRPC_2eproto();
+void protobuf_ShutdownFile_GeneralRPC_2eproto();
+
+class Ack;
+class RpcHeader;
+class CompleteRpcMessage;
+class RpcFailure;
+
+enum RpcMode {
+  REQUEST = 0,
+  RESPONSE = 1,
+  RESPONSE_FAILURE = 2
+};
+bool RpcMode_IsValid(int value);
+const RpcMode RpcMode_MIN = REQUEST;
+const RpcMode RpcMode_MAX = RESPONSE_FAILURE;
+const int RpcMode_ARRAYSIZE = RpcMode_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* RpcMode_descriptor();
+inline const ::std::string& RpcMode_Name(RpcMode value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    RpcMode_descriptor(), value);
+}
+inline bool RpcMode_Parse(
+    const ::std::string& name, RpcMode* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<RpcMode>(
+    RpcMode_descriptor(), name, value);
+}
+// ===================================================================
+
+class Ack : public ::google::protobuf::Message {
+ public:
+  Ack();
+  virtual ~Ack();
+
+  Ack(const Ack& from);
+
+  inline Ack& operator=(const Ack& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const Ack& default_instance();
+
+  void Swap(Ack* other);
+
+  // implements Message ----------------------------------------------
+
+  Ack* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const Ack& from);
+  void MergeFrom(const Ack& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional bool ok = 1;
+  inline bool has_ok() const;
+  inline void clear_ok();
+  static const int kOkFieldNumber = 1;
+  inline bool ok() const;
+  inline void set_ok(bool value);
+
+  // @@protoc_insertion_point(class_scope:exec.rpc.Ack)
+ private:
+  inline void set_has_ok();
+  inline void clear_has_ok();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  bool ok_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
+
+  friend void  protobuf_AddDesc_GeneralRPC_2eproto();
+  friend void protobuf_AssignDesc_GeneralRPC_2eproto();
+  friend void protobuf_ShutdownFile_GeneralRPC_2eproto();
+
+  void InitAsDefaultInstance();
+  static Ack* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class RpcHeader : public ::google::protobuf::Message {
+ public:
+  RpcHeader();
+  virtual ~RpcHeader();
+
+  RpcHeader(const RpcHeader& from);
+
+  inline RpcHeader& operator=(const RpcHeader& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const RpcHeader& default_instance();
+
+  void Swap(RpcHeader* other);
+
+  // implements Message ----------------------------------------------
+
+  RpcHeader* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const RpcHeader& from);
+  void MergeFrom(const RpcHeader& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional .exec.rpc.RpcMode mode = 1;
+  inline bool has_mode() const;
+  inline void clear_mode();
+  static const int kModeFieldNumber = 1;
+  inline ::exec::rpc::RpcMode mode() const;
+  inline void set_mode(::exec::rpc::RpcMode value);
+
+  // optional int32 coordination_id = 2;
+  inline bool has_coordination_id() const;
+  inline void clear_coordination_id();
+  static const int kCoordinationIdFieldNumber = 2;
+  inline ::google::protobuf::int32 coordination_id() const;
+  inline void set_coordination_id(::google::protobuf::int32 value);
+
+  // optional int32 rpc_type = 3;
+  inline bool has_rpc_type() const;
+  inline void clear_rpc_type();
+  static const int kRpcTypeFieldNumber = 3;
+  inline ::google::protobuf::int32 rpc_type() const;
+  inline void set_rpc_type(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:exec.rpc.RpcHeader)
+ private:
+  inline void set_has_mode();
+  inline void clear_has_mode();
+  inline void set_has_coordination_id();
+  inline void clear_has_coordination_id();
+  inline void set_has_rpc_type();
+  inline void clear_has_rpc_type();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  int mode_;
+  ::google::protobuf::int32 coordination_id_;
+  ::google::protobuf::int32 rpc_type_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
+
+  friend void  protobuf_AddDesc_GeneralRPC_2eproto();
+  friend void protobuf_AssignDesc_GeneralRPC_2eproto();
+  friend void protobuf_ShutdownFile_GeneralRPC_2eproto();
+
+  void InitAsDefaultInstance();
+  static RpcHeader* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class CompleteRpcMessage : public ::google::protobuf::Message {
+ public:
+  CompleteRpcMessage();
+  virtual ~CompleteRpcMessage();
+
+  CompleteRpcMessage(const CompleteRpcMessage& from);
+
+  inline CompleteRpcMessage& operator=(const CompleteRpcMessage& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const CompleteRpcMessage& default_instance();
+
+  void Swap(CompleteRpcMessage* other);
+
+  // implements Message ----------------------------------------------
+
+  CompleteRpcMessage* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const CompleteRpcMessage& from);
+  void MergeFrom(const CompleteRpcMessage& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional .exec.rpc.RpcHeader header = 1;
+  inline bool has_header() const;
+  inline void clear_header();
+  static const int kHeaderFieldNumber = 1;
+  inline const ::exec::rpc::RpcHeader& header() const;
+  inline ::exec::rpc::RpcHeader* mutable_header();
+  inline ::exec::rpc::RpcHeader* release_header();
+  inline void set_allocated_header(::exec::rpc::RpcHeader* header);
+
+  // optional bytes protobuf_body = 2;
+  inline bool has_protobuf_body() const;
+  inline void clear_protobuf_body();
+  static const int kProtobufBodyFieldNumber = 2;
+  inline const ::std::string& protobuf_body() const;
+  inline void set_protobuf_body(const ::std::string& value);
+  inline void set_protobuf_body(const char* value);
+  inline void set_protobuf_body(const void* value, size_t size);
+  inline ::std::string* mutable_protobuf_body();
+  inline ::std::string* release_protobuf_body();
+  inline void set_allocated_protobuf_body(::std::string* protobuf_body);
+
+  // optional bytes raw_body = 3;
+  inline bool has_raw_body() const;
+  inline void clear_raw_body();
+  static const int kRawBodyFieldNumber = 3;
+  inline const ::std::string& raw_body() const;
+  inline void set_raw_body(const ::std::string& value);
+  inline void set_raw_body(const char* value);
+  inline void set_raw_body(const void* value, size_t size);
+  inline ::std::string* mutable_raw_body();
+  inline ::std::string* release_raw_body();
+  inline void set_allocated_raw_body(::std::string* raw_body);
+
+  // @@protoc_insertion_point(class_scope:exec.rpc.CompleteRpcMessage)
+ private:
+  inline void set_has_header();
+  inline void clear_has_header();
+  inline void set_has_protobuf_body();
+  inline void clear_has_protobuf_body();
+  inline void set_has_raw_body();
+  inline void clear_has_raw_body();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::exec::rpc::RpcHeader* header_;
+  ::std::string* protobuf_body_;
+  ::std::string* raw_body_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
+
+  friend void  protobuf_AddDesc_GeneralRPC_2eproto();
+  friend void protobuf_AssignDesc_GeneralRPC_2eproto();
+  friend void protobuf_ShutdownFile_GeneralRPC_2eproto();
+
+  void InitAsDefaultInstance();
+  static CompleteRpcMessage* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class RpcFailure : public ::google::protobuf::Message {
+ public:
+  RpcFailure();
+  virtual ~RpcFailure();
+
+  RpcFailure(const RpcFailure& from);
+
+  inline RpcFailure& operator=(const RpcFailure& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _unknown_fields_;
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return &_unknown_fields_;
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const RpcFailure& default_instance();
+
+  void Swap(RpcFailure* other);
+
+  // implements Message ----------------------------------------------
+
+  RpcFailure* New() const;
+  void CopyFrom(const ::google::protobuf::Message& from);
+  void MergeFrom(const ::google::protobuf::Message& from);
+  void CopyFrom(const RpcFailure& from);
+  void MergeFrom(const RpcFailure& from);
+  void Clear();
+  bool IsInitialized() const;
+
+  int ByteSize() const;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input);
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+  int GetCachedSize() const { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const;
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional int64 error_id = 1;
+  inline bool has_error_id() const;
+  inline void clear_error_id();
+  static const int kErrorIdFieldNumber = 1;
+  inline ::google::protobuf::int64 error_id() const;
+  inline void set_error_id(::google::protobuf::int64 value);
+
+  // optional int32 error_code = 2;
+  inline bool has_error_code() const;
+  inline void clear_error_code();
+  static const int kErrorCodeFieldNumber = 2;
+  inline ::google::protobuf::int32 error_code() const;
+  inline void set_error_code(::google::protobuf::int32 value);
+
+  // optional string short_error = 3;
+  inline bool has_short_error() const;
+  inline void clear_short_error();
+  static const int kShortErrorFieldNumber = 3;
+  inline const ::std::string& short_error() const;
+  inline void set_short_error(const ::std::string& value);
+  inline void set_short_error(const char* value);
+  inline void set_short_error(const char* value, size_t size);
+  inline ::std::string* mutable_short_error();
+  inline ::std::string* release_short_error();
+  inline void set_allocated_short_error(::std::string* short_error);
+
+  // optional string long_error = 4;
+  inline bool has_long_error() const;
+  inline void clear_long_error();
+  static const int kLongErrorFieldNumber = 4;
+  inline const ::std::string& long_error() const;
+  inline void set_long_error(const ::std::string& value);
+  inline void set_long_error(const char* value);
+  inline void set_long_error(const char* value, size_t size);
+  inline ::std::string* mutable_long_error();
+  inline ::std::string* release_long_error();
+  inline void set_allocated_long_error(::std::string* long_error);
+
+  // @@protoc_insertion_point(class_scope:exec.rpc.RpcFailure)
+ private:
+  inline void set_has_error_id();
+  inline void clear_has_error_id();
+  inline void set_has_error_code();
+  inline void clear_has_error_code();
+  inline void set_has_short_error();
+  inline void clear_has_short_error();
+  inline void set_has_long_error();
+  inline void clear_has_long_error();
+
+  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+  ::google::protobuf::int64 error_id_;
+  ::std::string* short_error_;
+  ::std::string* long_error_;
+  ::google::protobuf::int32 error_code_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
+
+  friend void  protobuf_AddDesc_GeneralRPC_2eproto();
+  friend void protobuf_AssignDesc_GeneralRPC_2eproto();
+  friend void protobuf_ShutdownFile_GeneralRPC_2eproto();
+
+  void InitAsDefaultInstance();
+  static RpcFailure* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+// Ack
+
+// optional bool ok = 1;
+inline bool Ack::has_ok() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void Ack::set_has_ok() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void Ack::clear_has_ok() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void Ack::clear_ok() {
+  ok_ = false;
+  clear_has_ok();
+}
+inline bool Ack::ok() const {
+  return ok_;
+}
+inline void Ack::set_ok(bool value) {
+  set_has_ok();
+  ok_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// RpcHeader
+
+// optional .exec.rpc.RpcMode mode = 1;
+inline bool RpcHeader::has_mode() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void RpcHeader::set_has_mode() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void RpcHeader::clear_has_mode() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void RpcHeader::clear_mode() {
+  mode_ = 0;
+  clear_has_mode();
+}
+inline ::exec::rpc::RpcMode RpcHeader::mode() const {
+  return static_cast< ::exec::rpc::RpcMode >(mode_);
+}
+inline void RpcHeader::set_mode(::exec::rpc::RpcMode value) {
+  assert(::exec::rpc::RpcMode_IsValid(value));
+  set_has_mode();
+  mode_ = value;
+}
+
+// optional int32 coordination_id = 2;
+inline bool RpcHeader::has_coordination_id() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void RpcHeader::set_has_coordination_id() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void RpcHeader::clear_has_coordination_id() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void RpcHeader::clear_coordination_id() {
+  coordination_id_ = 0;
+  clear_has_coordination_id();
+}
+inline ::google::protobuf::int32 RpcHeader::coordination_id() const {
+  return coordination_id_;
+}
+inline void RpcHeader::set_coordination_id(::google::protobuf::int32 value) {
+  set_has_coordination_id();
+  coordination_id_ = value;
+}
+
+// optional int32 rpc_type = 3;
+inline bool RpcHeader::has_rpc_type() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void RpcHeader::set_has_rpc_type() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void RpcHeader::clear_has_rpc_type() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void RpcHeader::clear_rpc_type() {
+  rpc_type_ = 0;
+  clear_has_rpc_type();
+}
+inline ::google::protobuf::int32 RpcHeader::rpc_type() const {
+  return rpc_type_;
+}
+inline void RpcHeader::set_rpc_type(::google::protobuf::int32 value) {
+  set_has_rpc_type();
+  rpc_type_ = value;
+}
+
+// -------------------------------------------------------------------
+
+// CompleteRpcMessage
+
+// optional .exec.rpc.RpcHeader header = 1;
+inline bool CompleteRpcMessage::has_header() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void CompleteRpcMessage::set_has_header() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void CompleteRpcMessage::clear_has_header() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void CompleteRpcMessage::clear_header() {
+  if (header_ != NULL) header_->::exec::rpc::RpcHeader::Clear();
+  clear_has_header();
+}
+inline const ::exec::rpc::RpcHeader& CompleteRpcMessage::header() const {
+  return header_ != NULL ? *header_ : *default_instance_->header_;
+}
+inline ::exec::rpc::RpcHeader* CompleteRpcMessage::mutable_header() {
+  set_has_header();
+  if (header_ == NULL) header_ = new ::exec::rpc::RpcHeader;
+  return header_;
+}
+inline ::exec::rpc::RpcHeader* CompleteRpcMessage::release_header() {
+  clear_has_header();
+  ::exec::rpc::RpcHeader* temp = header_;
+  header_ = NULL;
+  return temp;
+}
+inline void CompleteRpcMessage::set_allocated_header(::exec::rpc::RpcHeader* header) {
+  delete header_;
+  header_ = header;
+  if (header) {
+    set_has_header();
+  } else {
+    clear_has_header();
+  }
+}
+
+// optional bytes protobuf_body = 2;
+inline bool CompleteRpcMessage::has_protobuf_body() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void CompleteRpcMessage::set_has_protobuf_body() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void CompleteRpcMessage::clear_has_protobuf_body() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void CompleteRpcMessage::clear_protobuf_body() {
+  if (protobuf_body_ != &::google::protobuf::internal::kEmptyString) {
+    protobuf_body_->clear();
+  }
+  clear_has_protobuf_body();
+}
+inline const ::std::string& CompleteRpcMessage::protobuf_body() const {
+  return *protobuf_body_;
+}
+inline void CompleteRpcMessage::set_protobuf_body(const ::std::string& value) {
+  set_has_protobuf_body();
+  if (protobuf_body_ == &::google::protobuf::internal::kEmptyString) {
+    protobuf_body_ = new ::std::string;
+  }
+  protobuf_body_->assign(value);
+}
+inline void CompleteRpcMessage::set_protobuf_body(const char* value) {
+  set_has_protobuf_body();
+  if (protobuf_body_ == &::google::protobuf::internal::kEmptyString) {
+    protobuf_body_ = new ::std::string;
+  }
+  protobuf_body_->assign(value);
+}
+inline void CompleteRpcMessage::set_protobuf_body(const void* value, size_t size) {
+  set_has_protobuf_body();
+  if (protobuf_body_ == &::google::protobuf::internal::kEmptyString) {
+    protobuf_body_ = new ::std::string;
+  }
+  protobuf_body_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* CompleteRpcMessage::mutable_protobuf_body() {
+  set_has_protobuf_body();
+  if (protobuf_body_ == &::google::protobuf::internal::kEmptyString) {
+    protobuf_body_ = new ::std::string;
+  }
+  return protobuf_body_;
+}
+inline ::std::string* CompleteRpcMessage::release_protobuf_body() {
+  clear_has_protobuf_body();
+  if (protobuf_body_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = protobuf_body_;
+    protobuf_body_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void CompleteRpcMessage::set_allocated_protobuf_body(::std::string* protobuf_body) {
+  if (protobuf_body_ != &::google::protobuf::internal::kEmptyString) {
+    delete protobuf_body_;
+  }
+  if (protobuf_body) {
+    set_has_protobuf_body();
+    protobuf_body_ = protobuf_body;
+  } else {
+    clear_has_protobuf_body();
+    protobuf_body_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// optional bytes raw_body = 3;
+inline bool CompleteRpcMessage::has_raw_body() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void CompleteRpcMessage::set_has_raw_body() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void CompleteRpcMessage::clear_has_raw_body() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void CompleteRpcMessage::clear_raw_body() {
+  if (raw_body_ != &::google::protobuf::internal::kEmptyString) {
+    raw_body_->clear();
+  }
+  clear_has_raw_body();
+}
+inline const ::std::string& CompleteRpcMessage::raw_body() const {
+  return *raw_body_;
+}
+inline void CompleteRpcMessage::set_raw_body(const ::std::string& value) {
+  set_has_raw_body();
+  if (raw_body_ == &::google::protobuf::internal::kEmptyString) {
+    raw_body_ = new ::std::string;
+  }
+  raw_body_->assign(value);
+}
+inline void CompleteRpcMessage::set_raw_body(const char* value) {
+  set_has_raw_body();
+  if (raw_body_ == &::google::protobuf::internal::kEmptyString) {
+    raw_body_ = new ::std::string;
+  }
+  raw_body_->assign(value);
+}
+inline void CompleteRpcMessage::set_raw_body(const void* value, size_t size) {
+  set_has_raw_body();
+  if (raw_body_ == &::google::protobuf::internal::kEmptyString) {
+    raw_body_ = new ::std::string;
+  }
+  raw_body_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* CompleteRpcMessage::mutable_raw_body() {
+  set_has_raw_body();
+  if (raw_body_ == &::google::protobuf::internal::kEmptyString) {
+    raw_body_ = new ::std::string;
+  }
+  return raw_body_;
+}
+inline ::std::string* CompleteRpcMessage::release_raw_body() {
+  clear_has_raw_body();
+  if (raw_body_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = raw_body_;
+    raw_body_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void CompleteRpcMessage::set_allocated_raw_body(::std::string* raw_body) {
+  if (raw_body_ != &::google::protobuf::internal::kEmptyString) {
+    delete raw_body_;
+  }
+  if (raw_body) {
+    set_has_raw_body();
+    raw_body_ = raw_body;
+  } else {
+    clear_has_raw_body();
+    raw_body_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// -------------------------------------------------------------------
+
+// RpcFailure
+
+// optional int64 error_id = 1;
+inline bool RpcFailure::has_error_id() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void RpcFailure::set_has_error_id() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void RpcFailure::clear_has_error_id() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void RpcFailure::clear_error_id() {
+  error_id_ = GOOGLE_LONGLONG(0);
+  clear_has_error_id();
+}
+inline ::google::protobuf::int64 RpcFailure::error_id() const {
+  return error_id_;
+}
+inline void RpcFailure::set_error_id(::google::protobuf::int64 value) {
+  set_has_error_id();
+  error_id_ = value;
+}
+
+// optional int32 error_code = 2;
+inline bool RpcFailure::has_error_code() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void RpcFailure::set_has_error_code() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void RpcFailure::clear_has_error_code() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void RpcFailure::clear_error_code() {
+  error_code_ = 0;
+  clear_has_error_code();
+}
+inline ::google::protobuf::int32 RpcFailure::error_code() const {
+  return error_code_;
+}
+inline void RpcFailure::set_error_code(::google::protobuf::int32 value) {
+  set_has_error_code();
+  error_code_ = value;
+}
+
+// optional string short_error = 3;
+inline bool RpcFailure::has_short_error() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void RpcFailure::set_has_short_error() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void RpcFailure::clear_has_short_error() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void RpcFailure::clear_short_error() {
+  if (short_error_ != &::google::protobuf::internal::kEmptyString) {
+    short_error_->clear();
+  }
+  clear_has_short_error();
+}
+inline const ::std::string& RpcFailure::short_error() const {
+  return *short_error_;
+}
+inline void RpcFailure::set_short_error(const ::std::string& value) {
+  set_has_short_error();
+  if (short_error_ == &::google::protobuf::internal::kEmptyString) {
+    short_error_ = new ::std::string;
+  }
+  short_error_->assign(value);
+}
+inline void RpcFailure::set_short_error(const char* value) {
+  set_has_short_error();
+  if (short_error_ == &::google::protobuf::internal::kEmptyString) {
+    short_error_ = new ::std::string;
+  }
+  short_error_->assign(value);
+}
+inline void RpcFailure::set_short_error(const char* value, size_t size) {
+  set_has_short_error();
+  if (short_error_ == &::google::protobuf::internal::kEmptyString) {
+    short_error_ = new ::std::string;
+  }
+  short_error_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* RpcFailure::mutable_short_error() {
+  set_has_short_error();
+  if (short_error_ == &::google::protobuf::internal::kEmptyString) {
+    short_error_ = new ::std::string;
+  }
+  return short_error_;
+}
+inline ::std::string* RpcFailure::release_short_error() {
+  clear_has_short_error();
+  if (short_error_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = short_error_;
+    short_error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void RpcFailure::set_allocated_short_error(::std::string* short_error) {
+  if (short_error_ != &::google::protobuf::internal::kEmptyString) {
+    delete short_error_;
+  }
+  if (short_error) {
+    set_has_short_error();
+    short_error_ = short_error;
+  } else {
+    clear_has_short_error();
+    short_error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+// optional string long_error = 4;
+inline bool RpcFailure::has_long_error() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void RpcFailure::set_has_long_error() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void RpcFailure::clear_has_long_error() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void RpcFailure::clear_long_error() {
+  if (long_error_ != &::google::protobuf::internal::kEmptyString) {
+    long_error_->clear();
+  }
+  clear_has_long_error();
+}
+inline const ::std::string& RpcFailure::long_error() const {
+  return *long_error_;
+}
+inline void RpcFailure::set_long_error(const ::std::string& value) {
+  set_has_long_error();
+  if (long_error_ == &::google::protobuf::internal::kEmptyString) {
+    long_error_ = new ::std::string;
+  }
+  long_error_->assign(value);
+}
+inline void RpcFailure::set_long_error(const char* value) {
+  set_has_long_error();
+  if (long_error_ == &::google::protobuf::internal::kEmptyString) {
+    long_error_ = new ::std::string;
+  }
+  long_error_->assign(value);
+}
+inline void RpcFailure::set_long_error(const char* value, size_t size) {
+  set_has_long_error();
+  if (long_error_ == &::google::protobuf::internal::kEmptyString) {
+    long_error_ = new ::std::string;
+  }
+  long_error_->assign(reinterpret_cast<const char*>(value), size);
+}
+inline ::std::string* RpcFailure::mutable_long_error() {
+  set_has_long_error();
+  if (long_error_ == &::google::protobuf::internal::kEmptyString) {
+    long_error_ = new ::std::string;
+  }
+  return long_error_;
+}
+inline ::std::string* RpcFailure::release_long_error() {
+  clear_has_long_error();
+  if (long_error_ == &::google::protobuf::internal::kEmptyString) {
+    return NULL;
+  } else {
+    ::std::string* temp = long_error_;
+    long_error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+    return temp;
+  }
+}
+inline void RpcFailure::set_allocated_long_error(::std::string* long_error) {
+  if (long_error_ != &::google::protobuf::internal::kEmptyString) {
+    delete long_error_;
+  }
+  if (long_error) {
+    set_has_long_error();
+    long_error_ = long_error;
+  } else {
+    clear_has_long_error();
+    long_error_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  }
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace rpc
+}  // namespace exec
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::exec::rpc::RpcMode>() {
+  return ::exec::rpc::RpcMode_descriptor();
+}
+
+}  // namespace google
+}  // namespace protobuf
+#endif  // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif  // PROTOBUF_GeneralRPC_2eproto__INCLUDED

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/e1e5ea0e/contrib/native/client/src/protobuf/SchemaDef.pb.cc
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/protobuf/SchemaDef.pb.cc b/contrib/native/client/src/protobuf/SchemaDef.pb.cc
new file mode 100644
index 0000000..40011f8
--- /dev/null
+++ b/contrib/native/client/src/protobuf/SchemaDef.pb.cc
@@ -0,0 +1,97 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: SchemaDef.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "SchemaDef.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace exec {
+
+namespace {
+
+const ::google::protobuf::EnumDescriptor* ValueMode_descriptor_ = NULL;
+
+}  // namespace
+
+
+void protobuf_AssignDesc_SchemaDef_2eproto() {
+  protobuf_AddDesc_SchemaDef_2eproto();
+  const ::google::protobuf::FileDescriptor* file =
+    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+      "SchemaDef.proto");
+  GOOGLE_CHECK(file != NULL);
+  ValueMode_descriptor_ = file->enum_type(0);
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+                 &protobuf_AssignDesc_SchemaDef_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+  protobuf_AssignDescriptorsOnce();
+}
+
+}  // namespace
+
+void protobuf_ShutdownFile_SchemaDef_2eproto() {
+}
+
+void protobuf_AddDesc_SchemaDef_2eproto() {
+  static bool already_here = false;
+  if (already_here) return;
+  already_here = true;
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  ::common::protobuf_AddDesc_Types_2eproto();
+  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+    "\n\017SchemaDef.proto\022\004exec\032\013Types.proto*0\n\t"
+    "ValueMode\022\020\n\014VALUE_VECTOR\020\000\022\007\n\003RLE\020\001\022\010\n\004"
+    "DICT\020\002B0\n\033org.apache.drill.exec.protoB\017S"
+    "chemaDefProtosH\001", 136);
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+    "SchemaDef.proto", &protobuf_RegisterTypes);
+  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_SchemaDef_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_SchemaDef_2eproto {
+  StaticDescriptorInitializer_SchemaDef_2eproto() {
+    protobuf_AddDesc_SchemaDef_2eproto();
+  }
+} static_descriptor_initializer_SchemaDef_2eproto_;
+const ::google::protobuf::EnumDescriptor* ValueMode_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ValueMode_descriptor_;
+}
+bool ValueMode_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace exec
+
+// @@protoc_insertion_point(global_scope)