The interface of the event class :
interface event
{
protected :
event(int qp=0,int sp=0,int kf = FALSE); // queuing and scheduling
// priority and kill flag as arguments
public :
virtual ~event(); // destructor.
virtual int operator()() = 0; // empty
virtual int verify(); // returns OK
int report(histogram* h,double interval = 0); // create report
void stamp(); // add time stamp
double timespent(); // time since the stamp
int queuingpriority(); // return queuing priority
int schedulingpriority(); // return scheduling priority
void queuingpriority(int p); // adjust queuing priority
void schedulingpriority(int p); // adjust scheduling priority
int active(); // is active ?
int pending(); // is pending ?
int conditional(); // is conditional ?
int closed(); // is closed ?
int passive(); // is passive ?
int queued(); // is queued ?
};
When creating an event it receives the queuing and scheduling priorities and a kill flag, which should be set to OK when the simulation is ran for a number of terminated events. The report method generates a histogram of the time the events stayed in the simulation. It is printed each interval time units.