def __init__(self, transactionXmlNode, simulation, tid=None, ppid=None, entitiesXmlNode=None, actor=None, entities=None, xcontext=None): super().__init__(sim=simulation) self.simulation = simulation try: self.entitiesXmlNode = entitiesXmlNode if entitiesXmlNode is not None else XmlSource( ) self.template = transactionXmlNode.get("id") self.pid = self.simulation.getTId() self.id = tid if tid is not None else self.pid self.ppid = ppid if actor is not None: self.actor = actor else: path, base = transactionXmlNode.getWithBase("actor") if path is not None: self.actor = Actor(self.simulation, xmlLoader(path, base=base), extraProperties=True) else: self.actor = Actor(self.simulation, XmlSource()) self.startTime = None if xcontext is None: self.xcontext = XValueContext( lambda: self.simulation.now() - self.startTime) else: self.xcontext = xcontext self.t = self.xcontext.t path, base = transactionXmlNode.getWithBase("entities") if path is not None: self.entitiesXmlNode.append(xmlLoader(path, base=base)) if entities is None: self.factory = EntityFactory(entitiesXmlNode) self.entities = populateEntities(self.factory, self, transactionXmlNode) else: for entity in entities: entity.setTransaction(self) self.entities = entities except Exception as e: print(e) traceback.print_exc(file=sys.stderr)
def __init__(self, transaction, xmlSource): super().__init__(transaction, xmlSource) if xmlSource.get("transactionUrl") is not None: path, base = xmlSource.getWithBase("transactionUrl") if path is None: raise Exception("No trans URL") self.transactionNode = xmlLoader(path, base=base) path, base = xmlSource.getWithBase("entityUrl") if path is None: self.entitiesNode = XmlSource([self.transaction.entitiesXmlNode]) else: self.entitiesNode = xmlLoader(path, base=base) else: self.transactionNode = xmlSource self.entitiesNode = XmlSource([self.transaction.entitiesXmlNode])
def __init__(self, transaction, xmlSource): super().__init__(transaction, xmlSource) if xmlSource.get("transactionUrl") is not None: path, base = xmlSource.getWithBase("transactionUrl") if path is None: raise Exception("No trans URL") self.transactionNode = xmlLoader(path, base=base) path, base = xmlSource.getWithBase("entityUrl") if path is None: self.entitiesNode = XmlSource( [self.transaction.entitiesXmlNode]) else: self.entitiesNode = xmlLoader(path, base=base) else: self.transactionNode = xmlSource self.entitiesNode = XmlSource([self.transaction.entitiesXmlNode])
def start(self, transaction, duration = 0xFFFFFFFF, actor = None): if isinstance(transaction, str): transaction = Transaction.Transaction( xmlStringLoader(transaction) if transaction.strip().startswith("<") else xmlLoader(transaction), self, actor=actor) self.activate(transaction, transaction.run()) self.simulate(until=int(duration))
def __init__(self, transactionXmlNode, simulation, tid = None, ppid = None, entitiesXmlNode = None, actor = None, entities = None, xcontext = None): super().__init__(sim=simulation) self.simulation = simulation try: self.entitiesXmlNode = entitiesXmlNode if entitiesXmlNode is not None else XmlSource() self.template = transactionXmlNode.get("id") self.pid = self.simulation.getTId() self.id = tid if tid is not None else self.pid self.ppid = ppid if actor is not None: self.actor = actor else: path, base = transactionXmlNode.getWithBase("actor") if path is not None: self.actor = Actor(self.simulation, xmlLoader(path, base=base), extraProperties = True) else: self.actor = Actor(self.simulation, XmlSource()) self.startTime = None if xcontext is None: self.xcontext = XValueContext(lambda: self.simulation.now() - self.startTime) else: self.xcontext = xcontext self.t = self.xcontext.t path, base = transactionXmlNode.getWithBase("entities") if path is not None: self.entitiesXmlNode.append(xmlLoader(path, base=base)) if entities is None: self.factory = EntityFactory(entitiesXmlNode) self.entities = populateEntities(self.factory, self, transactionXmlNode) else: for entity in entities: entity.setTransaction(self) self.entities = entities except Exception as e: print(e) traceback.print_exc(file=sys.stderr)
import Etos from Transaction import Transaction from TimeUtil import * from UrlUtil import xmlLoader from Dumper import * sim = Etos.Simulation(startTime=float(strdt("0:00:00"))) sim.initialize() transactionNode = xmlLoader("XML/subtrans.xml") t = Transaction(transactionNode, sim) sim.activate(t, t.run()) sim.simulate(until=int(DayTime(days=1)))
#!/usr/bin/env python3 import Etos from Transaction import Transaction, EntityFactory from TimeUtil import * from UrlUtil import xmlLoader import Model EntityFactory.registerModule(Model) sim = Etos.Simulation(startTime=float(strdt("0:00:00"))) sim.initialize() transactionNode = xmlLoader("XML/gastrans.xml#transaction[@id='starter']") t = Transaction(transactionNode, sim) sim.activate(t, t.run(), at = 0) sim.simulate(until=int(DayTime(days=1))) #for transaction in sim.tanking.keys(): # print("{0}:mean={1.mean}".format(transaction,sim.tanking[transaction]),file=sys.stderr)