| Index: third_party/grpc/src/python/grpcio/grpc/framework/foundation/stream.py
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/websocket/workers/resources/echo_wsh.py b/third_party/grpc/src/python/grpcio/grpc/framework/foundation/stream.py
|
| similarity index 65%
|
| copy from third_party/WebKit/LayoutTests/http/tests/websocket/workers/resources/echo_wsh.py
|
| copy to third_party/grpc/src/python/grpcio/grpc/framework/foundation/stream.py
|
| index 429f58186e3fce43dc21e81e0f9d7e20c7e0bf70..75c0cf145b493d4b81e66c8ffc3da30c8d91483a 100644
|
| --- a/third_party/WebKit/LayoutTests/http/tests/websocket/workers/resources/echo_wsh.py
|
| +++ b/third_party/grpc/src/python/grpcio/grpc/framework/foundation/stream.py
|
| @@ -1,4 +1,4 @@
|
| -# Copyright 2010, Google Inc.
|
| +# Copyright 2015, Google Inc.
|
| # All rights reserved.
|
| #
|
| # Redistribution and use in source and binary forms, with or without
|
| @@ -27,20 +27,34 @@
|
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| +"""Interfaces related to streams of values or objects."""
|
|
|
| -from mod_pywebsocket import msgutil
|
| +import abc
|
|
|
|
|
| -_GOODBYE_MESSAGE = 'Goodbye'
|
| +class Consumer(object):
|
| + """Interface for consumers of finite streams of values or objects."""
|
| + __metaclass__ = abc.ABCMeta
|
|
|
| + @abc.abstractmethod
|
| + def consume(self, value):
|
| + """Accepts a value.
|
|
|
| -def web_socket_do_extra_handshake(request):
|
| - pass # Always accept.
|
| + Args:
|
| + value: Any value accepted by this Consumer.
|
| + """
|
| + raise NotImplementedError()
|
|
|
| + @abc.abstractmethod
|
| + def terminate(self):
|
| + """Indicates to this Consumer that no more values will be supplied."""
|
| + raise NotImplementedError()
|
|
|
| -def web_socket_transfer_data(request):
|
| - while True:
|
| - line = msgutil.receive_message(request)
|
| - msgutil.send_message(request, line)
|
| - if line == _GOODBYE_MESSAGE:
|
| - return
|
| + @abc.abstractmethod
|
| + def consume_and_terminate(self, value):
|
| + """Supplies a value and signals that no more values will be supplied.
|
| +
|
| + Args:
|
| + value: Any value accepted by this Consumer.
|
| + """
|
| + raise NotImplementedError()
|
|
|