public class SimpleServer2 extends BasicSimEntity
This approach does not use reflection, but implicitly relies on the moral equivalent of a "switch" statement to decide which event to execute when it is called back from Schedule (the handleSimEvent() method).
Modifier and Type | Field and Description |
---|---|
protected int |
numberAvailableServers
The number of servers that are not busy.
|
protected int |
numberInQueue
The current length of the queue.
|
protected int |
numberServed
The total number served by the system.
|
private RandomVariate |
serviceTimeGenerator
The RandomVariate used to generate service times.
|
private int |
totalNumberServers
The total number of servers in the system.
|
eventList, property
DEFAULT_ENTITY_NAME, DEFAULT_EVENT_NAME, DEFAULT_PRIORITY, EVENT_METHOD_PREFIX, NL
Constructor and Description |
---|
SimpleServer2() |
SimpleServer2(int totalNumberServers,
RandomVariate serviceTimeGenerator)
Creates a new SimpleServer2 with the given number of servers and the
given service time distribution.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
description()
Returns a short description of this Class.
|
void |
doArrival()
Arrival of a customer to queue.
|
void |
doEndService()
Increments number of available servers.
|
void |
doRun()
Simply fires the PropertyChangeEvents for numberInQueue and
numberAvailableServers.
|
void |
doStartService()
Schedules EndService event after delay of a service time.
|
int |
getNumberAvailableServers() |
int |
getNumberInQueue() |
int |
getNumberServed() |
RandomVariate |
getServiceTimeGenerator() |
int |
getTotalNumberServers()
Returns the total number of servers.
|
void |
handleSimEvent(SimEvent event)
Handles the Run, Arrival, StartService, and EndService events by calling
the corresponding event ("do") method.
|
void |
processSimEvent(SimEvent event)
Processes events for which this SimpleServer2 is a listener.
|
void |
reset()
Resets state to empty and idle with no customers processed.
|
void |
setServiceTimeGenerator(RandomVariate serviceTimeGenerator) |
void |
setTotalNumberServers(int totalNumberServers) |
addPropertyChangeListener, addPropertyChangeListener, attemptSchedule, clearAddedProperty, compareTo, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAddedProperties, getEventList, getEventListID, getName, getPriority, getPropertiesString, getProperty, getProperty, getPropertyChangeListeners, getSerial, interrupt, interrupt, interruptAll, interruptAll, interruptAll, interruptAllWithArgs, interruptAllWithArgs, isClearAddedPropertiesOnReset, isJustDefinedProperties, isPersistant, isReRunnable, isVerbose, parametersMatch, removePropertyChangeListener, removePropertyChangeListener, resetNextSerial, setClearAddedPropertiesOnReset, setEventList, setEventListID, setJustDefinedProperties, setName, setPersistant, setPriority, setProperty, setVerbose, toString, waitDelay, waitDelay, waitDelay, waitDelay
addSimEventListener, getSimEventListeners, notifyListeners, removeSimEventListener
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addSimEventListener, getSimEventListeners, notifyListeners, removeSimEventListener
private RandomVariate serviceTimeGenerator
private int totalNumberServers
protected int numberAvailableServers
protected int numberInQueue
protected int numberServed
public SimpleServer2()
public SimpleServer2(int totalNumberServers, RandomVariate serviceTimeGenerator)
totalNumberServers
- total # serversserviceTimeGenerator
- generates service timespublic void reset()
reset
in interface ReRunnable
reset
in class BasicSimEntity
public void doRun()
public void doArrival()
public void doStartService()
public void doEndService()
public int getTotalNumberServers()
public int getNumberInQueue()
public int getNumberAvailableServers()
public int getNumberServed()
public RandomVariate getServiceTimeGenerator()
public static java.lang.String description()
public void handleSimEvent(SimEvent event)
handleSimEvent
in interface SimEventScheduler
handleSimEvent
in class BasicSimEntity
event
- The SimEvent to be handled.public void processSimEvent(SimEvent event)
processSimEvent
in interface SimEventListener
processSimEvent
in class BasicSimEntity
event
- "Listened-to" event.public void setServiceTimeGenerator(RandomVariate serviceTimeGenerator)
serviceTimeGenerator
- the serviceTimeGenerator to setpublic void setTotalNumberServers(int totalNumberServers)
totalNumberServers
- the totalNumberServers to set