vsp
Class Generator

java.lang.Object
  extended by java.lang.Thread
      extended by cz.zcu.fav.kiv.jsim.JSimProcess
          extended by vsp.Generator
All Implemented Interfaces:
cz.zcu.fav.kiv.jsim.gui.JSimDisplayable, java.lang.Comparable<cz.zcu.fav.kiv.jsim.JSimProcess>, java.lang.Runnable

public class Generator
extends cz.zcu.fav.kiv.jsim.JSimProcess

Transaction generator

Author:
Jan Tichava

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  int generated
          Number of generated transactions
private  double lambda
          Exponential distribution ratio
private  QueueWithServer queue1
          Queue for server 1
private  QueueWithServer queue2
          Queue for server 2
 
Fields inherited from class cz.zcu.fav.kiv.jsim.JSimProcess
INT_REQUESTS_TO_IGNORE, myParent
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
Generator(java.lang.String name, cz.zcu.fav.kiv.jsim.JSimSimulation simulation, double lambda, QueueWithServer queue1, QueueWithServer queue2)
          Creates new generator
 
Method Summary
private  QueueWithServer addTransaction(cz.zcu.fav.kiv.jsim.JSimLink link, QueueWithServer queue)
          Add transaction to queue
 int getGenerated()
          Get number of generated transaction
 double getLq()
           
protected  void life()
          In infinite loop: - generates new transaction - generates random number from <0; 1> - if number is smaller than queue 1 probability, than add transaction to queue 1, otherwise in queue 2 - pause process in depend of lambda
 
Methods inherited from class cz.zcu.fav.kiv.jsim.JSimProcess
activate, activateNow, blockOnSemaphore, cancel, compareTo, copyToMessageClipboard, createDetailedInfoWindow, equals, error, getDetailedInformationArray, getMessageBox, getObjectListItemDescription, getParent, getPrivateLock, getProcessName, getProcessNumber, getProcessState, getProcessStateAsString, getReady, getSenderIAmWaitingFor, getScheduleTime, hasBeenStarted, hasEmptyMessageClipboard, hashCode, hold, isIdle, mainSwitchingRoutine, message, messageNoNL, passivate, reactivate, readFromClipboard, receiveMessageWithBlocking, receiveMessageWithBlocking, receiveMessageWithBlocking, receiveMessageWithBlocking, receiveMessageWithoutBlocking, receiveMessageWithoutBlocking, receiveMessageWithoutBlocking, receiveMessageWithoutBlocking, run, sendMessageWithBlocking, sendMessageWithBlocking, sendMessageWithBlocking, sendMessageWithoutBlocking, sendMessageWithoutBlocking, sendMessageWithoutBlocking, setProcessState, start, toString, unblockFromSemaphore, wait
 
Methods inherited from class java.lang.Thread
activeCount, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, checkAccess, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

lambda

private double lambda
Exponential distribution ratio


queue1

private QueueWithServer queue1
Queue for server 1


queue2

private QueueWithServer queue2
Queue for server 2


generated

private int generated
Number of generated transactions

Constructor Detail

Generator

public Generator(java.lang.String name,
                 cz.zcu.fav.kiv.jsim.JSimSimulation simulation,
                 double lambda,
                 QueueWithServer queue1,
                 QueueWithServer queue2)
          throws cz.zcu.fav.kiv.jsim.JSimSimulationAlreadyTerminatedException,
                 cz.zcu.fav.kiv.jsim.JSimInvalidParametersException,
                 cz.zcu.fav.kiv.jsim.JSimTooManyProcessesException
Creates new generator

Parameters:
name - name of generator
simulation - simulation object
lambda - defined lambda
queue1 - queue for server 1
queue2 - queue for server 2
Throws:
cz.zcu.fav.kiv.jsim.JSimSimulationAlreadyTerminatedException
cz.zcu.fav.kiv.jsim.JSimInvalidParametersException
cz.zcu.fav.kiv.jsim.JSimTooManyProcessesException
Method Detail

life

protected void life()
In infinite loop: - generates new transaction - generates random number from <0; 1> - if number is smaller than queue 1 probability, than add transaction to queue 1, otherwise in queue 2 - pause process in depend of lambda

Overrides:
life in class cz.zcu.fav.kiv.jsim.JSimProcess

addTransaction

private QueueWithServer addTransaction(cz.zcu.fav.kiv.jsim.JSimLink link,
                                       QueueWithServer queue)
                                throws cz.zcu.fav.kiv.jsim.JSimSecurityException,
                                       cz.zcu.fav.kiv.jsim.JSimInvalidParametersException
Add transaction to queue

Parameters:
link -
queue -
Returns:
Throws:
cz.zcu.fav.kiv.jsim.JSimSecurityException
cz.zcu.fav.kiv.jsim.JSimInvalidParametersException

getGenerated

public int getGenerated()
Get number of generated transaction

Returns:
the generated

getLq

public double getLq()