// Generated by the gRPC C++ plugin.
// If you make any local change, they will be lost.
// source: hillab_beam_profiler.proto

#include "hillab_beam_profiler.pb.h"
#include "hillab_beam_profiler.grpc.pb.h"

#include <functional>
#include <grpcpp/support/async_stream.h>
#include <grpcpp/support/async_unary_call.h>
#include <grpcpp/impl/channel_interface.h>
#include <grpcpp/impl/client_unary_call.h>
#include <grpcpp/support/client_callback.h>
#include <grpcpp/support/message_allocator.h>
#include <grpcpp/support/method_handler.h>
#include <grpcpp/impl/rpc_service_method.h>
#include <grpcpp/support/server_callback.h>
#include <grpcpp/impl/server_callback_handlers.h>
#include <grpcpp/server_context.h>
#include <grpcpp/impl/service_type.h>
#include <grpcpp/support/sync_stream.h>
namespace hillab {
namespace v4 {

static const char* BeamProfiler_method_names[] = {
  "/hillab.v4.BeamProfiler/Get",
  "/hillab.v4.BeamProfiler/Set",
  "/hillab.v4.BeamProfiler/ResetData",
  "/hillab.v4.BeamProfiler/MonitorBeamProfile",
};

std::unique_ptr< BeamProfiler::Stub> BeamProfiler::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
  (void)options;
  std::unique_ptr< BeamProfiler::Stub> stub(new BeamProfiler::Stub(channel, options));
  return stub;
}

BeamProfiler::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
  : channel_(channel), rpcmethod_Get_(BeamProfiler_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Set_(BeamProfiler_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ResetData_(BeamProfiler_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_MonitorBeamProfile_(BeamProfiler_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  {}

::grpc::Status BeamProfiler::Stub::Get(::grpc::ClientContext* context, const ::hillab::v4::GetRequest& request, ::hillab::v4::GetResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::GetRequest, ::hillab::v4::GetResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Get_, context, request, response);
}

void BeamProfiler::Stub::async::Get(::grpc::ClientContext* context, const ::hillab::v4::GetRequest* request, ::hillab::v4::GetResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::GetRequest, ::hillab::v4::GetResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Get_, context, request, response, std::move(f));
}

void BeamProfiler::Stub::async::Get(::grpc::ClientContext* context, const ::hillab::v4::GetRequest* request, ::hillab::v4::GetResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Get_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::GetResponse>* BeamProfiler::Stub::PrepareAsyncGetRaw(::grpc::ClientContext* context, const ::hillab::v4::GetRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::GetResponse, ::hillab::v4::GetRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Get_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::GetResponse>* BeamProfiler::Stub::AsyncGetRaw(::grpc::ClientContext* context, const ::hillab::v4::GetRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status BeamProfiler::Stub::Set(::grpc::ClientContext* context, const ::hillab::v4::SetRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::SetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Set_, context, request, response);
}

void BeamProfiler::Stub::async::Set(::grpc::ClientContext* context, const ::hillab::v4::SetRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::SetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Set_, context, request, response, std::move(f));
}

void BeamProfiler::Stub::async::Set(::grpc::ClientContext* context, const ::hillab::v4::SetRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Set_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* BeamProfiler::Stub::PrepareAsyncSetRaw(::grpc::ClientContext* context, const ::hillab::v4::SetRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::SetRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Set_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* BeamProfiler::Stub::AsyncSetRaw(::grpc::ClientContext* context, const ::hillab::v4::SetRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncSetRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status BeamProfiler::Stub::ResetData(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ResetData_, context, request, response);
}

void BeamProfiler::Stub::async::ResetData(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ResetData_, context, request, response, std::move(f));
}

void BeamProfiler::Stub::async::ResetData(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ResetData_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* BeamProfiler::Stub::PrepareAsyncResetDataRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ResetData_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* BeamProfiler::Stub::AsyncResetDataRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncResetDataRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::ClientReader< ::hillab::v4::BeamProfileStream>* BeamProfiler::Stub::MonitorBeamProfileRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
  return ::grpc::internal::ClientReaderFactory< ::hillab::v4::BeamProfileStream>::Create(channel_.get(), rpcmethod_MonitorBeamProfile_, context, request);
}

void BeamProfiler::Stub::async::MonitorBeamProfile(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::hillab::v4::BeamProfileStream>* reactor) {
  ::grpc::internal::ClientCallbackReaderFactory< ::hillab::v4::BeamProfileStream>::Create(stub_->channel_.get(), stub_->rpcmethod_MonitorBeamProfile_, context, request, reactor);
}

::grpc::ClientAsyncReader< ::hillab::v4::BeamProfileStream>* BeamProfiler::Stub::AsyncMonitorBeamProfileRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::hillab::v4::BeamProfileStream>::Create(channel_.get(), cq, rpcmethod_MonitorBeamProfile_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::hillab::v4::BeamProfileStream>* BeamProfiler::Stub::PrepareAsyncMonitorBeamProfileRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::hillab::v4::BeamProfileStream>::Create(channel_.get(), cq, rpcmethod_MonitorBeamProfile_, context, request, false, nullptr);
}

BeamProfiler::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      BeamProfiler_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< BeamProfiler::Service, ::hillab::v4::GetRequest, ::hillab::v4::GetResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](BeamProfiler::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::GetRequest* req,
             ::hillab::v4::GetResponse* resp) {
               return service->Get(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      BeamProfiler_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< BeamProfiler::Service, ::hillab::v4::SetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](BeamProfiler::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::SetRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->Set(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      BeamProfiler_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< BeamProfiler::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](BeamProfiler::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::google::protobuf::Empty* resp) {
               return service->ResetData(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      BeamProfiler_method_names[3],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< BeamProfiler::Service, ::google::protobuf::Empty, ::hillab::v4::BeamProfileStream>(
          [](BeamProfiler::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::grpc::ServerWriter<::hillab::v4::BeamProfileStream>* writer) {
               return service->MonitorBeamProfile(ctx, req, writer);
             }, this)));
}

BeamProfiler::Service::~Service() {
}

::grpc::Status BeamProfiler::Service::Get(::grpc::ServerContext* context, const ::hillab::v4::GetRequest* request, ::hillab::v4::GetResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status BeamProfiler::Service::Set(::grpc::ServerContext* context, const ::hillab::v4::SetRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status BeamProfiler::Service::ResetData(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status BeamProfiler::Service::MonitorBeamProfile(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::hillab::v4::BeamProfileStream>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


static const char* System_method_names[] = {
  "/hillab.v4.System/GetAppInfo",
  "/hillab.v4.System/GetSettingList",
  "/hillab.v4.System/GetCurrentSetting",
  "/hillab.v4.System/LoadSetting",
  "/hillab.v4.System/SaveSetting",
  "/hillab.v4.System/AddSetting",
  "/hillab.v4.System/RemoveSetting",
  "/hillab.v4.System/GetDeviceList",
  "/hillab.v4.System/ConnectLastDevice",
  "/hillab.v4.System/ConnectDevice",
  "/hillab.v4.System/DisconnectDevice",
  "/hillab.v4.System/GetRawImageStreamServerInfo",
  "/hillab.v4.System/GetProfiledImageStreamServerInfo",
  "/hillab.v4.System/SetRawImageStreamServer",
  "/hillab.v4.System/SetProfiledImageStreamServer",
  "/hillab.v4.System/MonitorSystemLog",
};

std::unique_ptr< System::Stub> System::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
  (void)options;
  std::unique_ptr< System::Stub> stub(new System::Stub(channel, options));
  return stub;
}

System::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
  : channel_(channel), rpcmethod_GetAppInfo_(System_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetSettingList_(System_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetCurrentSetting_(System_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_LoadSetting_(System_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_SaveSetting_(System_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_AddSetting_(System_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_RemoveSetting_(System_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetDeviceList_(System_method_names[7], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ConnectLastDevice_(System_method_names[8], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_ConnectDevice_(System_method_names[9], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_DisconnectDevice_(System_method_names[10], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetRawImageStreamServerInfo_(System_method_names[11], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetProfiledImageStreamServerInfo_(System_method_names[12], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_SetRawImageStreamServer_(System_method_names[13], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_SetProfiledImageStreamServer_(System_method_names[14], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_MonitorSystemLog_(System_method_names[15], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
  {}

::grpc::Status System::Stub::GetAppInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::AppInfoResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::AppInfoResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetAppInfo_, context, request, response);
}

void System::Stub::async::GetAppInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::AppInfoResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::hillab::v4::AppInfoResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetAppInfo_, context, request, response, std::move(f));
}

void System::Stub::async::GetAppInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::AppInfoResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetAppInfo_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::AppInfoResponse>* System::Stub::PrepareAsyncGetAppInfoRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::AppInfoResponse, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetAppInfo_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::AppInfoResponse>* System::Stub::AsyncGetAppInfoRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetAppInfoRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::GetSettingList(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::SettingListResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::SettingListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetSettingList_, context, request, response);
}

void System::Stub::async::GetSettingList(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::SettingListResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::hillab::v4::SettingListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSettingList_, context, request, response, std::move(f));
}

void System::Stub::async::GetSettingList(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::SettingListResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetSettingList_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::SettingListResponse>* System::Stub::PrepareAsyncGetSettingListRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::SettingListResponse, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetSettingList_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::SettingListResponse>* System::Stub::AsyncGetSettingListRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetSettingListRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::GetCurrentSetting(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::SettingResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::SettingResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetCurrentSetting_, context, request, response);
}

void System::Stub::async::GetCurrentSetting(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::SettingResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::hillab::v4::SettingResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetCurrentSetting_, context, request, response, std::move(f));
}

void System::Stub::async::GetCurrentSetting(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::SettingResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetCurrentSetting_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::SettingResponse>* System::Stub::PrepareAsyncGetCurrentSettingRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::SettingResponse, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetCurrentSetting_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::SettingResponse>* System::Stub::AsyncGetCurrentSettingRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetCurrentSettingRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::LoadSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_LoadSetting_, context, request, response);
}

void System::Stub::async::LoadSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_LoadSetting_, context, request, response, std::move(f));
}

void System::Stub::async::LoadSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_LoadSetting_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncLoadSettingRaw(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::SettingRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_LoadSetting_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncLoadSettingRaw(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncLoadSettingRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::SaveSetting(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SaveSetting_, context, request, response);
}

void System::Stub::async::SaveSetting(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SaveSetting_, context, request, response, std::move(f));
}

void System::Stub::async::SaveSetting(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SaveSetting_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncSaveSettingRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SaveSetting_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncSaveSettingRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncSaveSettingRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::AddSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_AddSetting_, context, request, response);
}

void System::Stub::async::AddSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_AddSetting_, context, request, response, std::move(f));
}

void System::Stub::async::AddSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_AddSetting_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncAddSettingRaw(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::SettingRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_AddSetting_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncAddSettingRaw(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncAddSettingRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::RemoveSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_RemoveSetting_, context, request, response);
}

void System::Stub::async::RemoveSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_RemoveSetting_, context, request, response, std::move(f));
}

void System::Stub::async::RemoveSetting(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_RemoveSetting_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncRemoveSettingRaw(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::SettingRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_RemoveSetting_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncRemoveSettingRaw(::grpc::ClientContext* context, const ::hillab::v4::SettingRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncRemoveSettingRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::GetDeviceList(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::DeviceInfoList* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::DeviceInfoList, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetDeviceList_, context, request, response);
}

void System::Stub::async::GetDeviceList(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::DeviceInfoList* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::hillab::v4::DeviceInfoList, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetDeviceList_, context, request, response, std::move(f));
}

void System::Stub::async::GetDeviceList(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::DeviceInfoList* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetDeviceList_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::DeviceInfoList>* System::Stub::PrepareAsyncGetDeviceListRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::DeviceInfoList, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetDeviceList_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::DeviceInfoList>* System::Stub::AsyncGetDeviceListRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetDeviceListRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::ConnectLastDevice(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ConnectLastDevice_, context, request, response);
}

void System::Stub::async::ConnectLastDevice(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ConnectLastDevice_, context, request, response, std::move(f));
}

void System::Stub::async::ConnectLastDevice(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ConnectLastDevice_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncConnectLastDeviceRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ConnectLastDevice_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncConnectLastDeviceRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncConnectLastDeviceRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::ConnectDevice(::grpc::ClientContext* context, const ::hillab::v4::ConnectDeviceRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::ConnectDeviceRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_ConnectDevice_, context, request, response);
}

void System::Stub::async::ConnectDevice(::grpc::ClientContext* context, const ::hillab::v4::ConnectDeviceRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::ConnectDeviceRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ConnectDevice_, context, request, response, std::move(f));
}

void System::Stub::async::ConnectDevice(::grpc::ClientContext* context, const ::hillab::v4::ConnectDeviceRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_ConnectDevice_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncConnectDeviceRaw(::grpc::ClientContext* context, const ::hillab::v4::ConnectDeviceRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::ConnectDeviceRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_ConnectDevice_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncConnectDeviceRaw(::grpc::ClientContext* context, const ::hillab::v4::ConnectDeviceRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncConnectDeviceRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::DisconnectDevice(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DisconnectDevice_, context, request, response);
}

void System::Stub::async::DisconnectDevice(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DisconnectDevice_, context, request, response, std::move(f));
}

void System::Stub::async::DisconnectDevice(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DisconnectDevice_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncDisconnectDeviceRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DisconnectDevice_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncDisconnectDeviceRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncDisconnectDeviceRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::GetRawImageStreamServerInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::ImageStreamServerResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetRawImageStreamServerInfo_, context, request, response);
}

void System::Stub::async::GetRawImageStreamServerInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::ImageStreamServerResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetRawImageStreamServerInfo_, context, request, response, std::move(f));
}

void System::Stub::async::GetRawImageStreamServerInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::ImageStreamServerResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetRawImageStreamServerInfo_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::ImageStreamServerResponse>* System::Stub::PrepareAsyncGetRawImageStreamServerInfoRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::ImageStreamServerResponse, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetRawImageStreamServerInfo_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::ImageStreamServerResponse>* System::Stub::AsyncGetRawImageStreamServerInfoRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetRawImageStreamServerInfoRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::GetProfiledImageStreamServerInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::ImageStreamServerResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetProfiledImageStreamServerInfo_, context, request, response);
}

void System::Stub::async::GetProfiledImageStreamServerInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::ImageStreamServerResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProfiledImageStreamServerInfo_, context, request, response, std::move(f));
}

void System::Stub::async::GetProfiledImageStreamServerInfo(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::ImageStreamServerResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProfiledImageStreamServerInfo_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::ImageStreamServerResponse>* System::Stub::PrepareAsyncGetProfiledImageStreamServerInfoRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::hillab::v4::ImageStreamServerResponse, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetProfiledImageStreamServerInfo_, context, request);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::ImageStreamServerResponse>* System::Stub::AsyncGetProfiledImageStreamServerInfoRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncGetProfiledImageStreamServerInfoRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::SetRawImageStreamServer(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::ImageStreamServerRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SetRawImageStreamServer_, context, request, response);
}

void System::Stub::async::SetRawImageStreamServer(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::ImageStreamServerRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SetRawImageStreamServer_, context, request, response, std::move(f));
}

