Bläddra i källkod

change driver_rpc_server.

yuchuli 2 år sedan
förälder
incheckning
4f82d832b8

+ 13 - 0
src/detection/detection_lidar_cnn_segmentation/cnn_segmentation.cpp

@@ -100,9 +100,16 @@ bool CNNSegmentation::segment(const pcl::PointCloud<pcl::PointXYZI>::Ptr &pc_ptr
         caffe::Caffe::set_mode(caffe::Caffe::GPU);
     }
 
+    int64_t time1 = std::chrono::system_clock::now().time_since_epoch().count();
+
     feature_generator_->generate(pc_ptr);
+
+    int64_t time2 = std::chrono::system_clock::now().time_since_epoch().count();
+
     caffe_net_->Forward();
 
+    int64_t time3 = std::chrono::system_clock::now().time_since_epoch().count();
+
     float objectness_thresh = 0.5;
     bool use_all_grids_for_clustering = true;
     cluster2d_->cluster(*category_pt_blob_, *instance_pt_blob_, pc_ptr,
@@ -115,6 +122,12 @@ bool CNNSegmentation::segment(const pcl::PointCloud<pcl::PointXYZI>::Ptr &pc_ptr
     int min_pts_num = 3;
 
     cluster2d_->getObjectVector(confidence_thresh, height_thresh, min_pts_num,objvec);
+
+    int64_t time4 = std::chrono::system_clock::now().time_since_epoch().count();
+
+
+    std::cout<<"infer time: "<<(time3-time2)/1000000<<" generate: "<<(time2-time1)/1000000<<" cluster: "<<(time4-time3)/1000000<<std::endl;
+
 //    cluster2d_->getObjects(confidence_thresh, height_thresh, min_pts_num,
 //                           objects, message_header_);
 

+ 3 - 0
src/driver/driver_rpc_server/driver_rpc_server.pro

@@ -12,6 +12,9 @@ CONFIG -= app_bundle
 DEFINES += QT_DEPRECATED_WARNINGS
 
 
+system("protoc *.proto -I=./ --cpp_out=./")
+
+
 # You can also make your code fail to compile if you use deprecated APIs.
 # In order to do so, uncomment the following line.
 # You can also select to disable deprecated APIs only up to a certain version of Qt.

+ 0 - 1201
src/driver/driver_rpc_server/echo.pb.cc

@@ -1,1201 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: echo.proto
-
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
-#include "echo.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/stubs/port.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 iv {
-
-namespace {
-
-const ::google::protobuf::Descriptor* EchoRequest_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  EchoRequest_reflection_ = NULL;
-const ::google::protobuf::Descriptor* EchoResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  EchoResponse_reflection_ = NULL;
-const ::google::protobuf::ServiceDescriptor* EchoService_descriptor_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_echo_2eproto() GOOGLE_ATTRIBUTE_COLD;
-void protobuf_AssignDesc_echo_2eproto() {
-  protobuf_AddDesc_echo_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "echo.proto");
-  GOOGLE_CHECK(file != NULL);
-  EchoRequest_descriptor_ = file->message_type(0);
-  static const int EchoRequest_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoRequest, msgname_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoRequest, index_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoRequest, nlen_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoRequest, xdata_),
-  };
-  EchoRequest_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      EchoRequest_descriptor_,
-      EchoRequest::default_instance_,
-      EchoRequest_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoRequest, _has_bits_[0]),
-      -1,
-      -1,
-      sizeof(EchoRequest),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoRequest, _internal_metadata_),
-      -1);
-  EchoResponse_descriptor_ = file->message_type(1);
-  static const int EchoResponse_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoResponse, msgname_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoResponse, index_),
-  };
-  EchoResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      EchoResponse_descriptor_,
-      EchoResponse::default_instance_,
-      EchoResponse_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoResponse, _has_bits_[0]),
-      -1,
-      -1,
-      sizeof(EchoResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EchoResponse, _internal_metadata_),
-      -1);
-  EchoService_descriptor_ = file->service(0);
-}
-
-namespace {
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-inline void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_echo_2eproto);
-}
-
-void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      EchoRequest_descriptor_, &EchoRequest::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      EchoResponse_descriptor_, &EchoResponse::default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_echo_2eproto() {
-  delete EchoRequest::default_instance_;
-  delete EchoRequest_reflection_;
-  delete EchoResponse::default_instance_;
-  delete EchoResponse_reflection_;
-}
-
-void protobuf_AddDesc_echo_2eproto() GOOGLE_ATTRIBUTE_COLD;
-void protobuf_AddDesc_echo_2eproto() {
-  static bool already_here = false;
-  if (already_here) return;
-  already_here = true;
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\necho.proto\022\002iv\"J\n\013EchoRequest\022\017\n\007msgna"
-    "me\030\001 \002(\t\022\r\n\005index\030\002 \002(\003\022\014\n\004nlen\030\003 \002(\005\022\r\n"
-    "\005xdata\030\004 \001(\014\".\n\014EchoResponse\022\017\n\007msgname\030"
-    "\001 \002(\t\022\r\n\005index\030\002 \002(\00328\n\013EchoService\022)\n\004E"
-    "cho\022\017.iv.EchoRequest\032\020.iv.EchoResponseB\003"
-    "\200\001\001", 203);
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
-    "echo.proto", &protobuf_RegisterTypes);
-  EchoRequest::default_instance_ = new EchoRequest();
-  EchoResponse::default_instance_ = new EchoResponse();
-  EchoRequest::default_instance_->InitAsDefaultInstance();
-  EchoResponse::default_instance_->InitAsDefaultInstance();
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_echo_2eproto);
-}
-
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_echo_2eproto {
-  StaticDescriptorInitializer_echo_2eproto() {
-    protobuf_AddDesc_echo_2eproto();
-  }
-} static_descriptor_initializer_echo_2eproto_;
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int EchoRequest::kMsgnameFieldNumber;
-const int EchoRequest::kIndexFieldNumber;
-const int EchoRequest::kNlenFieldNumber;
-const int EchoRequest::kXdataFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-EchoRequest::EchoRequest()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:iv.EchoRequest)
-}
-
-void EchoRequest::InitAsDefaultInstance() {
-}
-
-EchoRequest::EchoRequest(const EchoRequest& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  MergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:iv.EchoRequest)
-}
-
-void EchoRequest::SharedCtor() {
-  ::google::protobuf::internal::GetEmptyString();
-  _cached_size_ = 0;
-  msgname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  index_ = GOOGLE_LONGLONG(0);
-  nlen_ = 0;
-  xdata_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-EchoRequest::~EchoRequest() {
-  // @@protoc_insertion_point(destructor:iv.EchoRequest)
-  SharedDtor();
-}
-
-void EchoRequest::SharedDtor() {
-  msgname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  xdata_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (this != default_instance_) {
-  }
-}
-
-void EchoRequest::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* EchoRequest::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return EchoRequest_descriptor_;
-}
-
-const EchoRequest& EchoRequest::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_echo_2eproto();
-  return *default_instance_;
-}
-
-EchoRequest* EchoRequest::default_instance_ = NULL;
-
-EchoRequest* EchoRequest::New(::google::protobuf::Arena* arena) const {
-  EchoRequest* n = new EchoRequest;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void EchoRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:iv.EchoRequest)
-  if (_has_bits_[0 / 32] & 15u) {
-    if (has_msgname()) {
-      msgname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    }
-    index_ = GOOGLE_LONGLONG(0);
-    nlen_ = 0;
-    if (has_xdata()) {
-      xdata_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  if (_internal_metadata_.have_unknown_fields()) {
-    mutable_unknown_fields()->Clear();
-  }
-}
-
-bool EchoRequest::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:iv.EchoRequest)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string msgname = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_msgname()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
-            this->msgname().data(), this->msgname().length(),
-            ::google::protobuf::internal::WireFormat::PARSE,
-            "iv.EchoRequest.msgname");
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(16)) goto parse_index;
-        break;
-      }
-
-      // required int64 index = 2;
-      case 2: {
-        if (tag == 16) {
-         parse_index:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &index_)));
-          set_has_index();
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(24)) goto parse_nlen;
-        break;
-      }
-
-      // required int32 nlen = 3;
-      case 3: {
-        if (tag == 24) {
-         parse_nlen:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &nlen_)));
-          set_has_nlen();
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(34)) goto parse_xdata;
-        break;
-      }
-
-      // optional bytes xdata = 4;
-      case 4: {
-        if (tag == 34) {
-         parse_xdata:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
-                input, this->mutable_xdata()));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:iv.EchoRequest)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:iv.EchoRequest)
-  return false;
-#undef DO_
-}
-
-void EchoRequest::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:iv.EchoRequest)
-  // required string msgname = 1;
-  if (has_msgname()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
-      this->msgname().data(), this->msgname().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE,
-      "iv.EchoRequest.msgname");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->msgname(), output);
-  }
-
-  // required int64 index = 2;
-  if (has_index()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->index(), output);
-  }
-
-  // required int32 nlen = 3;
-  if (has_nlen()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->nlen(), output);
-  }
-
-  // optional bytes xdata = 4;
-  if (has_xdata()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
-      4, this->xdata(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:iv.EchoRequest)
-}
-
-::google::protobuf::uint8* EchoRequest::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:iv.EchoRequest)
-  // required string msgname = 1;
-  if (has_msgname()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
-      this->msgname().data(), this->msgname().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE,
-      "iv.EchoRequest.msgname");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->msgname(), target);
-  }
-
-  // required int64 index = 2;
-  if (has_index()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->index(), target);
-  }
-
-  // required int32 nlen = 3;
-  if (has_nlen()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->nlen(), target);
-  }
-
-  // optional bytes xdata = 4;
-  if (has_xdata()) {
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
-        4, this->xdata(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:iv.EchoRequest)
-  return target;
-}
-
-int EchoRequest::RequiredFieldsByteSizeFallback() const {
-// @@protoc_insertion_point(required_fields_byte_size_fallback_start:iv.EchoRequest)
-  int total_size = 0;
-
-  if (has_msgname()) {
-    // required string msgname = 1;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->msgname());
-  }
-
-  if (has_index()) {
-    // required int64 index = 2;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->index());
-  }
-
-  if (has_nlen()) {
-    // required int32 nlen = 3;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->nlen());
-  }
-
-  return total_size;
-}
-int EchoRequest::ByteSize() const {
-// @@protoc_insertion_point(message_byte_size_start:iv.EchoRequest)
-  int total_size = 0;
-
-  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
-    // required string msgname = 1;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->msgname());
-
-    // required int64 index = 2;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->index());
-
-    // required int32 nlen = 3;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->nlen());
-
-  } else {
-    total_size += RequiredFieldsByteSizeFallback();
-  }
-  // optional bytes xdata = 4;
-  if (has_xdata()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::BytesSize(
-        this->xdata());
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    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 EchoRequest::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:iv.EchoRequest)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) {
-    ::google::protobuf::internal::MergeFromFail(__FILE__, __LINE__);
-  }
-  const EchoRequest* source = 
-      ::google::protobuf::internal::DynamicCastToGenerated<const EchoRequest>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:iv.EchoRequest)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:iv.EchoRequest)
-    MergeFrom(*source);
-  }
-}
-
-void EchoRequest::MergeFrom(const EchoRequest& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:iv.EchoRequest)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) {
-    ::google::protobuf::internal::MergeFromFail(__FILE__, __LINE__);
-  }
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_msgname()) {
-      set_has_msgname();
-      msgname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.msgname_);
-    }
-    if (from.has_index()) {
-      set_index(from.index());
-    }
-    if (from.has_nlen()) {
-      set_nlen(from.nlen());
-    }
-    if (from.has_xdata()) {
-      set_has_xdata();
-      xdata_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.xdata_);
-    }
-  }
-  if (from._internal_metadata_.have_unknown_fields()) {
-    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-  }
-}
-
-void EchoRequest::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:iv.EchoRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void EchoRequest::CopyFrom(const EchoRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:iv.EchoRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool EchoRequest::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
-
-  return true;
-}
-
-void EchoRequest::Swap(EchoRequest* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void EchoRequest::InternalSwap(EchoRequest* other) {
-  msgname_.Swap(&other->msgname_);
-  std::swap(index_, other->index_);
-  std::swap(nlen_, other->nlen_);
-  xdata_.Swap(&other->xdata_);
-  std::swap(_has_bits_[0], other->_has_bits_[0]);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata EchoRequest::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = EchoRequest_descriptor_;
-  metadata.reflection = EchoRequest_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// EchoRequest
-
-// required string msgname = 1;
-bool EchoRequest::has_msgname() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-void EchoRequest::set_has_msgname() {
-  _has_bits_[0] |= 0x00000001u;
-}
-void EchoRequest::clear_has_msgname() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-void EchoRequest::clear_msgname() {
-  msgname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_msgname();
-}
- const ::std::string& EchoRequest::msgname() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.msgname)
-  return msgname_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- void EchoRequest::set_msgname(const ::std::string& value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.msgname)
-}
- void EchoRequest::set_msgname(const char* value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:iv.EchoRequest.msgname)
-}
- void EchoRequest::set_msgname(const char* value, size_t size) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:iv.EchoRequest.msgname)
-}
- ::std::string* EchoRequest::mutable_msgname() {
-  set_has_msgname();
-  // @@protoc_insertion_point(field_mutable:iv.EchoRequest.msgname)
-  return msgname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- ::std::string* EchoRequest::release_msgname() {
-  // @@protoc_insertion_point(field_release:iv.EchoRequest.msgname)
-  clear_has_msgname();
-  return msgname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- void EchoRequest::set_allocated_msgname(::std::string* msgname) {
-  if (msgname != NULL) {
-    set_has_msgname();
-  } else {
-    clear_has_msgname();
-  }
-  msgname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), msgname);
-  // @@protoc_insertion_point(field_set_allocated:iv.EchoRequest.msgname)
-}
-
-// required int64 index = 2;
-bool EchoRequest::has_index() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-void EchoRequest::set_has_index() {
-  _has_bits_[0] |= 0x00000002u;
-}
-void EchoRequest::clear_has_index() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-void EchoRequest::clear_index() {
-  index_ = GOOGLE_LONGLONG(0);
-  clear_has_index();
-}
- ::google::protobuf::int64 EchoRequest::index() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.index)
-  return index_;
-}
- void EchoRequest::set_index(::google::protobuf::int64 value) {
-  set_has_index();
-  index_ = value;
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.index)
-}
-
-// required int32 nlen = 3;
-bool EchoRequest::has_nlen() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-void EchoRequest::set_has_nlen() {
-  _has_bits_[0] |= 0x00000004u;
-}
-void EchoRequest::clear_has_nlen() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-void EchoRequest::clear_nlen() {
-  nlen_ = 0;
-  clear_has_nlen();
-}
- ::google::protobuf::int32 EchoRequest::nlen() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.nlen)
-  return nlen_;
-}
- void EchoRequest::set_nlen(::google::protobuf::int32 value) {
-  set_has_nlen();
-  nlen_ = value;
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.nlen)
-}
-
-// optional bytes xdata = 4;
-bool EchoRequest::has_xdata() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-void EchoRequest::set_has_xdata() {
-  _has_bits_[0] |= 0x00000008u;
-}
-void EchoRequest::clear_has_xdata() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-void EchoRequest::clear_xdata() {
-  xdata_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_xdata();
-}
- const ::std::string& EchoRequest::xdata() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.xdata)
-  return xdata_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- void EchoRequest::set_xdata(const ::std::string& value) {
-  set_has_xdata();
-  xdata_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.xdata)
-}
- void EchoRequest::set_xdata(const char* value) {
-  set_has_xdata();
-  xdata_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:iv.EchoRequest.xdata)
-}
- void EchoRequest::set_xdata(const void* value, size_t size) {
-  set_has_xdata();
-  xdata_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:iv.EchoRequest.xdata)
-}
- ::std::string* EchoRequest::mutable_xdata() {
-  set_has_xdata();
-  // @@protoc_insertion_point(field_mutable:iv.EchoRequest.xdata)
-  return xdata_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- ::std::string* EchoRequest::release_xdata() {
-  // @@protoc_insertion_point(field_release:iv.EchoRequest.xdata)
-  clear_has_xdata();
-  return xdata_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- void EchoRequest::set_allocated_xdata(::std::string* xdata) {
-  if (xdata != NULL) {
-    set_has_xdata();
-  } else {
-    clear_has_xdata();
-  }
-  xdata_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), xdata);
-  // @@protoc_insertion_point(field_set_allocated:iv.EchoRequest.xdata)
-}
-
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int EchoResponse::kMsgnameFieldNumber;
-const int EchoResponse::kIndexFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-EchoResponse::EchoResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:iv.EchoResponse)
-}
-
-void EchoResponse::InitAsDefaultInstance() {
-}
-
-EchoResponse::EchoResponse(const EchoResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  MergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:iv.EchoResponse)
-}
-
-void EchoResponse::SharedCtor() {
-  ::google::protobuf::internal::GetEmptyString();
-  _cached_size_ = 0;
-  msgname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  index_ = GOOGLE_LONGLONG(0);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-EchoResponse::~EchoResponse() {
-  // @@protoc_insertion_point(destructor:iv.EchoResponse)
-  SharedDtor();
-}
-
-void EchoResponse::SharedDtor() {
-  msgname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (this != default_instance_) {
-  }
-}
-
-void EchoResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* EchoResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return EchoResponse_descriptor_;
-}
-
-const EchoResponse& EchoResponse::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_echo_2eproto();
-  return *default_instance_;
-}
-
-EchoResponse* EchoResponse::default_instance_ = NULL;
-
-EchoResponse* EchoResponse::New(::google::protobuf::Arena* arena) const {
-  EchoResponse* n = new EchoResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void EchoResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:iv.EchoResponse)
-  if (_has_bits_[0 / 32] & 3u) {
-    if (has_msgname()) {
-      msgname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    }
-    index_ = GOOGLE_LONGLONG(0);
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  if (_internal_metadata_.have_unknown_fields()) {
-    mutable_unknown_fields()->Clear();
-  }
-}
-
-bool EchoResponse::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:iv.EchoResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string msgname = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_msgname()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
-            this->msgname().data(), this->msgname().length(),
-            ::google::protobuf::internal::WireFormat::PARSE,
-            "iv.EchoResponse.msgname");
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(16)) goto parse_index;
-        break;
-      }
-
-      // required int64 index = 2;
-      case 2: {
-        if (tag == 16) {
-         parse_index:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
-                 input, &index_)));
-          set_has_index();
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:iv.EchoResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:iv.EchoResponse)
-  return false;
-#undef DO_
-}
-
-void EchoResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:iv.EchoResponse)
-  // required string msgname = 1;
-  if (has_msgname()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
-      this->msgname().data(), this->msgname().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE,
-      "iv.EchoResponse.msgname");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->msgname(), output);
-  }
-
-  // required int64 index = 2;
-  if (has_index()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->index(), output);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-  // @@protoc_insertion_point(serialize_end:iv.EchoResponse)
-}
-
-::google::protobuf::uint8* EchoResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  // @@protoc_insertion_point(serialize_to_array_start:iv.EchoResponse)
-  // required string msgname = 1;
-  if (has_msgname()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
-      this->msgname().data(), this->msgname().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE,
-      "iv.EchoResponse.msgname");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->msgname(), target);
-  }
-
-  // required int64 index = 2;
-  if (has_index()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->index(), target);
-  }
-
-  if (_internal_metadata_.have_unknown_fields()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  // @@protoc_insertion_point(serialize_to_array_end:iv.EchoResponse)
-  return target;
-}
-
-int EchoResponse::RequiredFieldsByteSizeFallback() const {
-// @@protoc_insertion_point(required_fields_byte_size_fallback_start:iv.EchoResponse)
-  int total_size = 0;
-
-  if (has_msgname()) {
-    // required string msgname = 1;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->msgname());
-  }
-
-  if (has_index()) {
-    // required int64 index = 2;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->index());
-  }
-
-  return total_size;
-}
-int EchoResponse::ByteSize() const {
-// @@protoc_insertion_point(message_byte_size_start:iv.EchoResponse)
-  int total_size = 0;
-
-  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
-    // required string msgname = 1;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->msgname());
-
-    // required int64 index = 2;
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int64Size(
-        this->index());
-
-  } else {
-    total_size += RequiredFieldsByteSizeFallback();
-  }
-  if (_internal_metadata_.have_unknown_fields()) {
-    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 EchoResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:iv.EchoResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) {
-    ::google::protobuf::internal::MergeFromFail(__FILE__, __LINE__);
-  }
-  const EchoResponse* source = 
-      ::google::protobuf::internal::DynamicCastToGenerated<const EchoResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:iv.EchoResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:iv.EchoResponse)
-    MergeFrom(*source);
-  }
-}
-
-void EchoResponse::MergeFrom(const EchoResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:iv.EchoResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) {
-    ::google::protobuf::internal::MergeFromFail(__FILE__, __LINE__);
-  }
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_msgname()) {
-      set_has_msgname();
-      msgname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.msgname_);
-    }
-    if (from.has_index()) {
-      set_index(from.index());
-    }
-  }
-  if (from._internal_metadata_.have_unknown_fields()) {
-    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-  }
-}
-
-void EchoResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:iv.EchoResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void EchoResponse::CopyFrom(const EchoResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:iv.EchoResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool EchoResponse::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void EchoResponse::Swap(EchoResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void EchoResponse::InternalSwap(EchoResponse* other) {
-  msgname_.Swap(&other->msgname_);
-  std::swap(index_, other->index_);
-  std::swap(_has_bits_[0], other->_has_bits_[0]);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata EchoResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = EchoResponse_descriptor_;
-  metadata.reflection = EchoResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// EchoResponse
-
-// required string msgname = 1;
-bool EchoResponse::has_msgname() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-void EchoResponse::set_has_msgname() {
-  _has_bits_[0] |= 0x00000001u;
-}
-void EchoResponse::clear_has_msgname() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-void EchoResponse::clear_msgname() {
-  msgname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_msgname();
-}
- const ::std::string& EchoResponse::msgname() const {
-  // @@protoc_insertion_point(field_get:iv.EchoResponse.msgname)
-  return msgname_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- void EchoResponse::set_msgname(const ::std::string& value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:iv.EchoResponse.msgname)
-}
- void EchoResponse::set_msgname(const char* value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:iv.EchoResponse.msgname)
-}
- void EchoResponse::set_msgname(const char* value, size_t size) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:iv.EchoResponse.msgname)
-}
- ::std::string* EchoResponse::mutable_msgname() {
-  set_has_msgname();
-  // @@protoc_insertion_point(field_mutable:iv.EchoResponse.msgname)
-  return msgname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- ::std::string* EchoResponse::release_msgname() {
-  // @@protoc_insertion_point(field_release:iv.EchoResponse.msgname)
-  clear_has_msgname();
-  return msgname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
- void EchoResponse::set_allocated_msgname(::std::string* msgname) {
-  if (msgname != NULL) {
-    set_has_msgname();
-  } else {
-    clear_has_msgname();
-  }
-  msgname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), msgname);
-  // @@protoc_insertion_point(field_set_allocated:iv.EchoResponse.msgname)
-}
-
-// required int64 index = 2;
-bool EchoResponse::has_index() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-void EchoResponse::set_has_index() {
-  _has_bits_[0] |= 0x00000002u;
-}
-void EchoResponse::clear_has_index() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-void EchoResponse::clear_index() {
-  index_ = GOOGLE_LONGLONG(0);
-  clear_has_index();
-}
- ::google::protobuf::int64 EchoResponse::index() const {
-  // @@protoc_insertion_point(field_get:iv.EchoResponse.index)
-  return index_;
-}
- void EchoResponse::set_index(::google::protobuf::int64 value) {
-  set_has_index();
-  index_ = value;
-  // @@protoc_insertion_point(field_set:iv.EchoResponse.index)
-}
-
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-EchoService::~EchoService() {}
-
-const ::google::protobuf::ServiceDescriptor* EchoService::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return EchoService_descriptor_;
-}
-
-const ::google::protobuf::ServiceDescriptor* EchoService::GetDescriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return EchoService_descriptor_;
-}
-
-void EchoService::Echo(::google::protobuf::RpcController* controller,
-                         const ::iv::EchoRequest*,
-                         ::iv::EchoResponse*,
-                         ::google::protobuf::Closure* done) {
-  controller->SetFailed("Method Echo() not implemented.");
-  done->Run();
-}
-
-void EchoService::CallMethod(const ::google::protobuf::MethodDescriptor* method,
-                             ::google::protobuf::RpcController* controller,
-                             const ::google::protobuf::Message* request,
-                             ::google::protobuf::Message* response,
-                             ::google::protobuf::Closure* done) {
-  GOOGLE_DCHECK_EQ(method->service(), EchoService_descriptor_);
-  switch(method->index()) {
-    case 0:
-      Echo(controller,
-             ::google::protobuf::down_cast<const ::iv::EchoRequest*>(request),
-             ::google::protobuf::down_cast< ::iv::EchoResponse*>(response),
-             done);
-      break;
-    default:
-      GOOGLE_LOG(FATAL) << "Bad method index; this should never happen.";
-      break;
-  }
-}
-
-const ::google::protobuf::Message& EchoService::GetRequestPrototype(
-    const ::google::protobuf::MethodDescriptor* method) const {
-  GOOGLE_DCHECK_EQ(method->service(), descriptor());
-  switch(method->index()) {
-    case 0:
-      return ::iv::EchoRequest::default_instance();
-    default:
-      GOOGLE_LOG(FATAL) << "Bad method index; this should never happen.";
-      return *::google::protobuf::MessageFactory::generated_factory()
-          ->GetPrototype(method->input_type());
-  }
-}
-
-const ::google::protobuf::Message& EchoService::GetResponsePrototype(
-    const ::google::protobuf::MethodDescriptor* method) const {
-  GOOGLE_DCHECK_EQ(method->service(), descriptor());
-  switch(method->index()) {
-    case 0:
-      return ::iv::EchoResponse::default_instance();
-    default:
-      GOOGLE_LOG(FATAL) << "Bad method index; this should never happen.";
-      return *::google::protobuf::MessageFactory::generated_factory()
-          ->GetPrototype(method->output_type());
-  }
-}
-
-EchoService_Stub::EchoService_Stub(::google::protobuf::RpcChannel* channel)
-  : channel_(channel), owns_channel_(false) {}
-EchoService_Stub::EchoService_Stub(
-    ::google::protobuf::RpcChannel* channel,
-    ::google::protobuf::Service::ChannelOwnership ownership)
-  : channel_(channel),
-    owns_channel_(ownership == ::google::protobuf::Service::STUB_OWNS_CHANNEL) {}
-EchoService_Stub::~EchoService_Stub() {
-  if (owns_channel_) delete channel_;
-}
-
-void EchoService_Stub::Echo(::google::protobuf::RpcController* controller,
-                              const ::iv::EchoRequest* request,
-                              ::iv::EchoResponse* response,
-                              ::google::protobuf::Closure* done) {
-  channel_->CallMethod(descriptor()->method(0),
-                       controller, request, response, done);
-}
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace iv
-
-// @@protoc_insertion_point(global_scope)

