mirror of https://github.com/libp2p/py-libp2p.git
Robert Zajac
6 years ago
committed by
GitHub
5 changed files with 137 additions and 1 deletions
@ -0,0 +1,27 @@ |
|||
from abc import ABC, abstractmethod |
|||
|
|||
class IConnection(ABC): |
|||
|
|||
@abstractmethod |
|||
def get_observed_addrs(self): |
|||
""" |
|||
retrieve observed addresses from underlying transport |
|||
:return: list of multiaddrs |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def get_peer_info(self): |
|||
""" |
|||
retrieve peer info object that the connection connects to |
|||
:return: a peer info object |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def set_peer_info(self, peer_info): |
|||
""" |
|||
:param peer_info: a peer info object that contains info of peer |
|||
:return: True if successful |
|||
""" |
|||
pass |
@ -0,0 +1,31 @@ |
|||
from abc import ABC, abstractmethod |
|||
|
|||
class IListener(ABC): |
|||
|
|||
@abstractmethod |
|||
def listen(self, multiaddr): |
|||
""" |
|||
put listener in listening mode and wait for incoming connections |
|||
:param multiaddr: multiaddr of peer |
|||
:return: return True if successful |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def get_addrs(self): |
|||
""" |
|||
retrieve list of addresses the listener is listening on |
|||
:return: return list of addrs |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def close(self, options=None): |
|||
""" |
|||
close the listener such that no more connections |
|||
can be open on this transport instance |
|||
:param options: optional object potential with timeout |
|||
a timeout value in ms that fires and destroy all connections |
|||
:return: return True if successful |
|||
""" |
|||
pass |
@ -0,0 +1,54 @@ |
|||
import asyncio |
|||
from .transport_interface import ITransport |
|||
from .listener_interface import IListener |
|||
|
|||
class TCP(ITransport): |
|||
|
|||
def __init__(self): |
|||
self.multiaddr = None |
|||
|
|||
class Listener(IListener): |
|||
|
|||
def listen(self, multiaddr): |
|||
""" |
|||
put listener in listening mode and wait for incoming connections |
|||
:param multiaddr: multiaddr of peer |
|||
:return: return True if successful |
|||
""" |
|||
pass |
|||
|
|||
def get_addrs(self): |
|||
""" |
|||
retrieve list of addresses the listener is listening on |
|||
:return: return list of addrs |
|||
""" |
|||
pass |
|||
|
|||
def close(self, options=None): |
|||
""" |
|||
close the listener such that no more connections |
|||
can be open on this transport instance |
|||
:param options: optional object potential with timeout |
|||
a timeout value in ms that fires and destroy all connections |
|||
:return: return True if successful |
|||
""" |
|||
pass |
|||
|
|||
def dial(self, multiaddr, options=None): |
|||
""" |
|||
dial a transport to peer listening on multiaddr |
|||
:param multiaddr: multiaddr of peer |
|||
:param options: optional object |
|||
:return: list of multiaddrs |
|||
""" |
|||
pass |
|||
|
|||
def create_listener(self, handler_function, options=None): |
|||
""" |
|||
create listener on transport |
|||
:param options: optional object with properties the listener must have |
|||
:param handler_function: a function called when a new conntion is received |
|||
that takes a connection as argument which implements interface-connection |
|||
:return: a listener object that implements listener_interface.py |
|||
""" |
|||
pass |
@ -0,0 +1,24 @@ |
|||
from abc import ABC, abstractmethod |
|||
|
|||
class ITransport(ABC): |
|||
|
|||
@abstractmethod |
|||
def dial(self, multiaddr, options=None): |
|||
""" |
|||
dial a transport to peer listening on multiaddr |
|||
:param multiaddr: multiaddr of peer |
|||
:param options: optional object |
|||
:return: list of multiaddrs |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def create_listener(self, handler_function, options=None): |
|||
""" |
|||
create listener on transport |
|||
:param options: optional object with properties the listener must have |
|||
:param handler_function: a function called when a new conntion is received |
|||
that takes a connection as argument which implements interface-connection |
|||
:return: a listener object that implements listener_interface.py |
|||
""" |
|||
pass |
Loading…
Reference in new issue