def test_check_before_activate_with_notifications(lcs1, lcs2): ret = LocalConventionState( ActorAddress(1), { 'Admin Port': 1, 'Convention Address.IPv4': ActorAddress(1), 'popsicle': 'cold' }, StatsManager(), lambda x: ActorAddress(1)) # Activate the system verify_io(ret.setup_convention(), []) notifyAddr = ActorAddress('notify') lcs1.add_notification_handler(notifyAddr) ret = LocalConventionState( ActorAddress(2), { 'Admin Port': 2, 'Convention Address.IPv4': ActorAddress(1), 'apple pie': 'hot' }, StatsManager(), lambda x: ActorAddress(1)) ret._expected_setup_convreg = ConventionRegister(ActorAddress(2), ret.capabilities, firstTime=True, preRegister=False) verify_io(ret.check_convention(), []) # Activate the system verify_io(ret.setup_convention(), [ (ConventionRegister, lambda r, a: (r == ret._expected_setup_convreg and a == ActorAddress(1))), (LogAggregator, None), ])
def lcs1(): ret = LocalConventionState( ActorAddress(1), { 'Admin Port': 1, 'Convention Address.IPv4': ActorAddress(1), 'popsicle': 'cold' }, StatsManager(), lambda x: ActorAddress(1)) # Activate the system verify_io(ret.setup_convention(activation=True), []) return ret
def __init__(self, adminAddr, transport): self._adminAddr = adminAddr self.transport = transport self._addrManager = ActorAddressManager(adminAddr, self.transport.myAddress) self.transport.setAddressManager(self._addrManager) self._pendingTransmits = PendingTransmits(self._addrManager) self._awaitingAddressUpdate = AddressWaitTransmits() self._receiveQueue = [] # array of ReceiveMessage to be processed self._children = [] # array of Addresses of children of this Actor/Admin self._governer = RateThrottle(RATE_THROTTLE) self._sCBStats = StatsManager()
def solo_lcs2(): # Like lcs2, but does not specify a convention address; intended # for use with pre-registration (e.g. to simulate TXOnly # environments. ret = LocalConventionState(ActorAddress(2), { 'Admin Port': 2, 'apple pie': 'hot' }, StatsManager(), lambda x: None) # Activate the system assert [] == ret.setup_convention() return ret
def __init__(self, adminAddr, transport): self._adminAddr = adminAddr self.transport = transport self._addrManager = ActorAddressManager(adminAddr, self.transport.myAddress) self.transport.setAddressManager(self._addrManager) self._finalTransmitPending = { } # key = target ActorAddress, value=None or the last pending Intent self._awaitingAddressUpdate = { } # key = actorAddress waited on (usually local), value=array of transmit Intents self._receiveQueue = [] # array of ReceiveMessage to be processed self._children = [ ] # array of Addresses of children of this Actor/Admin self._governer = RateThrottle(RATE_THROTTLE) self._sCBStats = StatsManager()
def lcs2(): ret = LocalConventionState( ActorAddress(2), { 'Admin Port': 2, 'Convention Address.IPv4': ActorAddress(1), 'apple pie': 'hot' }, StatsManager(), lambda x: ActorAddress(1)) ret._expected_setup_convreg = ConventionRegister(ActorAddress(2), ret.capabilities, firstTime=True, preRegister=False) # Activate the system verify_io(ret.setup_convention(activation=True), [ (ConventionRegister, lambda r, a: (r == ret._expected_setup_convreg and a == ActorAddress(1))), (LogAggregator, None), ]) # KWQ: above is a HysteresisSend return ret