small refactoring to facilitate integration of the bond equation

This commit is contained in:
Simone Margaritelli
2019-10-23 15:20:16 +02:00
parent 23ef17d4c7
commit 3ad426916f
4 changed files with 46 additions and 22 deletions

View File

@ -53,6 +53,14 @@ class AsyncAdvertiser(object):
self._advertisement['face'] = new
grid.set_advertisement_data(self._advertisement)
def _on_new_peer(self, peer):
self._view.on_new_peer(peer)
plugins.on('peer_detected', self, peer)
def _on_lost_peer(self, peer):
self._view.on_lost_peer(peer)
plugins.on('peer_lost', self, peer)
def _adv_poller(self):
while True:
logging.debug("polling pwngrid-peer for peers ...")
@ -72,24 +80,22 @@ class AsyncAdvertiser(object):
to_delete = []
for ident, peer in self._peers.items():
if ident not in new_peers:
self._view.on_lost_peer(peer)
plugins.on('peer_lost', self, peer)
to_delete.append(ident)
for ident in to_delete:
self._on_lost_peer(peer)
del self._peers[ident]
for ident, peer in new_peers.items():
# check who's new
if ident not in self._peers:
self._peers[ident] = peer
self._view.on_new_peer(peer)
plugins.on('peer_detected', self, peer)
self._on_new_peer(peer)
# update the rest
else:
self._peers[ident].update(peer)
except Exception as e:
logging.exception("error while polling pwngrid-peer")
logging.warning("error while polling pwngrid-peer: %s" % e)
time.sleep(1)