Browse Source

add uploadthreadmsg.grpc.pb -f.

yuchuli 2 years ago
parent
commit
7a982ec43e

+ 212 - 0
src/driver/driver_cloud_grpc_client_h264/uploadthreadmsg.grpc.pb.cc

@@ -0,0 +1,212 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: uploadthreadmsg.proto
+
+#include "uploadthreadmsg.pb.h"
+#include "uploadthreadmsg.grpc.pb.h"
+
+#include <functional>
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/async_unary_call.h>
+#include <grpcpp/impl/codegen/channel_interface.h>
+#include <grpcpp/impl/codegen/client_unary_call.h>
+#include <grpcpp/impl/codegen/client_callback.h>
+#include <grpcpp/impl/codegen/message_allocator.h>
+#include <grpcpp/impl/codegen/method_handler.h>
+#include <grpcpp/impl/codegen/rpc_service_method.h>
+#include <grpcpp/impl/codegen/server_callback.h>
+#include <grpcpp/impl/codegen/server_callback_handlers.h>
+#include <grpcpp/impl/codegen/server_context.h>
+#include <grpcpp/impl/codegen/service_type.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+namespace iv {
+
+static const char* UploadThread_method_names[] = {
+  "/iv.UploadThread/uploaddata",
+  "/iv.UploadThread/uploadpic",
+  "/iv.UploadThread/queryctrl",
+  "/iv.UploadThread/querypic",
+};
+
+std::unique_ptr< UploadThread::Stub> UploadThread::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
+  (void)options;
+  std::unique_ptr< UploadThread::Stub> stub(new UploadThread::Stub(channel));
+  return stub;
+}
+
+UploadThread::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
+  : channel_(channel), rpcmethod_uploaddata_(UploadThread_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_uploadpic_(UploadThread_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_queryctrl_(UploadThread_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_querypic_(UploadThread_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  {}
+
+::grpc::Status UploadThread::Stub::uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::iv::UploadReplyThread* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::iv::UploadRequestThread, ::iv::UploadReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_uploaddata_, context, request, response);
+}
+
+void UploadThread::Stub::experimental_async::uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::iv::UploadRequestThread, ::iv::UploadReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_uploaddata_, context, request, response, std::move(f));
+}
+
+void UploadThread::Stub::experimental_async::uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_uploaddata_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>* UploadThread::Stub::PrepareAsyncuploaddataRaw(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::iv::UploadReplyThread, ::iv::UploadRequestThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_uploaddata_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>* UploadThread::Stub::AsyncuploaddataRaw(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncuploaddataRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
+::grpc::Status UploadThread::Stub::uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::iv::PicUpReplyThread* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::iv::PicUpRequestThread, ::iv::PicUpReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_uploadpic_, context, request, response);
+}
+
+void UploadThread::Stub::experimental_async::uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::iv::PicUpRequestThread, ::iv::PicUpReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_uploadpic_, context, request, response, std::move(f));
+}
+
+void UploadThread::Stub::experimental_async::uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_uploadpic_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>* UploadThread::Stub::PrepareAsyncuploadpicRaw(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::iv::PicUpReplyThread, ::iv::PicUpRequestThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_uploadpic_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>* UploadThread::Stub::AsyncuploadpicRaw(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncuploadpicRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
+::grpc::Status UploadThread::Stub::queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::iv::queryReplyThread* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::iv::queryReqThread, ::iv::queryReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_queryctrl_, context, request, response);
+}
+
+void UploadThread::Stub::experimental_async::queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::iv::queryReqThread, ::iv::queryReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_queryctrl_, context, request, response, std::move(f));
+}
+
+void UploadThread::Stub::experimental_async::queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_queryctrl_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>* UploadThread::Stub::PrepareAsyncqueryctrlRaw(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::iv::queryReplyThread, ::iv::queryReqThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_queryctrl_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>* UploadThread::Stub::AsyncqueryctrlRaw(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncqueryctrlRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
+::grpc::Status UploadThread::Stub::querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::iv::PicDownReplyThread* response) {
+  return ::grpc::internal::BlockingUnaryCall< ::iv::PicDownReqThread, ::iv::PicDownReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_querypic_, context, request, response);
+}
+
+void UploadThread::Stub::experimental_async::querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall< ::iv::PicDownReqThread, ::iv::PicDownReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_querypic_, context, request, response, std::move(f));
+}
+
+void UploadThread::Stub::experimental_async::querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_querypic_, context, request, response, reactor);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>* UploadThread::Stub::PrepareAsyncquerypicRaw(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::iv::PicDownReplyThread, ::iv::PicDownReqThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_querypic_, context, request);
+}
+
+::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>* UploadThread::Stub::AsyncquerypicRaw(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) {
+  auto* result =
+    this->PrepareAsyncquerypicRaw(context, request, cq);
+  result->StartCall();
+  return result;
+}
+
+UploadThread::Service::Service() {
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      UploadThread_method_names[0],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< UploadThread::Service, ::iv::UploadRequestThread, ::iv::UploadReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](UploadThread::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::iv::UploadRequestThread* req,
+             ::iv::UploadReplyThread* resp) {
+               return service->uploaddata(ctx, req, resp);
+             }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      UploadThread_method_names[1],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< UploadThread::Service, ::iv::PicUpRequestThread, ::iv::PicUpReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](UploadThread::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::iv::PicUpRequestThread* req,
+             ::iv::PicUpReplyThread* resp) {
+               return service->uploadpic(ctx, req, resp);
+             }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      UploadThread_method_names[2],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< UploadThread::Service, ::iv::queryReqThread, ::iv::queryReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](UploadThread::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::iv::queryReqThread* req,
+             ::iv::queryReplyThread* resp) {
+               return service->queryctrl(ctx, req, resp);
+             }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      UploadThread_method_names[3],
+      ::grpc::internal::RpcMethod::NORMAL_RPC,
+      new ::grpc::internal::RpcMethodHandler< UploadThread::Service, ::iv::PicDownReqThread, ::iv::PicDownReplyThread, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
+          [](UploadThread::Service* service,
+             ::grpc::ServerContext* ctx,
+             const ::iv::PicDownReqThread* req,
+             ::iv::PicDownReplyThread* resp) {
+               return service->querypic(ctx, req, resp);
+             }, this)));
+}
+
+UploadThread::Service::~Service() {
+}
+
+::grpc::Status UploadThread::Service::uploaddata(::grpc::ServerContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status UploadThread::Service::uploadpic(::grpc::ServerContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status UploadThread::Service::queryctrl(::grpc::ServerContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+::grpc::Status UploadThread::Service::querypic(::grpc::ServerContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response) {
+  (void) context;
+  (void) request;
+  (void) response;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
+
+}  // namespace iv
+

+ 914 - 0
src/driver/driver_cloud_grpc_client_h264/uploadthreadmsg.grpc.pb.h

@@ -0,0 +1,914 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: uploadthreadmsg.proto
+// Original file comments:
+// Copyright 2015 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef GRPC_uploadthreadmsg_2eproto__INCLUDED
+#define GRPC_uploadthreadmsg_2eproto__INCLUDED
+
+#include "uploadthreadmsg.pb.h"
+
+#include <functional>
+#include <grpc/impl/codegen/port_platform.h>
+#include <grpcpp/impl/codegen/async_generic_service.h>
+#include <grpcpp/impl/codegen/async_stream.h>
+#include <grpcpp/impl/codegen/async_unary_call.h>
+#include <grpcpp/impl/codegen/client_callback.h>
+#include <grpcpp/impl/codegen/client_context.h>
+#include <grpcpp/impl/codegen/completion_queue.h>
+#include <grpcpp/impl/codegen/message_allocator.h>
+#include <grpcpp/impl/codegen/method_handler.h>
+#include <grpcpp/impl/codegen/proto_utils.h>
+#include <grpcpp/impl/codegen/rpc_method.h>
+#include <grpcpp/impl/codegen/server_callback.h>
+#include <grpcpp/impl/codegen/server_callback_handlers.h>
+#include <grpcpp/impl/codegen/server_context.h>
+#include <grpcpp/impl/codegen/service_type.h>
+#include <grpcpp/impl/codegen/status.h>
+#include <grpcpp/impl/codegen/stub_options.h>
+#include <grpcpp/impl/codegen/sync_stream.h>
+
+namespace iv {
+
+// The Upload service definition.
+class UploadThread final {
+ public:
+  static constexpr char const* service_full_name() {
+    return "iv.UploadThread";
+  }
+  class StubInterface {
+   public:
+    virtual ~StubInterface() {}
+    // Sends a Upload
+    virtual ::grpc::Status uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::iv::UploadReplyThread* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::UploadReplyThread>> Asyncuploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::UploadReplyThread>>(AsyncuploaddataRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::UploadReplyThread>> PrepareAsyncuploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::UploadReplyThread>>(PrepareAsyncuploaddataRaw(context, request, cq));
+    }
+    virtual ::grpc::Status uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::iv::PicUpReplyThread* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicUpReplyThread>> Asyncuploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicUpReplyThread>>(AsyncuploadpicRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicUpReplyThread>> PrepareAsyncuploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicUpReplyThread>>(PrepareAsyncuploadpicRaw(context, request, cq));
+    }
+    virtual ::grpc::Status queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::iv::queryReplyThread* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::queryReplyThread>> Asyncqueryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::queryReplyThread>>(AsyncqueryctrlRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::queryReplyThread>> PrepareAsyncqueryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::queryReplyThread>>(PrepareAsyncqueryctrlRaw(context, request, cq));
+    }
+    virtual ::grpc::Status querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::iv::PicDownReplyThread* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicDownReplyThread>> Asyncquerypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicDownReplyThread>>(AsyncquerypicRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicDownReplyThread>> PrepareAsyncquerypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicDownReplyThread>>(PrepareAsyncquerypicRaw(context, request, cq));
+    }
+    class experimental_async_interface {
+     public:
+      virtual ~experimental_async_interface() {}
+      // Sends a Upload
+      virtual void uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, std::function<void(::grpc::Status)>) = 0;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      virtual void uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      #else
+      virtual void uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
+      #endif
+      virtual void uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, std::function<void(::grpc::Status)>) = 0;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      virtual void uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      #else
+      virtual void uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
+      #endif
+      virtual void queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, std::function<void(::grpc::Status)>) = 0;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      virtual void queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      #else
+      virtual void queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
+      #endif
+      virtual void querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, std::function<void(::grpc::Status)>) = 0;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      virtual void querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      #else
+      virtual void querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
+      #endif
+    };
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    typedef class experimental_async_interface async_interface;
+    #endif
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    async_interface* async() { return experimental_async(); }
+    #endif
+    virtual class experimental_async_interface* experimental_async() { return nullptr; }
+  private:
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::UploadReplyThread>* AsyncuploaddataRaw(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::UploadReplyThread>* PrepareAsyncuploaddataRaw(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicUpReplyThread>* AsyncuploadpicRaw(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicUpReplyThread>* PrepareAsyncuploadpicRaw(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::queryReplyThread>* AsyncqueryctrlRaw(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::queryReplyThread>* PrepareAsyncqueryctrlRaw(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicDownReplyThread>* AsyncquerypicRaw(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::iv::PicDownReplyThread>* PrepareAsyncquerypicRaw(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) = 0;
+  };
+  class Stub final : public StubInterface {
+   public:
+    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
+    ::grpc::Status uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::iv::UploadReplyThread* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>> Asyncuploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>>(AsyncuploaddataRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>> PrepareAsyncuploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>>(PrepareAsyncuploaddataRaw(context, request, cq));
+    }
+    ::grpc::Status uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::iv::PicUpReplyThread* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>> Asyncuploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>>(AsyncuploadpicRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>> PrepareAsyncuploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>>(PrepareAsyncuploadpicRaw(context, request, cq));
+    }
+    ::grpc::Status queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::iv::queryReplyThread* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>> Asyncqueryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>>(AsyncqueryctrlRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>> PrepareAsyncqueryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>>(PrepareAsyncqueryctrlRaw(context, request, cq));
+    }
+    ::grpc::Status querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::iv::PicDownReplyThread* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>> Asyncquerypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>>(AsyncquerypicRaw(context, request, cq));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>> PrepareAsyncquerypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>>(PrepareAsyncquerypicRaw(context, request, cq));
+    }
+    class experimental_async final :
+      public StubInterface::experimental_async_interface {
+     public:
+      void uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, std::function<void(::grpc::Status)>) override;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      void uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, ::grpc::ClientUnaryReactor* reactor) override;
+      #else
+      void uploaddata(::grpc::ClientContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
+      #endif
+      void uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, std::function<void(::grpc::Status)>) override;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      void uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, ::grpc::ClientUnaryReactor* reactor) override;
+      #else
+      void uploadpic(::grpc::ClientContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
+      #endif
+      void queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, std::function<void(::grpc::Status)>) override;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      void queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, ::grpc::ClientUnaryReactor* reactor) override;
+      #else
+      void queryctrl(::grpc::ClientContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
+      #endif
+      void querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, std::function<void(::grpc::Status)>) override;
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      void querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, ::grpc::ClientUnaryReactor* reactor) override;
+      #else
+      void querypic(::grpc::ClientContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
+      #endif
+     private:
+      friend class Stub;
+      explicit experimental_async(Stub* stub): stub_(stub) { }
+      Stub* stub() { return stub_; }
+      Stub* stub_;
+    };
+    class experimental_async_interface* experimental_async() override { return &async_stub_; }
+
+   private:
+    std::shared_ptr< ::grpc::ChannelInterface> channel_;
+    class experimental_async async_stub_{this};
+    ::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>* AsyncuploaddataRaw(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::UploadReplyThread>* PrepareAsyncuploaddataRaw(::grpc::ClientContext* context, const ::iv::UploadRequestThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>* AsyncuploadpicRaw(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::PicUpReplyThread>* PrepareAsyncuploadpicRaw(::grpc::ClientContext* context, const ::iv::PicUpRequestThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>* AsyncqueryctrlRaw(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::queryReplyThread>* PrepareAsyncqueryctrlRaw(::grpc::ClientContext* context, const ::iv::queryReqThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>* AsyncquerypicRaw(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::iv::PicDownReplyThread>* PrepareAsyncquerypicRaw(::grpc::ClientContext* context, const ::iv::PicDownReqThread& request, ::grpc::CompletionQueue* cq) override;
+    const ::grpc::internal::RpcMethod rpcmethod_uploaddata_;
+    const ::grpc::internal::RpcMethod rpcmethod_uploadpic_;
+    const ::grpc::internal::RpcMethod rpcmethod_queryctrl_;
+    const ::grpc::internal::RpcMethod rpcmethod_querypic_;
+  };
+  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
+
+  class Service : public ::grpc::Service {
+   public:
+    Service();
+    virtual ~Service();
+    // Sends a Upload
+    virtual ::grpc::Status uploaddata(::grpc::ServerContext* context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response);
+    virtual ::grpc::Status uploadpic(::grpc::ServerContext* context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response);
+    virtual ::grpc::Status queryctrl(::grpc::ServerContext* context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response);
+    virtual ::grpc::Status querypic(::grpc::ServerContext* context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response);
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_uploaddata : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_uploaddata() {
+      ::grpc::Service::MarkMethodAsync(0);
+    }
+    ~WithAsyncMethod_uploaddata() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploaddata(::grpc::ServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestuploaddata(::grpc::ServerContext* context, ::iv::UploadRequestThread* request, ::grpc::ServerAsyncResponseWriter< ::iv::UploadReplyThread>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_uploadpic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_uploadpic() {
+      ::grpc::Service::MarkMethodAsync(1);
+    }
+    ~WithAsyncMethod_uploadpic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploadpic(::grpc::ServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestuploadpic(::grpc::ServerContext* context, ::iv::PicUpRequestThread* request, ::grpc::ServerAsyncResponseWriter< ::iv::PicUpReplyThread>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_queryctrl : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_queryctrl() {
+      ::grpc::Service::MarkMethodAsync(2);
+    }
+    ~WithAsyncMethod_queryctrl() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status queryctrl(::grpc::ServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestqueryctrl(::grpc::ServerContext* context, ::iv::queryReqThread* request, ::grpc::ServerAsyncResponseWriter< ::iv::queryReplyThread>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithAsyncMethod_querypic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_querypic() {
+      ::grpc::Service::MarkMethodAsync(3);
+    }
+    ~WithAsyncMethod_querypic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status querypic(::grpc::ServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestquerypic(::grpc::ServerContext* context, ::iv::PicDownReqThread* request, ::grpc::ServerAsyncResponseWriter< ::iv::PicDownReplyThread>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  typedef WithAsyncMethod_uploaddata<WithAsyncMethod_uploadpic<WithAsyncMethod_queryctrl<WithAsyncMethod_querypic<Service > > > > AsyncService;
+  template <class BaseClass>
+  class ExperimentalWithCallbackMethod_uploaddata : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithCallbackMethod_uploaddata() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodCallback(0,
+          new ::grpc::internal::CallbackUnaryHandler< ::iv::UploadRequestThread, ::iv::UploadReplyThread>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::iv::UploadRequestThread* request, ::iv::UploadReplyThread* response) { return this->uploaddata(context, request, response); }));}
+    void SetMessageAllocatorFor_uploaddata(
+        ::grpc::experimental::MessageAllocator< ::iv::UploadRequestThread, ::iv::UploadReplyThread>* allocator) {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0);
+    #else
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(0);
+    #endif
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::iv::UploadRequestThread, ::iv::UploadReplyThread>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~ExperimentalWithCallbackMethod_uploaddata() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploaddata(::grpc::ServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* uploaddata(
+      ::grpc::CallbackServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* uploaddata(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class ExperimentalWithCallbackMethod_uploadpic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithCallbackMethod_uploadpic() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodCallback(1,
+          new ::grpc::internal::CallbackUnaryHandler< ::iv::PicUpRequestThread, ::iv::PicUpReplyThread>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::iv::PicUpRequestThread* request, ::iv::PicUpReplyThread* response) { return this->uploadpic(context, request, response); }));}
+    void SetMessageAllocatorFor_uploadpic(
+        ::grpc::experimental::MessageAllocator< ::iv::PicUpRequestThread, ::iv::PicUpReplyThread>* allocator) {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1);
+    #else
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(1);
+    #endif
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::iv::PicUpRequestThread, ::iv::PicUpReplyThread>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~ExperimentalWithCallbackMethod_uploadpic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploadpic(::grpc::ServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* uploadpic(
+      ::grpc::CallbackServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* uploadpic(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class ExperimentalWithCallbackMethod_queryctrl : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithCallbackMethod_queryctrl() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodCallback(2,
+          new ::grpc::internal::CallbackUnaryHandler< ::iv::queryReqThread, ::iv::queryReplyThread>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::iv::queryReqThread* request, ::iv::queryReplyThread* response) { return this->queryctrl(context, request, response); }));}
+    void SetMessageAllocatorFor_queryctrl(
+        ::grpc::experimental::MessageAllocator< ::iv::queryReqThread, ::iv::queryReplyThread>* allocator) {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2);
+    #else
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(2);
+    #endif
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::iv::queryReqThread, ::iv::queryReplyThread>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~ExperimentalWithCallbackMethod_queryctrl() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status queryctrl(::grpc::ServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* queryctrl(
+      ::grpc::CallbackServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* queryctrl(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class ExperimentalWithCallbackMethod_querypic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithCallbackMethod_querypic() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodCallback(3,
+          new ::grpc::internal::CallbackUnaryHandler< ::iv::PicDownReqThread, ::iv::PicDownReplyThread>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::iv::PicDownReqThread* request, ::iv::PicDownReplyThread* response) { return this->querypic(context, request, response); }));}
+    void SetMessageAllocatorFor_querypic(
+        ::grpc::experimental::MessageAllocator< ::iv::PicDownReqThread, ::iv::PicDownReplyThread>* allocator) {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(3);
+    #else
+      ::grpc::internal::MethodHandler* const handler = ::grpc::Service::experimental().GetHandler(3);
+    #endif
+      static_cast<::grpc::internal::CallbackUnaryHandler< ::iv::PicDownReqThread, ::iv::PicDownReplyThread>*>(handler)
+              ->SetMessageAllocator(allocator);
+    }
+    ~ExperimentalWithCallbackMethod_querypic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status querypic(::grpc::ServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* querypic(
+      ::grpc::CallbackServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* querypic(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+  typedef ExperimentalWithCallbackMethod_uploaddata<ExperimentalWithCallbackMethod_uploadpic<ExperimentalWithCallbackMethod_queryctrl<ExperimentalWithCallbackMethod_querypic<Service > > > > CallbackService;
+  #endif
+
+  typedef ExperimentalWithCallbackMethod_uploaddata<ExperimentalWithCallbackMethod_uploadpic<ExperimentalWithCallbackMethod_queryctrl<ExperimentalWithCallbackMethod_querypic<Service > > > > ExperimentalCallbackService;
+  template <class BaseClass>
+  class WithGenericMethod_uploaddata : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_uploaddata() {
+      ::grpc::Service::MarkMethodGeneric(0);
+    }
+    ~WithGenericMethod_uploaddata() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploaddata(::grpc::ServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_uploadpic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_uploadpic() {
+      ::grpc::Service::MarkMethodGeneric(1);
+    }
+    ~WithGenericMethod_uploadpic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploadpic(::grpc::ServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_queryctrl : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_queryctrl() {
+      ::grpc::Service::MarkMethodGeneric(2);
+    }
+    ~WithGenericMethod_queryctrl() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status queryctrl(::grpc::ServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithGenericMethod_querypic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_querypic() {
+      ::grpc::Service::MarkMethodGeneric(3);
+    }
+    ~WithGenericMethod_querypic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status querypic(::grpc::ServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_uploaddata : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_uploaddata() {
+      ::grpc::Service::MarkMethodRaw(0);
+    }
+    ~WithRawMethod_uploaddata() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploaddata(::grpc::ServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestuploaddata(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_uploadpic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_uploadpic() {
+      ::grpc::Service::MarkMethodRaw(1);
+    }
+    ~WithRawMethod_uploadpic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploadpic(::grpc::ServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestuploadpic(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_queryctrl : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_queryctrl() {
+      ::grpc::Service::MarkMethodRaw(2);
+    }
+    ~WithRawMethod_queryctrl() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status queryctrl(::grpc::ServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestqueryctrl(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class WithRawMethod_querypic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_querypic() {
+      ::grpc::Service::MarkMethodRaw(3);
+    }
+    ~WithRawMethod_querypic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status querypic(::grpc::ServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void Requestquerypic(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
+  class ExperimentalWithRawCallbackMethod_uploaddata : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithRawCallbackMethod_uploaddata() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodRawCallback(0,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->uploaddata(context, request, response); }));
+    }
+    ~ExperimentalWithRawCallbackMethod_uploaddata() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploaddata(::grpc::ServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* uploaddata(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* uploaddata(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class ExperimentalWithRawCallbackMethod_uploadpic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithRawCallbackMethod_uploadpic() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodRawCallback(1,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->uploadpic(context, request, response); }));
+    }
+    ~ExperimentalWithRawCallbackMethod_uploadpic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status uploadpic(::grpc::ServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* uploadpic(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* uploadpic(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class ExperimentalWithRawCallbackMethod_queryctrl : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithRawCallbackMethod_queryctrl() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodRawCallback(2,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->queryctrl(context, request, response); }));
+    }
+    ~ExperimentalWithRawCallbackMethod_queryctrl() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status queryctrl(::grpc::ServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* queryctrl(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* queryctrl(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class ExperimentalWithRawCallbackMethod_querypic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithRawCallbackMethod_querypic() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodRawCallback(3,
+          new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->querypic(context, request, response); }));
+    }
+    ~ExperimentalWithRawCallbackMethod_querypic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status querypic(::grpc::ServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerUnaryReactor* querypic(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #else
+    virtual ::grpc::experimental::ServerUnaryReactor* querypic(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_uploaddata : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_uploaddata() {
+      ::grpc::Service::MarkMethodStreamed(0,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::iv::UploadRequestThread, ::iv::UploadReplyThread>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::iv::UploadRequestThread, ::iv::UploadReplyThread>* streamer) {
+                       return this->Streameduploaddata(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_uploaddata() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status uploaddata(::grpc::ServerContext* /*context*/, const ::iv::UploadRequestThread* /*request*/, ::iv::UploadReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status Streameduploaddata(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::iv::UploadRequestThread,::iv::UploadReplyThread>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_uploadpic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_uploadpic() {
+      ::grpc::Service::MarkMethodStreamed(1,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::iv::PicUpRequestThread, ::iv::PicUpReplyThread>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::iv::PicUpRequestThread, ::iv::PicUpReplyThread>* streamer) {
+                       return this->Streameduploadpic(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_uploadpic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status uploadpic(::grpc::ServerContext* /*context*/, const ::iv::PicUpRequestThread* /*request*/, ::iv::PicUpReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status Streameduploadpic(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::iv::PicUpRequestThread,::iv::PicUpReplyThread>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_queryctrl : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_queryctrl() {
+      ::grpc::Service::MarkMethodStreamed(2,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::iv::queryReqThread, ::iv::queryReplyThread>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::iv::queryReqThread, ::iv::queryReplyThread>* streamer) {
+                       return this->Streamedqueryctrl(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_queryctrl() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status queryctrl(::grpc::ServerContext* /*context*/, const ::iv::queryReqThread* /*request*/, ::iv::queryReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status Streamedqueryctrl(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::iv::queryReqThread,::iv::queryReplyThread>* server_unary_streamer) = 0;
+  };
+  template <class BaseClass>
+  class WithStreamedUnaryMethod_querypic : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithStreamedUnaryMethod_querypic() {
+      ::grpc::Service::MarkMethodStreamed(3,
+        new ::grpc::internal::StreamedUnaryHandler<
+          ::iv::PicDownReqThread, ::iv::PicDownReplyThread>(
+            [this](::grpc::ServerContext* context,
+                   ::grpc::ServerUnaryStreamer<
+                     ::iv::PicDownReqThread, ::iv::PicDownReplyThread>* streamer) {
+                       return this->Streamedquerypic(context,
+                         streamer);
+                  }));
+    }
+    ~WithStreamedUnaryMethod_querypic() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status querypic(::grpc::ServerContext* /*context*/, const ::iv::PicDownReqThread* /*request*/, ::iv::PicDownReplyThread* /*response*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with streamed unary
+    virtual ::grpc::Status Streamedquerypic(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::iv::PicDownReqThread,::iv::PicDownReplyThread>* server_unary_streamer) = 0;
+  };
+  typedef WithStreamedUnaryMethod_uploaddata<WithStreamedUnaryMethod_uploadpic<WithStreamedUnaryMethod_queryctrl<WithStreamedUnaryMethod_querypic<Service > > > > StreamedUnaryService;
+  typedef Service SplitStreamedService;
+  typedef WithStreamedUnaryMethod_uploaddata<WithStreamedUnaryMethod_uploadpic<WithStreamedUnaryMethod_queryctrl<WithStreamedUnaryMethod_querypic<Service > > > > StreamedService;
+};
+
+}  // namespace iv
+
+
+#endif  // GRPC_uploadthreadmsg_2eproto__INCLUDED