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

#include "tsl/profiler/protobuf/profiler_service.pb.h"
#include "tsl/profiler/protobuf/profiler_service.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 tensorflow {

static const char* grpcProfilerService_method_names[] = {
  "/tensorflow.ProfilerService/Profile",
  "/tensorflow.ProfilerService/Terminate",
  "/tensorflow.ProfilerService/Monitor",
};

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

grpc::ProfilerService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options)
  : channel_(channel), rpcmethod_Profile_(grpcProfilerService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Terminate_(grpcProfilerService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  , rpcmethod_Monitor_(grpcProfilerService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
  {}

::grpc::Status grpc::ProfilerService::Stub::Profile(::grpc::ClientContext* context, const ::tensorflow::ProfileRequest& request, ::tensorflow::ProfileResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::tensorflow::ProfileRequest, ::tensorflow::ProfileResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Profile_, context, request, response);
}

void grpc::ProfilerService::Stub::async::Profile(::grpc::ClientContext* context, const ::tensorflow::ProfileRequest* request, ::tensorflow::ProfileResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::tensorflow::ProfileRequest, ::tensorflow::ProfileResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Profile_, context, request, response, std::move(f));
}

void grpc::ProfilerService::Stub::async::Profile(::grpc::ClientContext* context, const ::tensorflow::ProfileRequest* request, ::tensorflow::ProfileResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Profile_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::tensorflow::ProfileResponse>* grpc::ProfilerService::Stub::PrepareAsyncProfileRaw(::grpc::ClientContext* context, const ::tensorflow::ProfileRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::tensorflow::ProfileResponse, ::tensorflow::ProfileRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Profile_, context, request);
}

::grpc::ClientAsyncResponseReader< ::tensorflow::ProfileResponse>* grpc::ProfilerService::Stub::AsyncProfileRaw(::grpc::ClientContext* context, const ::tensorflow::ProfileRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncProfileRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status grpc::ProfilerService::Stub::Terminate(::grpc::ClientContext* context, const ::tensorflow::TerminateRequest& request, ::tensorflow::TerminateResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::tensorflow::TerminateRequest, ::tensorflow::TerminateResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Terminate_, context, request, response);
}

void grpc::ProfilerService::Stub::async::Terminate(::grpc::ClientContext* context, const ::tensorflow::TerminateRequest* request, ::tensorflow::TerminateResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::tensorflow::TerminateRequest, ::tensorflow::TerminateResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Terminate_, context, request, response, std::move(f));
}

void grpc::ProfilerService::Stub::async::Terminate(::grpc::ClientContext* context, const ::tensorflow::TerminateRequest* request, ::tensorflow::TerminateResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Terminate_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::tensorflow::TerminateResponse>* grpc::ProfilerService::Stub::PrepareAsyncTerminateRaw(::grpc::ClientContext* context, const ::tensorflow::TerminateRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::tensorflow::TerminateResponse, ::tensorflow::TerminateRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Terminate_, context, request);
}

::grpc::ClientAsyncResponseReader< ::tensorflow::TerminateResponse>* grpc::ProfilerService::Stub::AsyncTerminateRaw(::grpc::ClientContext* context, const ::tensorflow::TerminateRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncTerminateRaw(context, request, cq);
  result->StartCall();
  return result;
}

::grpc::Status grpc::ProfilerService::Stub::Monitor(::grpc::ClientContext* context, const ::tensorflow::MonitorRequest& request, ::tensorflow::MonitorResponse* response) {
  return ::grpc::internal::BlockingUnaryCall< ::tensorflow::MonitorRequest, ::tensorflow::MonitorResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Monitor_, context, request, response);
}

void grpc::ProfilerService::Stub::async::Monitor(::grpc::ClientContext* context, const ::tensorflow::MonitorRequest* request, ::tensorflow::MonitorResponse* response, std::function<void(::grpc::Status)> f) {
  ::grpc::internal::CallbackUnaryCall< ::tensorflow::MonitorRequest, ::tensorflow::MonitorResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Monitor_, context, request, response, std::move(f));
}

void grpc::ProfilerService::Stub::async::Monitor(::grpc::ClientContext* context, const ::tensorflow::MonitorRequest* request, ::tensorflow::MonitorResponse* response, ::grpc::ClientUnaryReactor* reactor) {
  ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Monitor_, context, request, response, reactor);
}

::grpc::ClientAsyncResponseReader< ::tensorflow::MonitorResponse>* grpc::ProfilerService::Stub::PrepareAsyncMonitorRaw(::grpc::ClientContext* context, const ::tensorflow::MonitorRequest& request, ::grpc::CompletionQueue* cq) {
  return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::tensorflow::MonitorResponse, ::tensorflow::MonitorRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Monitor_, context, request);
}

::grpc::ClientAsyncResponseReader< ::tensorflow::MonitorResponse>* grpc::ProfilerService::Stub::AsyncMonitorRaw(::grpc::ClientContext* context, const ::tensorflow::MonitorRequest& request, ::grpc::CompletionQueue* cq) {
  auto* result =
    this->PrepareAsyncMonitorRaw(context, request, cq);
  result->StartCall();
  return result;
}

grpc::ProfilerService::Service::Service() {
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      grpcProfilerService_method_names[0],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< grpc::ProfilerService::Service, ::tensorflow::ProfileRequest, ::tensorflow::ProfileResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](grpc::ProfilerService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::tensorflow::ProfileRequest* req,
             ::tensorflow::ProfileResponse* resp) {
               return service->Profile(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      grpcProfilerService_method_names[1],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< grpc::ProfilerService::Service, ::tensorflow::TerminateRequest, ::tensorflow::TerminateResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](grpc::ProfilerService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::tensorflow::TerminateRequest* req,
             ::tensorflow::TerminateResponse* resp) {
               return service->Terminate(ctx, req, resp);
             }, this)));
  AddMethod(new ::grpc::internal::RpcServiceMethod(
      grpcProfilerService_method_names[2],
      ::grpc::internal::RpcMethod::NORMAL_RPC,
      new ::grpc::internal::RpcMethodHandler< grpc::ProfilerService::Service, ::tensorflow::MonitorRequest, ::tensorflow::MonitorResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
          [](grpc::ProfilerService::Service* service,
             ::grpc::ServerContext* ctx,
             const ::tensorflow::MonitorRequest* req,
             ::tensorflow::MonitorResponse* resp) {
               return service->Monitor(ctx, req, resp);
             }, this)));
}

grpc::ProfilerService::Service::~Service() {
}

::grpc::Status grpc::ProfilerService::Service::Profile(::grpc::ServerContext* context, const ::tensorflow::ProfileRequest* request, ::tensorflow::ProfileResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status grpc::ProfilerService::Service::Terminate(::grpc::ServerContext* context, const ::tensorflow::TerminateRequest* request, ::tensorflow::TerminateResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}

::grpc::Status grpc::ProfilerService::Service::Monitor(::grpc::ServerContext* context, const ::tensorflow::MonitorRequest* request, ::tensorflow::MonitorResponse* response) {
  (void) context;
  (void) request;
  (void) response;
  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}


}  // namespace tensorflow

