All Downloads are FREE. Search and download functionalities are using the official Maven repository.

verrpc.VersionerClient.scala Maven / Gradle / Ivy

The newest version!

// Generated by Pekko gRPC. DO NOT EDIT.
package verrpc

import scala.concurrent.ExecutionContext

import org.apache.pekko
import pekko.actor.ClassicActorSystemProvider

import pekko.grpc.GrpcChannel
import pekko.grpc.GrpcClientCloseException
import pekko.grpc.GrpcClientSettings

import pekko.grpc.scaladsl.PekkoGrpcClient

import pekko.grpc.internal.NettyClientUtils

import pekko.grpc.PekkoGrpcGenerated

import pekko.grpc.scaladsl.SingleResponseRequestBuilder
import pekko.grpc.internal.ScalaUnaryRequestBuilder

// Not sealed so users can extend to write their stubs
@PekkoGrpcGenerated
trait VersionerClient extends Versioner with VersionerClientPowerApi with PekkoGrpcClient

@PekkoGrpcGenerated
object VersionerClient {
  def apply(settings: GrpcClientSettings)(implicit sys: ClassicActorSystemProvider): VersionerClient =
    new DefaultVersionerClient(GrpcChannel(settings), isChannelOwned = true)
  def apply(channel: GrpcChannel)(implicit sys: ClassicActorSystemProvider): VersionerClient =
    new DefaultVersionerClient(channel, isChannelOwned = false)

  private class DefaultVersionerClient(channel: GrpcChannel, isChannelOwned: Boolean)(implicit sys: ClassicActorSystemProvider) extends VersionerClient {
    import Versioner.MethodDescriptors._

    private implicit val ex: ExecutionContext = sys.classicSystem.dispatcher
    private val settings = channel.settings
    private val options = NettyClientUtils.callOptions(settings)

    
    private def getVersionRequestBuilder(channel: pekko.grpc.internal.InternalChannel) =
    
      new ScalaUnaryRequestBuilder(getVersionDescriptor, channel, options, settings)
    
    

    
    /**
     * Lower level "lifted" version of the method, giving access to request metadata etc.
     * prefer getVersion(verrpc.VersionRequest) if possible.
     */
    
    override def getVersion(): SingleResponseRequestBuilder[verrpc.VersionRequest, verrpc.Version] =
      getVersionRequestBuilder(channel.internalChannel)
    

    /**
     * For access to method metadata use the parameterless version of getVersion
     */
    def getVersion(in: verrpc.VersionRequest): scala.concurrent.Future[verrpc.Version] =
      getVersion().invoke(in)
    

    override def close(): scala.concurrent.Future[pekko.Done] =
      if (isChannelOwned) channel.close()
      else throw new GrpcClientCloseException()

    override def closed: scala.concurrent.Future[pekko.Done] = channel.closed()
  }
}

@PekkoGrpcGenerated
trait VersionerClientPowerApi {
  
  /**
   * Lower level "lifted" version of the method, giving access to request metadata etc.
   * prefer getVersion(verrpc.VersionRequest) if possible.
   */
  
  def getVersion(): SingleResponseRequestBuilder[verrpc.VersionRequest, verrpc.Version] = ???
  
  

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy