From 867f3a70f674011c4d223a36ee2e1e8c19ed9506 Mon Sep 17 00:00:00 2001 From: Stuckinaboot Date: Tue, 7 May 2019 01:31:54 -0400 Subject: [PATCH] Modify stream to be reader_writer --- .../protocol_muxer/multiselect_communicator.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libp2p/protocol_muxer/multiselect_communicator.py b/libp2p/protocol_muxer/multiselect_communicator.py index d7e0dd5..0c5b3fa 100644 --- a/libp2p/protocol_muxer/multiselect_communicator.py +++ b/libp2p/protocol_muxer/multiselect_communicator.py @@ -8,19 +8,24 @@ class MultiselectCommunicator(IMultiselectCommunicator): which is necessary for them to work """ - def __init__(self, stream): - self.stream = stream + def __init__(self, reader_writer): + """ + MultistreamCommunicator expects a reader_writer object that has + an async read and an async write function (this could be a stream, + raw connection, or other object implementing those functions) + """ + self.reader_writer = reader_writer async def write(self, msg_str): """ - Write message to stream + Write message to reader_writer :param msg_str: message to write """ - await self.stream.write(msg_str.encode()) + await self.reader_writer.write(msg_str.encode()) async def read_stream_until_eof(self): """ - Reads message from stream until EOF + Reads message from reader_writer until EOF """ - read_str = (await self.stream.read()).decode() + read_str = (await self.reader_writer.read()).decode() return read_str