Public Member Functions | List of all members
com.google.protobuf.Service Interface Reference

Public Member Functions

void callMethod (Descriptors.MethodDescriptor method, RpcController controller, Message request, RpcCallback< Message > done)
 
void callMethod (Descriptors.MethodDescriptor method, RpcController controller, Message request, RpcCallback< Message > done)
 
Descriptors.ServiceDescriptor getDescriptorForType ()
 
Descriptors.ServiceDescriptor getDescriptorForType ()
 
Message getRequestPrototype (Descriptors.MethodDescriptor method)
 
Message getRequestPrototype (Descriptors.MethodDescriptor method)
 
Message getResponsePrototype (Descriptors.MethodDescriptor method)
 
Message getResponsePrototype (Descriptors.MethodDescriptor method)
 

Detailed Description

Abstract base interface for protocol-buffer-based RPC services. Services themselves are abstract classes (implemented either by servers or as stubs), but they subclass this base interface. The methods of this interface can be used to call the methods of the service without knowing its exact type at compile time (analogous to the Message interface).

Starting with version 2.3.0, RPC implementations should not try to build on this, but should instead provide code generator plugins which generate code specific to the particular RPC implementation. This way the generated code can be more appropriate for the implementation in use and can avoid unnecessary layers of indirection.

Author
kento.nosp@m.n@go.nosp@m.ogle..nosp@m.com Kenton Varda

Definition at line 46 of file bloaty/third_party/protobuf/java/core/src/main/java/com/google/protobuf/Service.java.

Member Function Documentation

◆ callMethod() [1/2]

void com.google.protobuf.Service.callMethod ( Descriptors.MethodDescriptor  method,
RpcController  controller,
Message  request,
RpcCallback< Message done 
)

Call a method of the service specified by MethodDescriptor. This is normally implemented as a simple

switch()

that calls the standard definitions of the service's methods.

Preconditions:

  • method.getService() == getDescriptorForType()
  • is of the exact same class as the object returned by .
  • controller
    is of the correct type for the RPC implementation being used by this Service. For stubs, the "correct type" depends on the RpcChannel which the stub is using. Server-side Service implementations are expected to accept whatever type of
    RpcController
    the server-side RPC implementation uses.

Postconditions:

  • will be called when the method is complete. This may be before returns or it may be at some point in the future.
  • The parameter to is the response. It must be of the exact same type as would be returned by .
  • If the RPC failed, the parameter to will be
    null
    . Further details about the failure can be found by querying
    controller
    .

◆ callMethod() [2/2]

void com.google.protobuf.Service.callMethod ( Descriptors.MethodDescriptor  method,
RpcController  controller,
Message  request,
RpcCallback< Message done 
)

Call a method of the service specified by MethodDescriptor. This is normally implemented as a simple

switch()

that calls the standard definitions of the service's methods.

Preconditions:

  • method.getService() == getDescriptorForType()
  • is of the exact same class as the object returned by .
  • controller
    is of the correct type for the RPC implementation being used by this Service. For stubs, the "correct type" depends on the RpcChannel which the stub is using. Server-side Service implementations are expected to accept whatever type of
    RpcController
    the server-side RPC implementation uses.

Postconditions:

  • will be called when the method is complete. This may be before returns or it may be at some point in the future.
  • The parameter to is the response. It must be of the exact same type as would be returned by .
  • If the RPC failed, the parameter to will be
    null
    . Further details about the failure can be found by querying
    controller
    .

◆ getDescriptorForType() [1/2]

Descriptors.ServiceDescriptor com.google.protobuf.Service.getDescriptorForType ( )

Get the

describing this service and its methods.

◆ getDescriptorForType() [2/2]

Descriptors.ServiceDescriptor com.google.protobuf.Service.getDescriptorForType ( )

Get the

describing this service and its methods.

◆ getRequestPrototype() [1/2]

Message com.google.protobuf.Service.getRequestPrototype ( Descriptors.MethodDescriptor  method)

requires that the request passed in is of a particular subclass of

.

gets the default instances of this type for a given method. You can then call

Message.newBuilderForType()

on this instance to construct a builder to build an object which you can then pass to

.

Example:

  MethodDescriptor method =
    service.getDescriptorForType().findMethodByName("Foo");
  Message request =
    stub.getRequestPrototype(method).newBuilderForType()
        .mergeFrom(input).build();
  service.callMethod(method, request, callback);

◆ getRequestPrototype() [2/2]

Message com.google.protobuf.Service.getRequestPrototype ( Descriptors.MethodDescriptor  method)

requires that the request passed in is of a particular subclass of

.

gets the default instances of this type for a given method. You can then call

Message.newBuilderForType()

on this instance to construct a builder to build an object which you can then pass to

.

Example:

  MethodDescriptor method =
    service.getDescriptorForType().findMethodByName("Foo");
  Message request =
    stub.getRequestPrototype(method).newBuilderForType()
        .mergeFrom(input).build();
  service.callMethod(method, request, callback);

◆ getResponsePrototype() [1/2]

Message com.google.protobuf.Service.getResponsePrototype ( Descriptors.MethodDescriptor  method)

Like

, but gets a prototype of the response message.

is generally not needed because the

Service

implementation constructs the response message itself, but it may be useful in some cases to know ahead of time what type of object will be returned.

◆ getResponsePrototype() [2/2]

Message com.google.protobuf.Service.getResponsePrototype ( Descriptors.MethodDescriptor  method)

Like

, but gets a prototype of the response message.

is generally not needed because the

Service

implementation constructs the response message itself, but it may be useful in some cases to know ahead of time what type of object will be returned.


The documentation for this interface was generated from the following file:
benchmark.request
request
Definition: benchmark.py:77
com.google.protobuf.Service.callMethod
void callMethod(Descriptors.MethodDescriptor method, RpcController controller, Message request, RpcCallback< Message > done)
done
struct tab * done
Definition: bloaty/third_party/zlib/examples/enough.c:176
com.google.protobuf.Service.getResponsePrototype
Message getResponsePrototype(Descriptors.MethodDescriptor method)
com.google.protobuf.Service.getDescriptorForType
Descriptors.ServiceDescriptor getDescriptorForType()
com.google.protobuf.Service.getRequestPrototype
Message getRequestPrototype(Descriptors.MethodDescriptor method)
method
NSString * method
Definition: ProtoMethod.h:28
grpc::protobuf::ServiceDescriptor
GRPC_CUSTOM_SERVICEDESCRIPTOR ServiceDescriptor
Definition: include/grpcpp/impl/codegen/config_protobuf.h:88
Message
Definition: protobuf/php/ext/google/protobuf/message.c:53


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:07