def act(self, entity, data=None): if (self.logs): print(self.name + ": Dequeued to " + data.name + " at Tick:" + str(self.simulation.tick)) Actor.leave(self, entity) data.enter(entity)
def __init__(self, event, intervalfunction, maxevents=0): Actor.__init__(self) self.event = event self.eventsgenerated = 1 self.maxevents = maxevents self.intervalfunction = intervalfunction self.name = "EventGenerator"
def __init__(self, destination, delayinterval, delayintervaldata=None, maxentities=0): Actor.__init__(self) self.destination = destination self.delayinterval = delayinterval self.delayintervaldata = delayintervaldata self.maxentities = maxentities self.name = "Delay"
def act(self, entity, data=None): if (self.logs): print(self.name + ": Disposed Entity at Tick:" + str(self.simulation.tick)) entity.dispose(self.simulation.tick) if (self.deleteentityfrommemory): Actor.leave(self, entity) del entity
def enter(self, entity): if (self.logs): print(self.name + ": Enqueued at Tick:" + str(self.simulation.tick)) Actor.enter(self, entity) for i in self.destinations: if (i.accepts_new): if (len(self.entities)): self.act(self.entities[-1], i)
def enter(self, entity): if (not self.accepts_new): print("Error: Entered into Delay when accepts_new = False") self.simulation.error = True return Actor.enter(self, entity) self.act(entity) if (self.maxentities != 0 and self.maxentities <= len(self.entities)): self.accepts_new = False
def __init__(self, destination, entitytype, entitycreationdata, maxentities=0, batch=False, batchfunction=None): Actor.__init__(self) self.destination = destination self.entitytype = entitytype self.entitycreationdata = entitycreationdata self.batch = batch self.batchfunction = batchfunction self.maxentities = maxentities self.entitiescreated = 1 self.name = "Generator"
def enddelay(self, data): if (self.logs): print(self.name + ": Delay ended at Tick:" + str(self.simulation.tick)) if (self.maxentities != 0 and self.maxentities > len(self.entities) - 1): self.accepts_new = True Actor.leave(self, data) self.destination.enter(data)
def start(self): Actor.start(self) for i in self.destinations: i.registerforleavecalback(self.leavecallback)
def act(self, entity, data=None): Actor.leave(self, entity) data.enter(entity)
def __init__(self, destinations): Actor.__init__(self) self.destinations = destinations self.name = "Queue"
def act(self, entity): Actor.leave(self, entity) nextactor = self.branchactors[self.branchfunction(entity)] nextactor.enter(entity)
def __init__(self, branchactors, branchfunction): Actor.__init__(self) self.branchactors = branchactors self.branchfunction = branchfunction self.name = "Branch"
def __init__(self): Actor.__init__(self) self.name = 'Slot'
def __init__(self, destination, initialinventory=[]): Actor.__init__(self) self.destination = destination self.initialinventory = initialinventory self.name = "Storage"
def start(self): Actor.start(self)
def __init__(self): Actor.__init__(self) self.name = 'Disposer' self.deleteentityfrommemory = True
def act(self, entity, data=None): function(entity) Actor.leave(self, entity) self.destination.enter(entity)
def enter(self, entity): if (self.logs): print(self.name + ": Decided at Tick:" + str(self.simulation.tick)) Actor.enter(self, entity) self.act(entity)
def enter(self, entity): Actor.enter(self, entity) self.act(entity)
def start(self): Actor.start(self) for i in self.initialinventory: self.entities.append(i)
def __init__(self, destination, function): Actor.__init__(self) self.destination = destination self.function = function self.name = "Process"
def start(self): Actor.start(self) self.simulation.eventmanager.addevent( self.simulation.tick + self.intervalfunction(), self.generate)
def start(self): Actor.start(self) self.simulation.eventmanager.addevent(self.simulation.tick + self.intervalfunction(), self.generate)