mirror of https://github.com/libp2p/py-libp2p.git
zixuanzh
6 years ago
6 changed files with 120 additions and 0 deletions
@ -0,0 +1,4 @@ |
|||
from host_interface import Host |
|||
|
|||
class BasicHost(Host): |
|||
pass |
@ -0,0 +1,49 @@ |
|||
from abc import ABC |
|||
|
|||
class Host(ABC): |
|||
|
|||
# default options constructor |
|||
def __init__(self, context, network): |
|||
self.context = context |
|||
self.network = network |
|||
|
|||
@abstractmethod |
|||
def id(self): |
|||
""" |
|||
:return: peer_id of host |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def network(self): |
|||
""" |
|||
:return: network instance of host |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def mux(self): |
|||
""" |
|||
:return: mux instance of host |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def set_stream_handler(self, protocol_id, stream_handler): |
|||
""" |
|||
set stream handler for host |
|||
:param protocol_id: protocol id used on stream |
|||
:param stream_handler: a stream handler instance |
|||
:return: true if successful |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def new_stream(self, context, peer_id, protocol_ids): |
|||
""" |
|||
:param context: a context instance |
|||
:param peer_id: peer_id that host is connecting |
|||
:param proto_ids: list of protocol ids that stream runs on |
|||
:return: true if successful |
|||
""" |
|||
pass |
@ -0,0 +1,25 @@ |
|||
from abc import ABC |
|||
|
|||
class Network(ABC): |
|||
|
|||
def __init__(self, context, my_peer_id, peer_store): |
|||
self.context = context |
|||
self.my_peer_id = my_peer_id |
|||
self.peer_store = peer_store |
|||
|
|||
@abstractmethod |
|||
def set_stream_handler(stream_handler): |
|||
""" |
|||
:param stream_handler: a stream handler instance |
|||
:return: true if successful |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def new_stream(context, peer_id): |
|||
""" |
|||
:param context: context instance |
|||
:param peer_id: peer_id of destination |
|||
:return: stream instance |
|||
""" |
|||
pass |
@ -0,0 +1,38 @@ |
|||
from abc import ABC |
|||
|
|||
class Stream(ABC): |
|||
|
|||
def __init__(self, context, peer_id): |
|||
self.context = context |
|||
self.peer_id = peer_id |
|||
|
|||
@abstractmethod |
|||
def protocol(): |
|||
""" |
|||
:return: protocol id that stream runs on |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def set_protocol(protocol_id): |
|||
""" |
|||
:param protocol_id: protocol id that stream runs on |
|||
:return: true if successful |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def read(): |
|||
""" |
|||
read from stream |
|||
:return: bytes of input |
|||
""" |
|||
pass |
|||
|
|||
@abstractmethod |
|||
def write(bytes): |
|||
""" |
|||
write to stream |
|||
:return: number of bytes written |
|||
""" |
|||
pass |
@ -0,0 +1,4 @@ |
|||
from interface import Network |
|||
|
|||
class Swarm(Network): |
|||
pass |
Loading…
Reference in new issue