games.mythical.saga.sdk.proto.api.metadata.RpcGrpcKt.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of saga-sdk-proto Show documentation
Show all versions of saga-sdk-proto Show documentation
Saga SDK for Java game servers
package games.mythical.saga.sdk.proto.api.metadata
import games.mythical.saga.sdk.proto.api.metadata.MetadataServiceGrpc.getServiceDescriptor
import games.mythical.saga.sdk.proto.common.ReceivedResponse
import io.grpc.CallOptions
import io.grpc.CallOptions.DEFAULT
import io.grpc.Channel
import io.grpc.Metadata
import io.grpc.MethodDescriptor
import io.grpc.ServerServiceDefinition
import io.grpc.ServerServiceDefinition.builder
import io.grpc.ServiceDescriptor
import io.grpc.Status.UNIMPLEMENTED
import io.grpc.StatusException
import io.grpc.kotlin.AbstractCoroutineServerImpl
import io.grpc.kotlin.AbstractCoroutineStub
import io.grpc.kotlin.ClientCalls.unaryRpc
import io.grpc.kotlin.ServerCalls.unaryServerMethodDefinition
import io.grpc.kotlin.StubFor
import kotlin.String
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.EmptyCoroutineContext
import kotlin.jvm.JvmOverloads
import kotlin.jvm.JvmStatic
/**
* Holder for Kotlin coroutine-based client and server APIs for saga.api.metadata.MetadataService.
*/
object MetadataServiceGrpcKt {
const val SERVICE_NAME: String = MetadataServiceGrpc.SERVICE_NAME
@JvmStatic
val serviceDescriptor: ServiceDescriptor
get() = MetadataServiceGrpc.getServiceDescriptor()
val updateItemMetadataMethod: MethodDescriptor
@JvmStatic
get() = MetadataServiceGrpc.getUpdateItemMetadataMethod()
/**
* A stub for issuing RPCs to a(n) saga.api.metadata.MetadataService service as suspending
* coroutines.
*/
@StubFor(MetadataServiceGrpc::class)
class MetadataServiceCoroutineStub @JvmOverloads constructor(
channel: Channel,
callOptions: CallOptions = DEFAULT
) : AbstractCoroutineStub(channel, callOptions) {
override fun build(channel: Channel, callOptions: CallOptions): MetadataServiceCoroutineStub =
MetadataServiceCoroutineStub(channel, callOptions)
/**
* Executes this RPC and returns the response message, suspending until the RPC completes
* with [`Status.OK`][io.grpc.Status]. If the RPC completes with another status, a
* corresponding
* [StatusException] is thrown. If this coroutine is cancelled, the RPC is also cancelled
* with the corresponding exception as a cause.
*
* @param request The request message to send to the server.
*
* @param headers Metadata to attach to the request. Most users will not need this.
*
* @return The single response from the server.
*/
suspend fun updateItemMetadata(request: UpdateItemMetadataRequest, headers: Metadata =
Metadata()): ReceivedResponse = unaryRpc(
channel,
MetadataServiceGrpc.getUpdateItemMetadataMethod(),
request,
callOptions,
headers
)}
/**
* Skeletal implementation of the saga.api.metadata.MetadataService service based on Kotlin
* coroutines.
*/
abstract class MetadataServiceCoroutineImplBase(
coroutineContext: CoroutineContext = EmptyCoroutineContext
) : AbstractCoroutineServerImpl(coroutineContext) {
/**
* Returns the response to an RPC for saga.api.metadata.MetadataService.UpdateItemMetadata.
*
* If this method fails with a [StatusException], the RPC will fail with the corresponding
* [io.grpc.Status]. If this method fails with a [java.util.concurrent.CancellationException],
* the RPC will fail
* with status `Status.CANCELLED`. If this method fails for any other reason, the RPC will
* fail with `Status.UNKNOWN` with the exception as a cause.
*
* @param request The request from the client.
*/
open suspend fun updateItemMetadata(request: UpdateItemMetadataRequest): ReceivedResponse =
throw
StatusException(UNIMPLEMENTED.withDescription("Method saga.api.metadata.MetadataService.UpdateItemMetadata is unimplemented"))
final override fun bindService(): ServerServiceDefinition = builder(getServiceDescriptor())
.addMethod(unaryServerMethodDefinition(
context = this.context,
descriptor = MetadataServiceGrpc.getUpdateItemMetadataMethod(),
implementation = ::updateItemMetadata
)).build()
}
}