Package google :: Package protobuf :: Module service :: Class Service
[hide private]
[frames] | no frames]

Class Service

source code

object --+
         |
        Service

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).

Instance Methods [hide private]
 
GetDescriptor()
Retrieves this service's descriptor.
source code
 
CallMethod(self, method_descriptor, rpc_controller, request, done)
Calls a method of the service specified by method_descriptor.
source code
 
GetRequestClass(self, method_descriptor)
Returns the class of the request message for the specified method.
source code
 
GetResponseClass(self, method_descriptor)
Returns the class of the response message for the specified method.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

CallMethod(self, method_descriptor, rpc_controller, request, done)

source code 
Calls a method of the service specified by method_descriptor.

If "done" is None then the call is blocking and the response
message will be returned directly.  Otherwise the call is asynchronous
and "done" will later be called with the response value.

In the blocking case, RpcException will be raised on error.

Preconditions:
* method_descriptor.service == GetDescriptor
* request is of the exact same classes as returned by
  GetRequestClass(method).
* After the call has started, the request must not be modified.
* "rpc_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.

Postconditions:
* "done" will be called when the method is complete.  This may be
  before CallMethod() returns or it may be at some point in the future.
* If the RPC failed, the response value passed to "done" will be None.
  Further details about the failure can be found by querying the
  RpcController.

GetRequestClass(self, method_descriptor)

source code 
Returns the class of the request message for the specified method.

CallMethod() requires that the request is of a particular subclass of
Message. GetRequestClass() gets the default instance of this required
type.

Example:
  method = service.GetDescriptor().FindMethodByName("Foo")
  request = stub.GetRequestClass(method)()
  request.ParseFromString(input)
  service.CallMethod(method, request, callback)

GetResponseClass(self, method_descriptor)

source code 

Returns the class of the response message for the specified method.

This method isn't really needed, as the RpcChannel's CallMethod constructs the response protocol message. It's provided anyway in case it is useful for the caller to know the response type in advance.