SIMLIB/C++ 3.09
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
simlib3::Facility Class Reference

(SOL-like) facility Facility with exclusive access and service priority More...

#include <simlib.h>

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

Public Member Functions

 Facility ()
 
 Facility (const char *_name)
 
 Facility (Queue *_queue1)
 
 Facility (const char *_name, Queue *_queue1)
 
virtual ~Facility ()
 
virtual void Output () const override
 print statistics
 
 operator Facility * ()
 
void SetQueue (Queue *queue1)
 change input queue
 
bool OwnQueue () const
 test for default queue
 
bool Busy () const
 in service
 
Entity * In () const
 current entity or nullptr
 
unsigned QueueLen () const
 
virtual void Seize (Entity *e, ServicePriority_t sp=DEFAULT_PRIORITY)
 
virtual void Release (Entity *e)
 
virtual void QueueIn (Entity *e, ServicePriority_t sp)
 
virtual void Clear ()
 initialize
 
- Public Member Functions inherited from simlib3::SimObject
bool TestAndSetFlag (bool new_value, unsigned n)
 internal method for flag manipulation is used for algebraic loop checking in continuous blocks
 
 SimObject ()
 constructor
 
virtual ~SimObject ()
 virtual destructor
 
void * operator new (size_t size)
 allocate object, set _flags
 
void operator delete (void *ptr)
 deallocate object
 
void * operator new[] (size_t size)=delete
 
void operator delete[] (void *ptr)=delete
 
bool isAllocated () const
 
virtual std::string Name () const
 get object name
 
bool HasName () const
 
void SetName (const std::string &name)
 assign the name
 
virtual void Output () const
 print object to default output
 

Protected Member Functions

virtual void QueueIn2 (Entity *e)
 

Protected Attributes

Entity * in
 Entity currently in service.
 
Queue * Q1
 Input queue.
 
Queue * Q2
 Interrupted requests queue.
 
TStat tstat
 usage statistics
 
- Protected Attributes inherited from simlib3::SimObject
unsigned _flags
 bool flags for internal use (TODO bitfield?)
 

Private Attributes

unsigned char _Qflag
 true if facility is owner of input queue
 

Additional Inherited Members

- Public Types inherited from simlib3::SimObject
enum  _Flags { _CLEAR_ALL_FLAGS = 0 , _ALLOCATED_FLAG = 1<<0 , _EVAL_FLAG = 1<<1 , _HAS_NAME_FLAG = 1<<2 }
 

Detailed Description

(SOL-like) facility Facility with exclusive access and service priority

Definition at line 753 of file simlib.h.

Constructor & Destructor Documentation

◆ Facility() [1/4]

simlib3::Facility::Facility ( )

Definition at line 38 of file facility.cc.

References _OWNQ1, _Qflag, Dprintf, in, Q1, and Q2.

◆ Facility() [2/4]

simlib3::Facility::Facility ( const char *  _name)
explicit

Definition at line 48 of file facility.cc.

References _OWNQ1, _Qflag, Dprintf, in, Q1, Q2, and simlib3::SimObject::SetName().

◆ Facility() [3/4]

simlib3::Facility::Facility ( Queue *  _queue1)
explicit

Definition at line 59 of file facility.cc.

References _Qflag, CHECKQUEUE, Dprintf, in, simlib3::SimObject::Name(), Q1, and Q2.

◆ Facility() [4/4]

simlib3::Facility::Facility ( const char *  _name,
Queue *  _queue1 
)

◆ ~Facility()

simlib3::Facility::~Facility ( )
virtual

Definition at line 83 of file facility.cc.

References Clear(), Dprintf, simlib3::SimObject::Name(), OwnQueue(), Q1, and Q2.

Member Function Documentation

◆ Busy()

bool simlib3::Facility::Busy ( ) const
inline

in service

Definition at line 770 of file simlib.h.

References in.

Referenced by Output(), and Seize().

◆ Clear()

void simlib3::Facility::Clear ( )
virtual

initialize

Definition at line 266 of file facility.cc.

References simlib3::Queue::Clear(), simlib3::TStat::Clear(), Dprintf, in, simlib3::SimObject::Name(), OwnQueue(), Q1, Q2, and tstat.

Referenced by ~Facility().

◆ In()

Entity * simlib3::Facility::In ( ) const
inline

current entity or nullptr

Definition at line 771 of file simlib.h.

References in.

◆ operator Facility *()

simlib3::Facility::operator Facility * ( )
inline

Definition at line 767 of file simlib.h.

◆ Output()

void simlib3::Facility::Output ( ) const
overridevirtual

◆ OwnQueue()

bool simlib3::Facility::OwnQueue ( ) const

test for default queue

Definition at line 282 of file facility.cc.

References _OWNQ1, and _Qflag.

Referenced by Clear(), Output(), SetQueue(), and ~Facility().

◆ QueueIn()

void simlib3::Facility::QueueIn ( Entity *  e,
ServicePriority_t  sp 
)
virtual

◆ QueueIn2()

void simlib3::Facility::QueueIn2 ( Entity *  e)
protectedvirtual

◆ QueueLen()

unsigned simlib3::Facility::QueueLen ( ) const
inline

Definition at line 772 of file simlib.h.

References Q1, and simlib3::List::size().

Referenced by SetQueue().

◆ Release()

void simlib3::Facility::Release ( Entity *  e)
virtual

◆ Seize()

void simlib3::Facility::Seize ( Entity *  e,
ServicePriority_t  sp = DEFAULT_PRIORITY 
)
virtual

◆ SetQueue()

void simlib3::Facility::SetQueue ( Queue *  queue1)

change input queue

Definition at line 95 of file facility.cc.

References _Qflag, CHECKQUEUE, OwnQueue(), Q1, QueueLen(), SetQueueError, and simlib3::SIMLIB_warning().

Member Data Documentation

◆ _Qflag

unsigned char simlib3::Facility::_Qflag
private

true if facility is owner of input queue

Definition at line 754 of file simlib.h.

Referenced by Facility(), OwnQueue(), and SetQueue().

◆ in

Entity* simlib3::Facility::in
protected

Entity currently in service.

Definition at line 756 of file simlib.h.

Referenced by Busy(), Clear(), Facility(), In(), Release(), and Seize().

◆ Q1

Queue* simlib3::Facility::Q1
protected

Input queue.

Definition at line 757 of file simlib.h.

Referenced by Clear(), Facility(), Output(), QueueIn(), QueueLen(), Release(), SetQueue(), and ~Facility().

◆ Q2

Queue* simlib3::Facility::Q2
protected

Interrupted requests queue.

Definition at line 758 of file simlib.h.

Referenced by Clear(), Facility(), Output(), QueueIn2(), Release(), and ~Facility().

◆ tstat

TStat simlib3::Facility::tstat
protected

usage statistics

Definition at line 759 of file simlib.h.

Referenced by Clear(), Output(), Release(), and Seize().


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