SIMLIB/C++  3.07
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | Friends | List of all members
simlib3::Calendar Class Referenceabstract

common interface for all calendar (PES) implementations More...

Inheritance diagram for simlib3::Calendar:
Inheritance graph
[legend]
Collaboration diagram for simlib3::Calendar:
Collaboration graph
[legend]

Public Member Functions

bool Empty () const
 
unsigned Size () const
 
virtual void ScheduleAt (Entity *e, double t)=0
 enqueue More...
 
virtual EntityGetFirst ()=0
 dequeue first More...
 
virtual EntityGet (Entity *e)=0
 dequeue More...
 
virtual void clear (bool destroy_entities=false)=0
 remove all scheduled entities More...
 
virtual const char * Name ()=0
 
virtual void debug_print ()=0
 for debugging only More...
 
double MinTime () const
 time of activation of first item More...
 

Static Public Member Functions

static Calendarinstance ()
 create/get single instance (singleton) More...
 
static bool instance_exists ()
 check if the instance exists More...
 

Protected Member Functions

void SetMinTime (double t)
 set cache for faster access More...
 
 Calendar ()
 
virtual ~Calendar ()
 clear is called in derived class dtr More...
 

Static Protected Member Functions

static void delete_instance ()
 destroy single instance More...
 

Protected Attributes

unsigned _size
 number of scheduled items More...
 

Private Attributes

double mintime
 activation time of first event More...
 

Static Private Attributes

static Calendar_instance = 0
 pointer to single instance More...
 

Friends

void SetCalendar (const char *name)
 choose calendar implementation default is list More...
 

Detailed Description

common interface for all calendar (PES) implementations

Definition at line 67 of file calendar.cc.

Constructor & Destructor Documentation

◆ Calendar()

simlib3::Calendar::Calendar ( )
inlineprotected

Definition at line 105 of file calendar.cc.

◆ ~Calendar()

virtual simlib3::Calendar::~Calendar ( )
inlineprotectedvirtual

clear is called in derived class dtr

Definition at line 106 of file calendar.cc.

References delete_instance().

Member Function Documentation

◆ clear()

virtual void simlib3::Calendar::clear ( bool  destroy_entities = false)
pure virtual

◆ debug_print()

virtual void simlib3::Calendar::debug_print ( )
pure virtual

◆ delete_instance()

void simlib3::Calendar::delete_instance ( )
staticprotected

◆ Empty()

bool simlib3::Calendar::Empty ( ) const
inline

◆ Get()

virtual Entity* simlib3::Calendar::Get ( Entity e)
pure virtual

◆ GetFirst()

virtual Entity* simlib3::Calendar::GetFirst ( )
pure virtual

◆ instance()

Calendar * simlib3::Calendar::instance ( )
inlinestatic

create/get single instance (singleton)

interface to singleton instance

Definition at line 1204 of file calendar.cc.

References _instance, simlib3::CalendarList::create(), and simlib3::CalendarQueue::create().

Referenced by simlib3::SQS::Clear(), simlib3::SQS::debug_print(), simlib3::SQS::Empty(), simlib3::SQS::Get(), simlib3::SQS::GetFirst(), and simlib3::SQS::ScheduleAt().

◆ instance_exists()

static bool simlib3::Calendar::instance_exists ( )
inlinestatic

check if the instance exists

Definition at line 101 of file calendar.cc.

References _instance.

Referenced by simlib3::CalendarList::debug_print(), and simlib3::CalendarQueue::debug_print().

◆ MinTime()

double simlib3::Calendar::MinTime ( ) const
inline

◆ Name()

virtual const char* simlib3::Calendar::Name ( )
pure virtual

Implemented in simlib3::CalendarQueue, and simlib3::CalendarList.

Referenced by Size().

◆ ScheduleAt()

virtual void simlib3::Calendar::ScheduleAt ( Entity e,
double  t 
)
pure virtual

◆ SetMinTime()

void simlib3::Calendar::SetMinTime ( double  t)
inlineprotected

◆ Size()

unsigned simlib3::Calendar::Size ( ) const
inline

Friends And Related Function Documentation

◆ SetCalendar

void SetCalendar ( const char *  name)
friend

choose calendar implementation default is list

Set calendar implementation.

Parameters
nameString identification of calendar: "list", "cq"

Definition at line 1250 of file calendar.cc.

Member Data Documentation

◆ _instance

Calendar * simlib3::Calendar::_instance = 0
staticprivate

pointer to single instance

static pointer to singleton instance

Definition at line 109 of file calendar.cc.

Referenced by delete_instance(), instance(), instance_exists(), and simlib3::CalendarQueue::visualize().

◆ _size

unsigned simlib3::Calendar::_size
protected

◆ mintime

double simlib3::Calendar::mintime
private

activation time of first event

Definition at line 95 of file calendar.cc.

Referenced by MinTime(), and SetMinTime().


The documentation for this class was generated from the following file: