atomic_p2p.abc package¶
Submodules¶
atomic_p2p.abc.authenticator module¶
-
class
atomic_p2p.abc.authenticator.
AuthenticatorABC
¶ Bases:
abc.ABC
Authenticator Absctract Class The absctract class for implementation.
-
_authenticate_packet
(pkt, **kwargs)¶ The function for authenticate a packet. Actual examine logic is in this function, and after if-statement will call _on_pass method or _on_fail method to make flow control.
- Return type
None
-
_on_fail
(sock, pkt, **kwargs)¶ The method will be execute when authentication failed.
- Return type
None
-
_on_pass
(sock, pkt, **kwargs)¶ The method will be execute when authentication passed.
- Return type
None
-
atomic_p2p.abc.topology module¶
-
class
atomic_p2p.abc.topology.
TopologyABC
¶ Bases:
abc.ABC
Topology Absctract Class The absctract class for implementation.
This abstract class should cowork with HandleableMixin and AuthenticatorABC.
-
add_peer_in_net
(peer_info, **kwargs)¶ - Return type
None
-
del_peer_in_net
(peer_info, **kwargs)¶ - Return type
bool
-
get_peer_info_by_conn
(conn, **kwargs)¶ The function get peer info by given socket.
- Return type
Union
[None
,_Forwardref
]
-
get_peer_info_by_host
(host, **kwargs)¶ The function get peer info by given host.
- Return type
Union
[None
,_Forwardref
]
-
handler_broadcast_packet
(host, pkt_type, **kwargs)¶ - Return type
None
-
handler_unicast_packet
(host, pkt_type, **kwargs)¶ - Return type
None
-
is_peer_in_net
(info, **kwargs)¶ - Return type
bool
-
join_net
(host, **kwargs)¶ - Return type
None
-
join_net_by_DNS
(domain, ns=None, **kwargs)¶ - Return type
None
-
leave_net
(**kwargs)¶ - Return type
None
-
on_packet_to_route
(sock, pkt, **kwargs)¶ Call by AuthenticatorABC after a packet passed the authentication. The content should be like:
handler = self.select_handler(pkt_type=pkt._type) if handler is None:
self.logger.info(“Unknown packet type: {}”.format(pkt._type))
- else:
return handler.on_recv(src=pkt.src, pkt=pkt, sock=sock)
Notice that select_handler method is from HandleableMixin.
-
topology_register_handler
()¶ Call by a peer class to register essentials handlers. The content should be like:
- installing_handlers = [
… AnyHandlerYouNeed, …
] for each in installing_handlers:
self.register_handler(handler=each)
Notice that register_handler method is from HandleableMixin & each element inside installing_handlers should be a Handler object.
-
Module contents¶
-
class
atomic_p2p.abc.
AuthenticatorABC
¶ Bases:
abc.ABC
Authenticator Absctract Class The absctract class for implementation.
-
_authenticate_packet
(pkt, **kwargs)¶ The function for authenticate a packet. Actual examine logic is in this function, and after if-statement will call _on_pass method or _on_fail method to make flow control.
- Return type
None
-
_on_fail
(sock, pkt, **kwargs)¶ The method will be execute when authentication failed.
- Return type
None
-
_on_pass
(sock, pkt, **kwargs)¶ The method will be execute when authentication passed.
- Return type
None
-
-
class
atomic_p2p.abc.
TopologyABC
¶ Bases:
abc.ABC
Topology Absctract Class The absctract class for implementation.
This abstract class should cowork with HandleableMixin and AuthenticatorABC.
-
add_peer_in_net
(peer_info, **kwargs)¶ - Return type
None
-
del_peer_in_net
(peer_info, **kwargs)¶ - Return type
bool
-
get_peer_info_by_conn
(conn, **kwargs)¶ The function get peer info by given socket.
- Return type
Union
[None
,_Forwardref
]
-
get_peer_info_by_host
(host, **kwargs)¶ The function get peer info by given host.
- Return type
Union
[None
,_Forwardref
]
-
handler_broadcast_packet
(host, pkt_type, **kwargs)¶ - Return type
None
-
handler_unicast_packet
(host, pkt_type, **kwargs)¶ - Return type
None
-
is_peer_in_net
(info, **kwargs)¶ - Return type
bool
-
join_net
(host, **kwargs)¶ - Return type
None
-
join_net_by_DNS
(domain, ns=None, **kwargs)¶ - Return type
None
-
leave_net
(**kwargs)¶ - Return type
None
-
on_packet_to_route
(sock, pkt, **kwargs)¶ Call by AuthenticatorABC after a packet passed the authentication. The content should be like:
handler = self.select_handler(pkt_type=pkt._type) if handler is None:
self.logger.info(“Unknown packet type: {}”.format(pkt._type))
- else:
return handler.on_recv(src=pkt.src, pkt=pkt, sock=sock)
Notice that select_handler method is from HandleableMixin.
-
topology_register_handler
()¶ Call by a peer class to register essentials handlers. The content should be like:
- installing_handlers = [
… AnyHandlerYouNeed, …
] for each in installing_handlers:
self.register_handler(handler=each)
Notice that register_handler method is from HandleableMixin & each element inside installing_handlers should be a Handler object.
-