示例#1
0
    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)
示例#2
0
 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])
示例#3
0
 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])
示例#4
0
文件: Etos.py 项目: HA-10292678/etos
 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))
示例#5
0
    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)
示例#6
0
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)))
示例#7
0
#!/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)