def __init__(self, participant, address=None, loop=None): """Create a new gossiper. @param address: Listen address if the gossiper will not be bound to a specific listen interface. @param address: C{str} """ self.loop = loop or asyncio.get_event_loop() self.state = PeerState(participant, loop=self.loop) self._states = {} self._address = address self._scuttle = Scuttle(self._states, self.state) self._heart_beat_timer = LoopingCall(self._beat_heart, _loop=self.loop) self._gossip_timer = LoopingCall(self._gossip, _loop=self.loop) self.participant = participant self._seeds = [] self._transport = None self.name = None
def _setup_state_for_peer(self, peer_name): """Setup state for a new peer.""" self._states[peer_name] = PeerState(self.participant, name=peer_name, loop=self.loop)