Introduces IO abstractions apart from asyncio or those attached to IRawConnection

Also adds `msgio` utilities to mirror the Go implementation
This commit is contained in:
Alex Stokes
2019-09-03 21:42:45 -07:00
parent cd3e093001
commit 8e8318aa5c
7 changed files with 154 additions and 32 deletions

View File

@ -1,21 +1,9 @@
from abc import ABC, abstractmethod
from libp2p.io.abc import ReadWriteCloser
class IRawConnection(ABC):
class IRawConnection(ReadWriteCloser):
"""
A Raw Connection provides a Reader and a Writer
"""
initiator: bool
@abstractmethod
async def write(self, data: bytes) -> None:
pass
@abstractmethod
async def read(self, n: int = -1) -> bytes:
pass
@abstractmethod
async def close(self) -> None:
pass