diff options
Diffstat (limited to 'python/google/protobuf/service.py')
-rwxr-xr-x | python/google/protobuf/service.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/python/google/protobuf/service.py b/python/google/protobuf/service.py index 3989216a..9ec42fe3 100755 --- a/python/google/protobuf/service.py +++ b/python/google/protobuf/service.py @@ -31,7 +31,7 @@ """Declares the RPC service interfaces. This module declares the abstract interfaces underlying proto2 RPC -services. These are intented to be independent of any particular RPC +services. These are intended to be independent of any particular RPC implementation, so that proto2 services can be used on top of a variety of implementations. """ @@ -39,6 +39,11 @@ of implementations. __author__ = 'petar@google.com (Petar Petrov)' +class RpcException(Exception): + """Exception raised on failed blocking RPC method call.""" + pass + + class Service(object): """Abstract base interface for protocol-buffer-based RPC services. @@ -49,7 +54,7 @@ class Service(object): its exact type at compile time (analogous to the Message interface). """ - def GetDescriptor(self): + def GetDescriptor(): """Retrieves this service's descriptor.""" raise NotImplementedError @@ -57,6 +62,14 @@ class Service(object): request, done): """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. + Asynchronous calls must check status via the Failed method of the + RpcController. + Preconditions: * method_descriptor.service == GetDescriptor * request is of the exact same classes as returned by |