mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-12 16:10:57 +00:00
added event emmiter
This commit is contained in:
0
libp2p/discovery/events/__init__.py
Normal file
0
libp2p/discovery/events/__init__.py
Normal file
37
libp2p/discovery/events/peerDiscovery.py
Normal file
37
libp2p/discovery/events/peerDiscovery.py
Normal file
@ -0,0 +1,37 @@
|
||||
from collections.abc import (
|
||||
Awaitable,
|
||||
Callable,
|
||||
)
|
||||
|
||||
import trio
|
||||
|
||||
from libp2p.abc import (
|
||||
PeerInfo,
|
||||
)
|
||||
|
||||
TTL: int = 60 * 60 # Time-to-live for discovered peers in seconds
|
||||
|
||||
|
||||
class PeerDiscovery:
|
||||
def __init__(self) -> None:
|
||||
self._peer_discovered_handlers: list[Callable[[PeerInfo], Awaitable[None]]] = []
|
||||
|
||||
def register_peer_discovered_handler(
|
||||
self, handler: Callable[[PeerInfo], Awaitable[None]]
|
||||
) -> None:
|
||||
self._peer_discovered_handlers.append(handler)
|
||||
|
||||
async def emit_peer_discovered(self, peer_info: PeerInfo) -> None:
|
||||
for handler in self._peer_discovered_handlers:
|
||||
await handler(peer_info)
|
||||
|
||||
|
||||
peerDiscovery = PeerDiscovery()
|
||||
|
||||
|
||||
async def peerDiscoveryHandler(peerInfo: PeerInfo) -> None:
|
||||
await trio.sleep(5) # Simulate some processing delay
|
||||
# print("Discovered peer is", peerInfo.peer_id)
|
||||
|
||||
|
||||
peerDiscovery.register_peer_discovered_handler(peerDiscoveryHandler)
|
||||
Reference in New Issue
Block a user