from DEVS import *
from Simulator import *

from whrandom import randint

from constant import *

class Exit(AtomicDEVS):
    """
    This class receives car that exit the roundabout
    and record information necessary to compute some
    performance metrics.
    """
    def __init__(self, position):
        AtomicDEVS.__init__(self)

        self.position=position
        self.exitedcars=[]
        self.IN=self.addInPort()

        self.state=self.exitedcars

    def extTransition(self):
        car=self.peek(self.IN)
        transitionT=self.timeLast+self.elapsed-car.createT
        self.exitedcars.append((car.ID, transitionT, car.getQueueTime()))

        return self.state

    # This DEVS has no internal transitions, only external transitions
    def timeAdvance(self):
        return INFINITY
    

