@requireCapability("Primary")
class Broadcaster(ActorTypeDispatcher):
def receiveMessage(self, message, sender):
print("{ Primary")
print(message)
print("}")
@requireCapability("Secondary")
class Sender(ActorTypeDispatcher):
def receiveMessage(self, message, sender):
print("{ **Sender")
print(message)
print("}")
print("Registering...")
Secondary_actr = self.createActor(Secondary)
registry = self.createActor(Broadcaster, globalName='Broadcaster')
self.send(registry, Secondary_actr)
print("Registry obtained")
@requireCapability("Secondary")
class Secondary(Actor):
def receiveMessage(self, message, sender):
print("{ Secondary")
print(message)
print("}")
if __name__ == "__main__":
global_name = os.environ['ACTOR_NAME']
if global_name == "leader":
ActorSystem("multiprocTCPBase", {"Convention Address.IPv4": ('leader', 1900), "Primary": True })
curr_actr = ActorSystem().createActor(Broadcaster, globalName="Broadcaster")
#ActorSystem().tell(curr_actr, curr_actr)
else:
ActorSystem("multiprocTCPBase", {"Convention Address.IPv4": ('leader', 1900), "Secondary": True })
curr_actr = ActorSystem().createActor(Sender)
ActorSystem().tell(curr_actr, "Start")