aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/python/grpcio/grpc/framework/interfaces/base/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/python/grpcio/grpc/framework/interfaces/base/base.py')
-rw-r--r--src/python/grpcio/grpc/framework/interfaces/base/base.py184
1 files changed, 96 insertions, 88 deletions
diff --git a/src/python/grpcio/grpc/framework/interfaces/base/base.py b/src/python/grpcio/grpc/framework/interfaces/base/base.py
index a2ddd9c474..cb3328296c 100644
--- a/src/python/grpcio/grpc/framework/interfaces/base/base.py
+++ b/src/python/grpcio/grpc/framework/interfaces/base/base.py
@@ -26,7 +26,6 @@
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
"""The base interface of RPC Framework.
Implementations of this interface support the conduct of "operations":
@@ -49,7 +48,7 @@ from grpc.framework.foundation import abandonment # pylint: disable=unused-impo
class NoSuchMethodError(Exception):
- """Indicates that an unrecognized operation has been called.
+ """Indicates that an unrecognized operation has been called.
Attributes:
code: A code value to communicate to the other side of the operation along
@@ -58,8 +57,8 @@ class NoSuchMethodError(Exception):
along with indication of operation termination. May be None.
"""
- def __init__(self, code, details):
- """Constructor.
+ def __init__(self, code, details):
+ """Constructor.
Args:
code: A code value to communicate to the other side of the operation
@@ -67,12 +66,12 @@ class NoSuchMethodError(Exception):
details: A details value to communicate to the other side of the
operation along with indication of operation termination. May be None.
"""
- self.code = code
- self.details = details
+ self.code = code
+ self.details = details
class Outcome(object):
- """The outcome of an operation.
+ """The outcome of an operation.
Attributes:
kind: A Kind value coarsely identifying how the operation terminated.
@@ -82,23 +81,23 @@ class Outcome(object):
provided.
"""
- @enum.unique
- class Kind(enum.Enum):
- """Ways in which an operation can terminate."""
+ @enum.unique
+ class Kind(enum.Enum):
+ """Ways in which an operation can terminate."""
- COMPLETED = 'completed'
- CANCELLED = 'cancelled'
- EXPIRED = 'expired'
- LOCAL_SHUTDOWN = 'local shutdown'
- REMOTE_SHUTDOWN = 'remote shutdown'
- RECEPTION_FAILURE = 'reception failure'
- TRANSMISSION_FAILURE = 'transmission failure'
- LOCAL_FAILURE = 'local failure'
- REMOTE_FAILURE = 'remote failure'
+ COMPLETED = 'completed'
+ CANCELLED = 'cancelled'
+ EXPIRED = 'expired'
+ LOCAL_SHUTDOWN = 'local shutdown'
+ REMOTE_SHUTDOWN = 'remote shutdown'
+ RECEPTION_FAILURE = 'reception failure'
+ TRANSMISSION_FAILURE = 'transmission failure'
+ LOCAL_FAILURE = 'local failure'
+ REMOTE_FAILURE = 'remote failure'
class Completion(six.with_metaclass(abc.ABCMeta)):
- """An aggregate of the values exchanged upon operation completion.
+ """An aggregate of the values exchanged upon operation completion.
Attributes:
terminal_metadata: A terminal metadata value for the operaton.
@@ -108,21 +107,21 @@ class Completion(six.with_metaclass(abc.ABCMeta)):
class OperationContext(six.with_metaclass(abc.ABCMeta)):
- """Provides operation-related information and action."""
+ """Provides operation-related information and action."""
- @abc.abstractmethod
- def outcome(self):
- """Indicates the operation's outcome (or that the operation is ongoing).
+ @abc.abstractmethod
+ def outcome(self):
+ """Indicates the operation's outcome (or that the operation is ongoing).
Returns:
None if the operation is still active or the Outcome value for the
operation if it has terminated.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
- @abc.abstractmethod
- def add_termination_callback(self, callback):
- """Adds a function to be called upon operation termination.
+ @abc.abstractmethod
+ def add_termination_callback(self, callback):
+ """Adds a function to be called upon operation termination.
Args:
callback: A callable to be passed an Outcome value on operation
@@ -134,42 +133,44 @@ class OperationContext(six.with_metaclass(abc.ABCMeta)):
terminated an Outcome value describing the operation termination and the
passed callback will not be called as a result of this method call.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
- @abc.abstractmethod
- def time_remaining(self):
- """Describes the length of allowed time remaining for the operation.
+ @abc.abstractmethod
+ def time_remaining(self):
+ """Describes the length of allowed time remaining for the operation.
Returns:
A nonnegative float indicating the length of allowed time in seconds
remaining for the operation to complete before it is considered to have
timed out. Zero is returned if the operation has terminated.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
- @abc.abstractmethod
- def cancel(self):
- """Cancels the operation if the operation has not yet terminated."""
- raise NotImplementedError()
+ @abc.abstractmethod
+ def cancel(self):
+ """Cancels the operation if the operation has not yet terminated."""
+ raise NotImplementedError()
- @abc.abstractmethod
- def fail(self, exception):
- """Indicates that the operation has failed.
+ @abc.abstractmethod
+ def fail(self, exception):
+ """Indicates that the operation has failed.
Args:
exception: An exception germane to the operation failure. May be None.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
class Operator(six.with_metaclass(abc.ABCMeta)):
- """An interface through which to participate in an operation."""
+ """An interface through which to participate in an operation."""
- @abc.abstractmethod
- def advance(
- self, initial_metadata=None, payload=None, completion=None,
- allowance=None):
- """Progresses the operation.
+ @abc.abstractmethod
+ def advance(self,
+ initial_metadata=None,
+ payload=None,
+ completion=None,
+ allowance=None):
+ """Progresses the operation.
Args:
initial_metadata: An initial metadata value. Only one may ever be
@@ -181,23 +182,24 @@ class Operator(six.with_metaclass(abc.ABCMeta)):
allowance: A positive integer communicating the number of additional
payloads allowed to be passed by the remote side of the operation.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
+
class ProtocolReceiver(six.with_metaclass(abc.ABCMeta)):
- """A means of receiving protocol values during an operation."""
+ """A means of receiving protocol values during an operation."""
- @abc.abstractmethod
- def context(self, protocol_context):
- """Accepts the protocol context object for the operation.
+ @abc.abstractmethod
+ def context(self, protocol_context):
+ """Accepts the protocol context object for the operation.
Args:
protocol_context: The protocol context object for the operation.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
class Subscription(six.with_metaclass(abc.ABCMeta)):
- """Describes customer code's interest in values from the other side.
+ """Describes customer code's interest in values from the other side.
Attributes:
kind: A Kind value describing the overall kind of this value.
@@ -215,20 +217,20 @@ class Subscription(six.with_metaclass(abc.ABCMeta)):
Kind.FULL.
"""
- @enum.unique
- class Kind(enum.Enum):
+ @enum.unique
+ class Kind(enum.Enum):
- NONE = 'none'
- TERMINATION_ONLY = 'termination only'
- FULL = 'full'
+ NONE = 'none'
+ TERMINATION_ONLY = 'termination only'
+ FULL = 'full'
class Servicer(six.with_metaclass(abc.ABCMeta)):
- """Interface for service implementations."""
+ """Interface for service implementations."""
- @abc.abstractmethod
- def service(self, group, method, context, output_operator):
- """Services an operation.
+ @abc.abstractmethod
+ def service(self, group, method, context, output_operator):
+ """Services an operation.
Args:
group: The group identifier of the operation to be serviced.
@@ -248,20 +250,20 @@ class Servicer(six.with_metaclass(abc.ABCMeta)):
abandonment.Abandoned: If the operation has been aborted and there no
longer is any reason to service the operation.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
class End(six.with_metaclass(abc.ABCMeta)):
- """Common type for entry-point objects on both sides of an operation."""
+ """Common type for entry-point objects on both sides of an operation."""
- @abc.abstractmethod
- def start(self):
- """Starts this object's service of operations."""
- raise NotImplementedError()
+ @abc.abstractmethod
+ def start(self):
+ """Starts this object's service of operations."""
+ raise NotImplementedError()
- @abc.abstractmethod
- def stop(self, grace):
- """Stops this object's service of operations.
+ @abc.abstractmethod
+ def stop(self, grace):
+ """Stops this object's service of operations.
This object will refuse service of new operations as soon as this method is
called but operations under way at the time of the call may be given a
@@ -281,13 +283,19 @@ class End(six.with_metaclass(abc.ABCMeta)):
much sooner (if for example this End had no operations in progress at
the time its stop method was called).
"""
- raise NotImplementedError()
-
- @abc.abstractmethod
- def operate(
- self, group, method, subscription, timeout, initial_metadata=None,
- payload=None, completion=None, protocol_options=None):
- """Commences an operation.
+ raise NotImplementedError()
+
+ @abc.abstractmethod
+ def operate(self,
+ group,
+ method,
+ subscription,
+ timeout,
+ initial_metadata=None,
+ payload=None,
+ completion=None,
+ protocol_options=None):
+ """Commences an operation.
Args:
group: The group identifier of the invoked operation.
@@ -312,23 +320,23 @@ class End(six.with_metaclass(abc.ABCMeta)):
returned pair is an Operator to which operation values not passed in
this call should later be passed.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
- @abc.abstractmethod
- def operation_stats(self):
- """Reports the number of terminated operations broken down by outcome.
+ @abc.abstractmethod
+ def operation_stats(self):
+ """Reports the number of terminated operations broken down by outcome.
Returns:
A dictionary from Outcome.Kind value to an integer identifying the number
of operations that terminated with that outcome kind.
"""
- raise NotImplementedError()
+ raise NotImplementedError()
- @abc.abstractmethod
- def add_idle_action(self, action):
- """Adds an action to be called when this End has no ongoing operations.
+ @abc.abstractmethod
+ def add_idle_action(self, action):
+ """Adds an action to be called when this End has no ongoing operations.
Args:
action: A callable that accepts no arguments.
"""
- raise NotImplementedError()
+ raise NotImplementedError()