py-libp2p/libp2p/network/connection/raw_connection_interface.py

32 lines
613 B
Python
Raw Normal View History

2019-08-01 19:12:11 +08:00
from abc import ABC, abstractmethod
2019-08-05 11:22:44 +08:00
import asyncio
2018-11-13 02:02:49 +08:00
2018-11-11 22:56:44 +08:00
class IRawConnection(ABC):
"""
A Raw Connection provides a Reader and a Writer
"""
2019-08-01 19:12:11 +08:00
2019-08-02 17:53:51 +08:00
initiator: bool
# TODO: reader and writer shouldn't be exposed.
# Need better API for the consumers
reader: asyncio.StreamReader
writer: asyncio.StreamWriter
2019-08-01 19:12:11 +08:00
@abstractmethod
async def write(self, data: bytes) -> None:
pass
@abstractmethod
async def read(self) -> bytes:
pass
2019-08-02 17:53:51 +08:00
@abstractmethod
def close(self) -> None:
pass
@abstractmethod
def next_stream_id(self) -> int:
pass