# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: objectpool.proto for package 'gitaly'

require 'grpc'
require 'objectpool_pb'

module Gitaly
  module ObjectPoolService
    # ObjectPoolService is a service containing RPCs to manipulate object pools.
    # An object pool is a separate repository that can be linked to from multiple
    # satellite repositories in order to deduplicate common objects between them.
    # This is mostly used in the contexet of repository forks.
    class Service

      include ::GRPC::GenericService

      self.marshal_class_method = :encode
      self.unmarshal_class_method = :decode
      self.service_name = 'gitaly.ObjectPoolService'

      # This comment is left unintentionally blank.
      rpc :CreateObjectPool, ::Gitaly::CreateObjectPoolRequest, ::Gitaly::CreateObjectPoolResponse
      # This comment is left unintentionally blank.
      rpc :DeleteObjectPool, ::Gitaly::DeleteObjectPoolRequest, ::Gitaly::DeleteObjectPoolResponse
      # Repositories are assumed to be stored on the same disk
      rpc :LinkRepositoryToObjectPool, ::Gitaly::LinkRepositoryToObjectPoolRequest, ::Gitaly::LinkRepositoryToObjectPoolResponse
      # This comment is left unintentionally blank.
      rpc :ReduplicateRepository, ::Gitaly::ReduplicateRepositoryRequest, ::Gitaly::ReduplicateRepositoryResponse
      # This comment is left unintentionally blank.
      rpc :DisconnectGitAlternates, ::Gitaly::DisconnectGitAlternatesRequest, ::Gitaly::DisconnectGitAlternatesResponse
      # FetchIntoObjectPool fetches all references from a pool member into an object pool so that
      # objects shared between this repository and other pool members can be deduplicated. This RPC
      # will perform housekeeping tasks after the object pool has been updated to ensure that the pool
      # is in an optimal state.
      rpc :FetchIntoObjectPool, ::Gitaly::FetchIntoObjectPoolRequest, ::Gitaly::FetchIntoObjectPoolResponse
      # This comment is left unintentionally blank.
      rpc :GetObjectPool, ::Gitaly::GetObjectPoolRequest, ::Gitaly::GetObjectPoolResponse
    end

    Stub = Service.rpc_stub_class
  end
end
