2018-11-29 02:51:50 +08:00
|
|
|
from abc import ABC, abstractmethod
|
|
|
|
|
2019-01-10 02:38:56 +08:00
|
|
|
|
2018-11-29 02:51:50 +08:00
|
|
|
class IMultiselectCommunicator(ABC):
|
2019-10-24 14:41:10 +08:00
|
|
|
"""Communicator helper class that ensures both the client and multistream
|
|
|
|
module will follow the same multistream protocol, which is necessary for
|
|
|
|
them to work."""
|
2018-11-29 02:51:50 +08:00
|
|
|
|
|
|
|
@abstractmethod
|
2019-08-07 18:02:30 +08:00
|
|
|
async def write(self, msg_str: str) -> None:
|
2019-10-24 14:41:10 +08:00
|
|
|
"""Write message to stream.
|
|
|
|
|
2018-11-29 02:51:50 +08:00
|
|
|
:param msg_str: message to write
|
|
|
|
"""
|
|
|
|
|
|
|
|
@abstractmethod
|
2019-08-15 23:31:26 +08:00
|
|
|
async def read(self) -> str:
|
2019-10-24 14:41:10 +08:00
|
|
|
"""Reads message from stream until EOF."""
|