#
# $Id: generator.py,v 1.1.1.1 2003/03/22 05:15:52 dbelan2 Exp $
#
#
# $Log: generator.py,v $
# Revision 1.1.1.1  2003/03/22 05:15:52  dbelan2
# Initial import of all public_html on www.cs.mcgill.ca.
#
# Revision 1.6  2001/11/30 21:24:47  dbelan2
# Added header.
#
#
#
#


from DEVS import *
from Simulator import *

from random import randint
from random import seed

from car import *
from constant import *

seed(24)

class Generator(AtomicDEVS):
    """
    Generator cars that carry destionation information
    """
    def __init__(self, ia, ib, position, firstavrrT=0):
        AtomicDEVS.__init__(self)

        self.ia=ia
        self.ib=ib
        self.position=position

        self.OUT=self.addOutPort()

        self.firstavrrT=firstavrrT
        self.timeFlag=0

    def intTransition(self):
        self.timeFlag=1
        return self.state

    def outputFnc(self):
        dest=randint(0, 3) 
        p=Car(self.timeNext, dest) #creationT may be self.timeLast+self.elapsed 
        self.poke(self.OUT,p)

    def timeAdvance(self):
        if self.timeFlag==0:
            return self.firstavrrT
        if self.timeFlag==1:
            return randint(self.ia,self.ib)