+ 0 - 605
src/driver/driver_rpc_server/echo.pb.h

@@ -1,605 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: echo.proto
-
-#ifndef PROTOBUF_echo_2eproto__INCLUDED
-#define PROTOBUF_echo_2eproto__INCLUDED
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-#if GOOGLE_PROTOBUF_VERSION < 3000000
-#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 3000000 < 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/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/service.h>
-#include <google/protobuf/unknown_field_set.h>
-// @@protoc_insertion_point(includes)
-
-namespace iv {
-
-// Internal implementation detail -- do not call these.
-void protobuf_AddDesc_echo_2eproto();
-void protobuf_AssignDesc_echo_2eproto();
-void protobuf_ShutdownFile_echo_2eproto();
-
-class EchoRequest;
-class EchoResponse;
-
-// ===================================================================
-
-class EchoRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:iv.EchoRequest) */ {
- public:
-  EchoRequest();
-  virtual ~EchoRequest();
-
-  EchoRequest(const EchoRequest& from);
-
-  inline EchoRequest& operator=(const EchoRequest& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _internal_metadata_.unknown_fields();
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return _internal_metadata_.mutable_unknown_fields();
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const EchoRequest& default_instance();
-
-  void Swap(EchoRequest* other);
-
-  // implements Message ----------------------------------------------
-
-  inline EchoRequest* New() const { return New(NULL); }
-
-  EchoRequest* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const EchoRequest& from);
-  void MergeFrom(const EchoRequest& 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* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(EchoRequest* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // required string msgname = 1;
-  bool has_msgname() const;
-  void clear_msgname();
-  static const int kMsgnameFieldNumber = 1;
-  const ::std::string& msgname() const;
-  void set_msgname(const ::std::string& value);
-  void set_msgname(const char* value);
-  void set_msgname(const char* value, size_t size);
-  ::std::string* mutable_msgname();
-  ::std::string* release_msgname();
-  void set_allocated_msgname(::std::string* msgname);
-
-  // required int64 index = 2;
-  bool has_index() const;
-  void clear_index();
-  static const int kIndexFieldNumber = 2;
-  ::google::protobuf::int64 index() const;
-  void set_index(::google::protobuf::int64 value);
-
-  // required int32 nlen = 3;
-  bool has_nlen() const;
-  void clear_nlen();
-  static const int kNlenFieldNumber = 3;
-  ::google::protobuf::int32 nlen() const;
-  void set_nlen(::google::protobuf::int32 value);
-
-  // optional bytes xdata = 4;
-  bool has_xdata() const;
-  void clear_xdata();
-  static const int kXdataFieldNumber = 4;
-  const ::std::string& xdata() const;
-  void set_xdata(const ::std::string& value);
-  void set_xdata(const char* value);
-  void set_xdata(const void* value, size_t size);
-  ::std::string* mutable_xdata();
-  ::std::string* release_xdata();
-  void set_allocated_xdata(::std::string* xdata);
-
-  // @@protoc_insertion_point(class_scope:iv.EchoRequest)
- private:
-  inline void set_has_msgname();
-  inline void clear_has_msgname();
-  inline void set_has_index();
-  inline void clear_has_index();
-  inline void set_has_nlen();
-  inline void clear_has_nlen();
-  inline void set_has_xdata();
-  inline void clear_has_xdata();
-
-  // helper for ByteSize()
-  int RequiredFieldsByteSizeFallback() const;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
-  ::google::protobuf::internal::ArenaStringPtr msgname_;
-  ::google::protobuf::int64 index_;
-  ::google::protobuf::internal::ArenaStringPtr xdata_;
-  ::google::protobuf::int32 nlen_;
-  friend void  protobuf_AddDesc_echo_2eproto();
-  friend void protobuf_AssignDesc_echo_2eproto();
-  friend void protobuf_ShutdownFile_echo_2eproto();
-
-  void InitAsDefaultInstance();
-  static EchoRequest* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class EchoResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:iv.EchoResponse) */ {
- public:
-  EchoResponse();
-  virtual ~EchoResponse();
-
-  EchoResponse(const EchoResponse& from);
-
-  inline EchoResponse& operator=(const EchoResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _internal_metadata_.unknown_fields();
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return _internal_metadata_.mutable_unknown_fields();
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const EchoResponse& default_instance();
-
-  void Swap(EchoResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline EchoResponse* New() const { return New(NULL); }
-
-  EchoResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const EchoResponse& from);
-  void MergeFrom(const EchoResponse& 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* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(EchoResponse* other);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // required string msgname = 1;
-  bool has_msgname() const;
-  void clear_msgname();
-  static const int kMsgnameFieldNumber = 1;
-  const ::std::string& msgname() const;
-  void set_msgname(const ::std::string& value);
-  void set_msgname(const char* value);
-  void set_msgname(const char* value, size_t size);
-  ::std::string* mutable_msgname();
-  ::std::string* release_msgname();
-  void set_allocated_msgname(::std::string* msgname);
-
-  // required int64 index = 2;
-  bool has_index() const;
-  void clear_index();
-  static const int kIndexFieldNumber = 2;
-  ::google::protobuf::int64 index() const;
-  void set_index(::google::protobuf::int64 value);
-
-  // @@protoc_insertion_point(class_scope:iv.EchoResponse)
- private:
-  inline void set_has_msgname();
-  inline void clear_has_msgname();
-  inline void set_has_index();
-  inline void clear_has_index();
-
-  // helper for ByteSize()
-  int RequiredFieldsByteSizeFallback() const;
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
-  ::google::protobuf::internal::ArenaStringPtr msgname_;
-  ::google::protobuf::int64 index_;
-  friend void  protobuf_AddDesc_echo_2eproto();
-  friend void protobuf_AssignDesc_echo_2eproto();
-  friend void protobuf_ShutdownFile_echo_2eproto();
-
-  void InitAsDefaultInstance();
-  static EchoResponse* default_instance_;
-};
-// ===================================================================
-
-class EchoService_Stub;
-
-class EchoService : public ::google::protobuf::Service {
- protected:
-  // This class should be treated as an abstract interface.
-  inline EchoService() {};
- public:
-  virtual ~EchoService();
-
-  typedef EchoService_Stub Stub;
-
-  static const ::google::protobuf::ServiceDescriptor* descriptor();
-
-  virtual void Echo(::google::protobuf::RpcController* controller,
-                       const ::iv::EchoRequest* request,
-                       ::iv::EchoResponse* response,
-                       ::google::protobuf::Closure* done);
-
-  // implements Service ----------------------------------------------
-
-  const ::google::protobuf::ServiceDescriptor* GetDescriptor();
-  void CallMethod(const ::google::protobuf::MethodDescriptor* method,
-                  ::google::protobuf::RpcController* controller,
-                  const ::google::protobuf::Message* request,
-                  ::google::protobuf::Message* response,
-                  ::google::protobuf::Closure* done);
-  const ::google::protobuf::Message& GetRequestPrototype(
-    const ::google::protobuf::MethodDescriptor* method) const;
-  const ::google::protobuf::Message& GetResponsePrototype(
-    const ::google::protobuf::MethodDescriptor* method) const;
-
- private:
-  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EchoService);
-};
-
-class EchoService_Stub : public EchoService {
- public:
-  EchoService_Stub(::google::protobuf::RpcChannel* channel);
-  EchoService_Stub(::google::protobuf::RpcChannel* channel,
-                   ::google::protobuf::Service::ChannelOwnership ownership);
-  ~EchoService_Stub();
-
-  inline ::google::protobuf::RpcChannel* channel() { return channel_; }
-
-  // implements EchoService ------------------------------------------
-
-  void Echo(::google::protobuf::RpcController* controller,
-                       const ::iv::EchoRequest* request,
-                       ::iv::EchoResponse* response,
-                       ::google::protobuf::Closure* done);
- private:
-  ::google::protobuf::RpcChannel* channel_;
-  bool owns_channel_;
-  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EchoService_Stub);
-};
-
-
-// ===================================================================
-
-
-// ===================================================================
-
-#if !PROTOBUF_INLINE_NOT_IN_HEADERS
-// EchoRequest
-
-// required string msgname = 1;
-inline bool EchoRequest::has_msgname() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void EchoRequest::set_has_msgname() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void EchoRequest::clear_has_msgname() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void EchoRequest::clear_msgname() {
-  msgname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_msgname();
-}
-inline const ::std::string& EchoRequest::msgname() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.msgname)
-  return msgname_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void EchoRequest::set_msgname(const ::std::string& value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.msgname)
-}
-inline void EchoRequest::set_msgname(const char* value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:iv.EchoRequest.msgname)
-}
-inline void EchoRequest::set_msgname(const char* value, size_t size) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:iv.EchoRequest.msgname)
-}
-inline ::std::string* EchoRequest::mutable_msgname() {
-  set_has_msgname();
-  // @@protoc_insertion_point(field_mutable:iv.EchoRequest.msgname)
-  return msgname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* EchoRequest::release_msgname() {
-  // @@protoc_insertion_point(field_release:iv.EchoRequest.msgname)
-  clear_has_msgname();
-  return msgname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void EchoRequest::set_allocated_msgname(::std::string* msgname) {
-  if (msgname != NULL) {
-    set_has_msgname();
-  } else {
-    clear_has_msgname();
-  }
-  msgname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), msgname);
-  // @@protoc_insertion_point(field_set_allocated:iv.EchoRequest.msgname)
-}
-
-// required int64 index = 2;
-inline bool EchoRequest::has_index() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void EchoRequest::set_has_index() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void EchoRequest::clear_has_index() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void EchoRequest::clear_index() {
-  index_ = GOOGLE_LONGLONG(0);
-  clear_has_index();
-}
-inline ::google::protobuf::int64 EchoRequest::index() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.index)
-  return index_;
-}
-inline void EchoRequest::set_index(::google::protobuf::int64 value) {
-  set_has_index();
-  index_ = value;
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.index)
-}
-
-// required int32 nlen = 3;
-inline bool EchoRequest::has_nlen() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void EchoRequest::set_has_nlen() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void EchoRequest::clear_has_nlen() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void EchoRequest::clear_nlen() {
-  nlen_ = 0;
-  clear_has_nlen();
-}
-inline ::google::protobuf::int32 EchoRequest::nlen() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.nlen)
-  return nlen_;
-}
-inline void EchoRequest::set_nlen(::google::protobuf::int32 value) {
-  set_has_nlen();
-  nlen_ = value;
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.nlen)
-}
-
-// optional bytes xdata = 4;
-inline bool EchoRequest::has_xdata() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void EchoRequest::set_has_xdata() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void EchoRequest::clear_has_xdata() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void EchoRequest::clear_xdata() {
-  xdata_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_xdata();
-}
-inline const ::std::string& EchoRequest::xdata() const {
-  // @@protoc_insertion_point(field_get:iv.EchoRequest.xdata)
-  return xdata_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void EchoRequest::set_xdata(const ::std::string& value) {
-  set_has_xdata();
-  xdata_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:iv.EchoRequest.xdata)
-}
-inline void EchoRequest::set_xdata(const char* value) {
-  set_has_xdata();
-  xdata_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:iv.EchoRequest.xdata)
-}
-inline void EchoRequest::set_xdata(const void* value, size_t size) {
-  set_has_xdata();
-  xdata_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:iv.EchoRequest.xdata)
-}
-inline ::std::string* EchoRequest::mutable_xdata() {
-  set_has_xdata();
-  // @@protoc_insertion_point(field_mutable:iv.EchoRequest.xdata)
-  return xdata_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* EchoRequest::release_xdata() {
-  // @@protoc_insertion_point(field_release:iv.EchoRequest.xdata)
-  clear_has_xdata();
-  return xdata_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void EchoRequest::set_allocated_xdata(::std::string* xdata) {
-  if (xdata != NULL) {
-    set_has_xdata();
-  } else {
-    clear_has_xdata();
-  }
-  xdata_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), xdata);
-  // @@protoc_insertion_point(field_set_allocated:iv.EchoRequest.xdata)
-}
-
-// -------------------------------------------------------------------
-
-// EchoResponse
-
-// required string msgname = 1;
-inline bool EchoResponse::has_msgname() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void EchoResponse::set_has_msgname() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void EchoResponse::clear_has_msgname() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void EchoResponse::clear_msgname() {
-  msgname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_msgname();
-}
-inline const ::std::string& EchoResponse::msgname() const {
-  // @@protoc_insertion_point(field_get:iv.EchoResponse.msgname)
-  return msgname_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void EchoResponse::set_msgname(const ::std::string& value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:iv.EchoResponse.msgname)
-}
-inline void EchoResponse::set_msgname(const char* value) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:iv.EchoResponse.msgname)
-}
-inline void EchoResponse::set_msgname(const char* value, size_t size) {
-  set_has_msgname();
-  msgname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:iv.EchoResponse.msgname)
-}
-inline ::std::string* EchoResponse::mutable_msgname() {
-  set_has_msgname();
-  // @@protoc_insertion_point(field_mutable:iv.EchoResponse.msgname)
-  return msgname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* EchoResponse::release_msgname() {
-  // @@protoc_insertion_point(field_release:iv.EchoResponse.msgname)
-  clear_has_msgname();
-  return msgname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void EchoResponse::set_allocated_msgname(::std::string* msgname) {
-  if (msgname != NULL) {
-    set_has_msgname();
-  } else {
-    clear_has_msgname();
-  }
-  msgname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), msgname);
-  // @@protoc_insertion_point(field_set_allocated:iv.EchoResponse.msgname)
-}
-
-// required int64 index = 2;
-inline bool EchoResponse::has_index() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void EchoResponse::set_has_index() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void EchoResponse::clear_has_index() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void EchoResponse::clear_index() {
-  index_ = GOOGLE_LONGLONG(0);
-  clear_has_index();
-}
-inline ::google::protobuf::int64 EchoResponse::index() const {
-  // @@protoc_insertion_point(field_get:iv.EchoResponse.index)
-  return index_;
-}
-inline void EchoResponse::set_index(::google::protobuf::int64 value) {
-  set_has_index();
-  index_ = value;
-  // @@protoc_insertion_point(field_set:iv.EchoResponse.index)
-}
-
-#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace iv
-
-// @@protoc_insertion_point(global_scope)
-
-#endif  // PROTOBUF_echo_2eproto__INCLUDED