SIMLIB/C++  3.07
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 More...
 
 operator Facility * ()
 
void SetQueue (Queue *queue1)
 change input queue More...
 
bool OwnQueue () const
 test for default queue More...
 
bool Busy () const
 in service More...
 
EntityIn () const
 current entity or nullptr More...
 
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 More...
 
- 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 More...
 
 SimObject ()
 constructor More...
 
virtual ~SimObject ()
 virtual destructor More...
 
void * operator new (size_t size)
 allocate object, set _flags More...
 
void operator delete (void *ptr)
 deallocate object More...
 
void * operator new[] (size_t size)=delete
 
void operator delete[] (void *ptr)=delete
 
bool isAllocated () const
 
virtual std::string Name () const
 get object name More...
 
bool HasName () const
 
void SetName (const std::string &name)
 assign the name More...
 

Protected Member Functions

virtual void QueueIn2 (Entity *e)
 

Protected Attributes

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

Private Attributes

unsigned char _Qflag
 true if facility is owner of input queue More...
 

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.

Referenced by Output(), and Seize().

◆ Clear()

void simlib3::Facility::Clear ( )
virtual

initialize

Definition at line 266 of file facility.cc.

References simlib3::TStat::Clear(), simlib3::Queue::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.

◆ 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(), simlib3::Store::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 simlib3::SQS::Clear(), simlib3::DEFAULT_PRIORITY, 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 _OWNQ1, _Qflag, CHECKQUEUE, OwnQueue(), Q1, QueueLen(), simlib3::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 Clear(), Facility(), 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(), 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(), simlib3::Store::Output(), Release(), and Seize().


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