# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from buildstream._protos.buildstream.v2 import buildstream_pb2 as buildstream_dot_v2_dot_buildstream__pb2


class ReferenceStorageStub(object):
  # missing associated documentation comment in .proto file
  pass

  def __init__(self, channel):
    """Constructor.

    Args:
      channel: A grpc.Channel.
    """
    self.GetReference = channel.unary_unary(
        '/buildstream.v2.ReferenceStorage/GetReference',
        request_serializer=buildstream_dot_v2_dot_buildstream__pb2.GetReferenceRequest.SerializeToString,
        response_deserializer=buildstream_dot_v2_dot_buildstream__pb2.GetReferenceResponse.FromString,
        )
    self.UpdateReference = channel.unary_unary(
        '/buildstream.v2.ReferenceStorage/UpdateReference',
        request_serializer=buildstream_dot_v2_dot_buildstream__pb2.UpdateReferenceRequest.SerializeToString,
        response_deserializer=buildstream_dot_v2_dot_buildstream__pb2.UpdateReferenceResponse.FromString,
        )
    self.Status = channel.unary_unary(
        '/buildstream.v2.ReferenceStorage/Status',
        request_serializer=buildstream_dot_v2_dot_buildstream__pb2.StatusRequest.SerializeToString,
        response_deserializer=buildstream_dot_v2_dot_buildstream__pb2.StatusResponse.FromString,
        )


class ReferenceStorageServicer(object):
  # missing associated documentation comment in .proto file
  pass

  def GetReference(self, request, context):
    """Retrieve a CAS [Directory][build.bazel.remote.execution.v2.Directory]
    digest by name.

    Errors:
    * `NOT_FOUND`: The requested reference is not in the cache.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def UpdateReference(self, request, context):
    """Associate a name with a CAS [Directory][build.bazel.remote.execution.v2.Directory]
    digest.

    Errors:
    * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
    entry to the cache.
    """
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')

  def Status(self, request, context):
    # missing associated documentation comment in .proto file
    pass
    context.set_code(grpc.StatusCode.UNIMPLEMENTED)
    context.set_details('Method not implemented!')
    raise NotImplementedError('Method not implemented!')


def add_ReferenceStorageServicer_to_server(servicer, server):
  rpc_method_handlers = {
      'GetReference': grpc.unary_unary_rpc_method_handler(
          servicer.GetReference,
          request_deserializer=buildstream_dot_v2_dot_buildstream__pb2.GetReferenceRequest.FromString,
          response_serializer=buildstream_dot_v2_dot_buildstream__pb2.GetReferenceResponse.SerializeToString,
      ),
      'UpdateReference': grpc.unary_unary_rpc_method_handler(
          servicer.UpdateReference,
          request_deserializer=buildstream_dot_v2_dot_buildstream__pb2.UpdateReferenceRequest.FromString,
          response_serializer=buildstream_dot_v2_dot_buildstream__pb2.UpdateReferenceResponse.SerializeToString,
      ),
      'Status': grpc.unary_unary_rpc_method_handler(
          servicer.Status,
          request_deserializer=buildstream_dot_v2_dot_buildstream__pb2.StatusRequest.FromString,
          response_serializer=buildstream_dot_v2_dot_buildstream__pb2.StatusResponse.SerializeToString,
      ),
  }
  generic_handler = grpc.method_handlers_generic_handler(
      'buildstream.v2.ReferenceStorage', rpc_method_handlers)
  server.add_generic_rpc_handlers((generic_handler,))
