aboutsummaryrefslogtreecommitdiffhomepage
path: root/python/google/protobuf/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/google/protobuf/service.py')
-rwxr-xr-xpython/google/protobuf/service.py17
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