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

#include "hillab_beam_stabilization_system.pb.h"
#include "hillab_beam_stabilization_system.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* BeamStabilizationSystem_method_names[] = {
  "/hillab.v4.BeamStabilizationSystem/Get",
  "/hillab.v4.BeamStabilizationSystem/Set",
  "/hillab.v4.BeamStabilizationSystem/MonitorBeamProfile",
};

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

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

::grpc::Status BeamStabilizationSystem::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 BeamStabilizationSystem::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 BeamStabilizationSystem::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>* BeamStabilizationSystem::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>* BeamStabilizationSystem::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 BeamStabilizationSystem::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 BeamStabilizationSystem::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 BeamStabilizationSystem::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>* BeamStabilizationSystem::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>* BeamStabilizationSystem::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::ClientReader< ::hillab::v4::BeamProfileStream>* BeamStabilizationSystem::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 BeamStabilizationSystem::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>* BeamStabilizationSystem::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>* BeamStabilizationSystem::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);
}

BeamStabilizationSystem::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      BeamStabilizationSystem_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< BeamStabilizationSystem::Service, ::hillab::v4::GetRequest, ::hillab::v4::GetResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](BeamStabilizationSystem::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(
      BeamStabilizationSystem_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< BeamStabilizationSystem::Service, ::hillab::v4::SetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](BeamStabilizationSystem::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(
      BeamStabilizationSystem_method_names[2],
      ::grpc::internal::RpcMethod::SERVER_STREAMING,
      new ::grpc::internal::ServerStreamingHandler< BeamStabilizationSystem::Service, ::google::protobuf::Empty, ::hillab::v4::BeamProfileStream>(
          [](BeamStabilizationSystem::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::grpc::ServerWriter<::hillab::v4::BeamProfileStream>* writer) {
               return service->MonitorBeamProfile(ctx, req, writer);
             }, this)));
}

BeamStabilizationSystem::Service::~Service() {
}

::grpc::Status BeamStabilizationSystem::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 BeamStabilizationSystem::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 BeamStabilizationSystem::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/GetPresetList",
  "/hillab.v4.System/GetCurrentPreset",
  "/hillab.v4.System/LoadPreset",
  "/hillab.v4.System/SavePreset",
  "/hillab.v4.System/AddPreset",
  "/hillab.v4.System/RemovePreset",
  "/hillab.v4.System/GetNearFieldImageStreamServerInfo",
  "/hillab.v4.System/GetFarFieldImageStreamServerInfo",
  "/hillab.v4.System/SetNearFieldImageStreamServer",
  "/hillab.v4.System/SetFarFieldImageStreamServer",
  "/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_GetPresetList_(System_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetCurrentPreset_(System_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_LoadPreset_(System_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_SavePreset_(System_method_names[4], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_AddPreset_(System_method_names[5], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_RemovePreset_(System_method_names[6], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetNearFieldImageStreamServerInfo_(System_method_names[7], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_GetFarFieldImageStreamServerInfo_(System_method_names[8], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_SetNearFieldImageStreamServer_(System_method_names[9], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_SetFarFieldImageStreamServer_(System_method_names[10], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_MonitorSystemLog_(System_method_names[11], 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::GetPresetList(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::hillab::v4::PresetListResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::Empty, ::hillab::v4::PresetListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetPresetList_, context, request, response);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

::grpc::Status System::Stub::SavePreset(::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_SavePreset_, context, request, response);
}

void System::Stub::async::SavePreset(::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_SavePreset_, context, request, response, std::move(f));
}

void System::Stub::async::SavePreset(::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_SavePreset_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncSavePresetRaw(::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_SavePreset_, context, request);
}

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

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

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

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

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

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

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

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

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

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

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

::grpc::Status System::Stub::GetNearFieldImageStreamServerInfo(::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_GetNearFieldImageStreamServerInfo_, context, request, response);
}

void System::Stub::async::GetNearFieldImageStreamServerInfo(::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_GetNearFieldImageStreamServerInfo_, context, request, response, std::move(f));
}

void System::Stub::async::GetNearFieldImageStreamServerInfo(::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_GetNearFieldImageStreamServerInfo_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::ImageStreamServerResponse>* System::Stub::PrepareAsyncGetNearFieldImageStreamServerInfoRaw(::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_GetNearFieldImageStreamServerInfo_, context, request);
}

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

::grpc::Status System::Stub::GetFarFieldImageStreamServerInfo(::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_GetFarFieldImageStreamServerInfo_, context, request, response);
}

void System::Stub::async::GetFarFieldImageStreamServerInfo(::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_GetFarFieldImageStreamServerInfo_, context, request, response, std::move(f));
}

void System::Stub::async::GetFarFieldImageStreamServerInfo(::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_GetFarFieldImageStreamServerInfo_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::hillab::v4::ImageStreamServerResponse>* System::Stub::PrepareAsyncGetFarFieldImageStreamServerInfoRaw(::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_GetFarFieldImageStreamServerInfo_, context, request);
}

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

::grpc::Status System::Stub::SetNearFieldImageStreamServer(::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_SetNearFieldImageStreamServer_, context, request, response);
}

void System::Stub::async::SetNearFieldImageStreamServer(::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_SetNearFieldImageStreamServer_, context, request, response, std::move(f));
}

void System::Stub::async::SetNearFieldImageStreamServer(::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_SetNearFieldImageStreamServer_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncSetNearFieldImageStreamServerRaw(::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_SetNearFieldImageStreamServer_, context, request);
}

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

::grpc::Status System::Stub::SetFarFieldImageStreamServer(::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_SetFarFieldImageStreamServer_, context, request, response);
}

void System::Stub::async::SetFarFieldImageStreamServer(::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_SetFarFieldImageStreamServer_, context, request, response, std::move(f));
}

void System::Stub::async::SetFarFieldImageStreamServer(::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_SetFarFieldImageStreamServer_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::PrepareAsyncSetFarFieldImageStreamServerRaw(::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_SetFarFieldImageStreamServer_, context, request);
}

::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* System::Stub::AsyncSetFarFieldImageStreamServerRaw(::grpc::ClientContext* context, const ::hillab::v4::ImageStreamServerRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncSetFarFieldImageStreamServerRaw(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::PresetListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::PresetListResponse* resp) {
               return service->GetPresetList(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::PresetResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::PresetResponse* resp) {
               return service->GetCurrentPreset(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::PresetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::PresetRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->LoadPreset(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->SavePreset(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::PresetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::PresetRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->AddPreset(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::PresetRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::hillab::v4::PresetRequest* req,
             ::google::protobuf::Empty* resp) {
               return service->RemovePreset(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::ImageStreamServerResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](System::Service* service,
             ::grpc::ServerContext* ctx,
             const ::google::protobuf::Empty* req,
             ::hillab::v4::ImageStreamServerResponse* resp) {
               return service->GetNearFieldImageStreamServerInfo(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, ::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->GetFarFieldImageStreamServerInfo(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::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->SetNearFieldImageStreamServer(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[10],
      ::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->SetFarFieldImageStreamServer(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      System_method_names[11],
      ::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::GetPresetList(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::hillab::v4::PresetListResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

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

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

::grpc::Status System::Service::SavePreset(::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::AddPreset(::grpc::ServerContext* context, const ::hillab::v4::PresetRequest* request, ::google::protobuf::Empty* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

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

::grpc::Status System::Service::GetNearFieldImageStreamServerInfo(::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::GetFarFieldImageStreamServerInfo(::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::SetNearFieldImageStreamServer(::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::SetFarFieldImageStreamServer(::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