void System::Stub::async::SetRawImageStreamServer(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SetRawImageStreamServer_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncSetRawImageStreamServerRaw(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SetRawImageStreamServer_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncSetRawImageStreamServerRaw(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncSetRawImageStreamServerRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status System::Stub::SetProfiledImageStreamServer(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::google::protobuf::Empty* response) {
  return ::grpc::internal::BlockingUnaryCall< ::hillab::v4::ImageStreamServerRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SetProfiledImageStreamServer_, context, request, response);
}

void System::Stub::async::SetProfiledImageStreamServer(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::hillab::v4::ImageStreamServerRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SetProfiledImageStreamServer_, context, request, response, std::move(f));
}

void System::Stub::async::SetProfiledImageStreamServer(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SetProfiledImageStreamServer_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncSetProfiledImageStreamServerRaw(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SetProfiledImageStreamServer_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncSetProfiledImageStreamServerRaw(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncSetProfiledImageStreamServerRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::ClientReader< ::hillab::v4::SystemLogStream>* System::Stub::MonitorSystemLogRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
  return ::grpc::internal::ClientReaderFactory< ::hillab::v4::SystemLogStream>::Create(channel_.get(), rpcmethod_MonitorSystemLog_, context, request);
}

void System::Stub::async::MonitorSystemLog(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::hillab::v4::SystemLogStream>* reactor) {
  ::grpc::internal::ClientCallbackReaderFactory< ::hillab::v4::SystemLogStream>::Create(stub_->channel_.get(), stub_->rpcmethod_MonitorSystemLog_, context, request, reactor);
}

::grpc::ClientAsyncReader< ::hillab::v4::SystemLogStream>* System::Stub::AsyncMonitorSystemLogRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::hillab::v4::SystemLogStream>::Create(channel_.get(), cq, rpcmethod_MonitorSystemLog_, context, request, true, tag);
}

::grpc::ClientAsyncReader< ::hillab::v4::SystemLogStream>* System::Stub::PrepareAsyncMonitorSystemLogRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncReaderFactory< ::hillab::v4::SystemLogStream>::Create(channel_.get(), cq, rpcmethod_MonitorSystemLog_, context, request, false, nullptr);
}

System::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::AppInfoResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::AppInfoResponse* resp) {
               return service->GetAppInfo(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::SettingListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::SettingListResponse* resp) {
               return service->GetSettingList(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::SettingResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::SettingResponse* resp) {
               return service->GetCurrentSetting(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[3],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::SettingRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->LoadSetting(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[4],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::google::protobuf::Empty* resp) {
               return service->SaveSetting(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[5],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::SettingRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->AddSetting(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[6],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::hillab::v4::SettingRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::SettingRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->RemoveSetting(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[7],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::DeviceInfoList, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::DeviceInfoList* resp) {
               return service->GetDeviceList(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[8],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::google::protobuf::Empty* resp) {
               return service->ConnectLastDevice(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[9],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::hillab::v4::ConnectDeviceRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::ConnectDeviceRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->ConnectDevice(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[10],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::google::protobuf::Empty* resp) {
               return service->DisconnectDevice(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[11],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::ImageStreamServerResponse* resp) {
               return service->GetRawImageStreamServerInfo(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[12],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::ImageStreamServerResponse* resp) {
               return service->GetProfiledImageStreamServerInfo(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[13],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::hillab::v4::ImageStreamServerRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::ImageStreamServerRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->SetRawImageStreamServer(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[14],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< System::Service, ::hillab::v4::ImageStreamServerRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::ImageStreamServerRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->SetProfiledImageStreamServer(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[15],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< System::Service, ::google::protobuf::Empty, ::hillab::v4::SystemLogStream>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::grpc::ServerWriter<::hillab::v4::SystemLogStream>* writer) {
               return service->MonitorSystemLog(ctx, req, writer);
             }, this)));
}

System::Service::~Service() {
}

::grpc::Status System::Service::GetAppInfo(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::AppInfoResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::GetSettingList(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::SettingListResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::GetCurrentSetting(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::SettingResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::LoadSetting(::grpc::ServerContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::SaveSetting(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::AddSetting(::grpc::ServerContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::RemoveSetting(::grpc::ServerContext* context, const ::hillab::v4::SettingRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::GetDeviceList(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::DeviceInfoList* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::ConnectLastDevice(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::ConnectDevice(::grpc::ServerContext* context, const ::hillab::v4::ConnectDeviceRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::DisconnectDevice(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::GetRawImageStreamServerInfo(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::ImageStreamServerResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::GetProfiledImageStreamServerInfo(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::ImageStreamServerResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::SetRawImageStreamServer(::grpc::ServerContext* context, const ::hillab::v4::ImageStreamServerRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::SetProfiledImageStreamServer(::grpc::ServerContext* context, const ::hillab::v4::ImageStreamServerRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status System::Service::MonitorSystemLog(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::hillab::v4::SystemLogStream>* writer) {
  (void) context;
  (void) request;
  (void) writer;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


}  // namespace hillab
}  // namespace v4

