|
CoreLinux++
0.4.32
|
A EventSemaphoreGroup is an extension to the SemaphoreGroup for creating only EventSemaphore types. More...
#include <EventSemaphoreGroup.hpp>
Public Member Functions | |
| EventSemaphoreGroup (Short aSemCount, Int aRightSet=OWNER_ALL) throw (Assertion,SemaphoreException) | |
| Default constructor creates a private group semaphores with access for OWNER_ALL. More... | |
| EventSemaphoreGroup (Short aSemCount, SemaphoreGroupIdentifierCref aGID, Int aRightSet, CreateDisposition disp=FAIL_IF_EXISTS) throw (Assertion,SemaphoreException) | |
| Constructor to open or create a semaphore group with a specific identifier. More... | |
| EventSemaphoreGroup (Short aSemCount, CharCptr aName, Int aRightSet, CreateDisposition disp=FAIL_IF_EXISTS) throw (Assertion,SemaphoreException) | |
| Constructor to open or create a semaphore group by name. More... | |
| virtual | ~EventSemaphoreGroup (void) |
| Virtual destructor. | |
| virtual AbstractSemaphorePtr | createSemaphore (void) throw ( SemaphoreException ) |
| Create a default EventSemaphore. More... | |
| virtual AbstractSemaphorePtr | createSemaphore (Counter aLimit) throw ( SemaphoreException ) |
| Create an EventSemaphore and set the maximum number of listeners allowed on this semaphore. More... | |
| virtual AbstractSemaphorePtr | createSemaphore (SemaphoreIdentifierRef aIdentifier, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
| Create or open (use) a specific EventSemphore. More... | |
| virtual AbstractSemaphorePtr | createSemaphore (SemaphoreIdentifierRef aIdentifier, Counter aLimit, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
| Create or open (use) a specific EventSemphore and set the maximum number of listeners to the specified count. More... | |
| virtual AbstractSemaphorePtr | createSemaphore (std::string aName, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
| Create or open (use) a specific EventSemaphore identified by its name. More... | |
| virtual AbstractSemaphorePtr | createSemaphore (std::string aName, Counter aLimit, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
| Create or open (use) a specific EventSemaphore. More... | |
| virtual void | destroySemaphore (AbstractSemaphorePtr aPtr) throw ( SemaphoreException ) |
| Destroys a previously created EventSemaphore. More... | |
Public Member Functions inherited from corelinux::SemaphoreGroup | |
| SemaphoreGroup (Short, Int Rights=OWNER_ALL) throw (Assertion,SemaphoreException) | |
| Default constructor creates a private group semaphores. More... | |
| SemaphoreGroup (Short, SemaphoreGroupIdentifierCref, Int, CreateDisposition disp=FAIL_IF_EXISTS) throw (Assertion,SemaphoreException) | |
| Constructor to open or create a semaphore group with a specific identifier. More... | |
| SemaphoreGroup (Short, CharCptr, Int, CreateDisposition disp=FAIL_IF_EXISTS) throw (Assertion,SemaphoreException) | |
| Constructor to open or create a semaphore group by name. More... | |
| virtual | ~SemaphoreGroup (void) |
| Virtual destructor. | |
| bool | operator== (SemaphoreGroupCref) const |
| Equality operator compares the identifier. More... | |
| Short | getSemaphoreCount (void) const |
| Return the number of semaphores in the group. More... | |
| SemaphoreGroupIdentifierCref | getIdentifier (void) const |
| Return the SemaphoreGroupIdentifier. More... | |
Public Member Functions inherited from corelinux::Synchronized | |
| Synchronized (void) | |
| Default constructor. | |
| Synchronized (SynchronizedCref) | |
| Copy constructor. | |
| virtual | ~Synchronized (void) |
| Virtual Destructor. | |
| SynchronizedRef | operator= (SynchronizedCref) |
| Assignment operator. | |
| bool | operator== (SynchronizedCref) const |
| Equality operator. | |
Protected Member Functions | |
| EventSemaphoreGroup (void) throw ( Assertion ) | |
| Default constructor not allowed. | |
| EventSemaphoreGroup (EventSemaphoreGroupCref) throw ( Assertion ) | |
| Copy constructor not allowed. | |
| EventSemaphoreGroupRef | operator= (EventSemaphoreGroupCref) throw ( Assertion ) |
| AbstractSemaphorePtr | resolveSemaphore (SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, Counter aMaxValue=1) throw ( SemaphoreException ) |
Protected Member Functions inherited from corelinux::SemaphoreGroup | |
| SemaphoreGroup (void) throw ( Assertion ) | |
| Default constructor not allowed. | |
| SemaphoreGroup (SemaphoreGroupCref) throw ( Assertion ) | |
| Copy constructor not allowed. | |
| SemaphoreGroupRef | operator= (SemaphoreGroupCref) throw ( Assertion ) |
| Assignment operator not allowed. | |
| void | setGroupType (IntCref) const |
| This indirects to CSA for non-private group types. More... | |
| bool | isPrivate (void) const |
| Claim an unused semaphore from the group. More... | |
Protected Member Functions inherited from corelinux::Synchronized | |
| Guard | access (void) const throw (SemaphoreException) |
| Access returns a instance of Guard which is block scoped to the caller. More... | |
Additional Inherited Members | |
Protected Types inherited from corelinux::Synchronized | |
| typedef Guard * | GuardPtr |
| typedef const Guard * | GuardCptr |
| typedef Guard & | GuardRef |
| typedef const Guard & | GuardCref |
A EventSemaphoreGroup is an extension to the SemaphoreGroup for creating only EventSemaphore types.
Default behavior for creating semaphores via the SemaphoreGroup interface is to create a Event and autolock it. There is no option for not autolocking it.
| corelinux::EventSemaphoreGroup::EventSemaphoreGroup | ( | Short | aSemCount, |
| Int | aRightSet = OWNER_ALL |
||
| ) | |||
| throw | ( | Assertion, | |
| SemaphoreException | |||
| ) | |||
Default constructor creates a private group semaphores with access for OWNER_ALL.
Maximum limit of listeners will be set to "infinity"
| aSemCount | Number of semaphores in group |
| aRightSet | access control for group |
| Assertion | if aSemCount < 1 |
| SemaphoreException | if kernel group create call fails. |
References EventSemaphoreGroup().
| corelinux::EventSemaphoreGroup::EventSemaphoreGroup | ( | Short | aSemCount, |
| SemaphoreGroupIdentifierCref | aGID, | ||
| Int | aRightSet, | ||
| CreateDisposition | disp = FAIL_IF_EXISTS |
||
| ) | |||
| throw | ( | Assertion, | |
| SemaphoreException | |||
| ) | |||
Constructor to open or create a semaphore group with a specific identifier.
Maximum limit of listeners will be set to "infinity".
| aSemCount | Number of semaphores in group, this only has meaning used if failOnExist = true |
| aGID | valid group identifier either through a system call or via another ipc mechanism |
| aRightSet | Specifies access control for group |
| dist | indicates how to treat the conditions that the group may meet in the request:
|
| Assertion | if aCount < 1 |
| SemaphoreException | for described states |
References EventSemaphoreGroup().
| corelinux::EventSemaphoreGroup::EventSemaphoreGroup | ( | Short | aSemCount, |
| CharCptr | aName, | ||
| Int | aRightSet, | ||
| CreateDisposition | disp = FAIL_IF_EXISTS |
||
| ) | |||
| throw | ( | Assertion, | |
| SemaphoreException | |||
| ) | |||
Constructor to open or create a semaphore group by name.
Maximum limit of listeners is set to "infinity"
| aSemCount | Short Number of semaphores in group, this only has meaning used if failOnExist = true |
| aName | pointer to Group name |
| aRightSet | specifies access control for group |
| disp | indicates how to treat the conditions that the group may meet in the request:
|
| Assertion | if aCount < 1 or aCount > system defined maximum for group |
| SemaphoreException | for described states |
|
virtual | ||||||||||||||
Create a default EventSemaphore.
| SemaphoreException | if no sems left in group |
Implements corelinux::SemaphoreGroup.
References corelinux::DEFAULT_COUNT(), and corelinux::FAIL_IF_EXISTS.
Referenced by createSemaphore().
|
virtual | ||||||||||||||
Create an EventSemaphore and set the maximum number of listeners allowed on this semaphore.
| aLimit | maximum number of listeners |
| SemaphoreException | if no sems left in group |
References createSemaphore(), and corelinux::FAIL_IF_EXISTS.
|
virtual | ||||||||||||||||||||||||||||
Create or open (use) a specific EventSemphore.
| aIdentifier | identifies which semphore id to create or attempt to use |
| disp | indicates how to treat the conditions that the group may meet in the request:
|
| Recursive | to allow same thread multiple locks |
| Recursive | allow lock to recurse |
| Balking | to allow the semaphore to balk |
| SemaphoreException | if the disposition disagrees with the semaphore state, or if it is a erroneous identifier |
Implements corelinux::SemaphoreGroup.
References createSemaphore(), corelinux::DEFAULT_COUNT(), corelinux::ScalarIdentifier< ScalarType >::getScalar(), and corelinux::SemaphoreGroup::getSemaphoreCount().
|
virtual | ||||||||||||||||||||||||||||||||
Create or open (use) a specific EventSemphore and set the maximum number of listeners to the specified count.
| aIdentifier | identifies which semphore id to create or attempt to use |
| aLimit | maximum number of listeners for EventSemaphore |
| disp | indicates how to treat the conditions that the group may meet in the request:
|
| Recursive | to allow same thread multiple locks |
| Balking | to allow the semaphore to balk |
| SemaphoreException | if the disposition disagrees with the semaphore state, or if it is a erroneous identifier |
References createSemaphore(), corelinux::ScalarIdentifier< ScalarType >::getScalar(), and corelinux::SemaphoreGroup::getSemaphoreCount().
|
virtual | ||||||||||||||||||||||||||||
Create or open (use) a specific EventSemaphore identified by its name.
| aName | identifies which semphore id to create or attempt to use |
| disp | indicates how to treat the conditions that the group may meet in the request:
|
| Recursive | to allow same thread multiple locks |
| Balking | to allow the semaphore to balk |
| SemaphoreException | if the disposition disagrees with the semaphore state, or if it is a erroneous identifier |
Implements corelinux::SemaphoreGroup.
References createSemaphore().
|
virtual | ||||||||||||||||||||||||||||||||
Create or open (use) a specific EventSemaphore.
| aName | identifies which semphore id to create or attempt to use |
| aLimit | maximum number of listeners for EventSemaphore |
| disp | indicates how to treat the conditions that the group may meet in the request:
|
| Recursive | to allow same thread multiple locks |
| Balking | to allow the semaphore to balk |
| SemaphoreException | if the disposition disagrees with the semaphore state, or if it is a erroneous identifier |
|
virtual | ||||||||||||||
Destroys a previously created EventSemaphore.
| aPtr | pointer of semaphore to destroy |
| SemaphoreException | if semaphore does not belong to this group or if already destroyed. |
Implements corelinux::SemaphoreGroup.
References corelinux::Synchronized::access(), corelinux::FAIL_IF_EXISTS, corelinux::FAIL_IF_NOTEXISTS, corelinux::SemaphoreGroup::getIdentifier(), corelinux::SemaphoreGroup::getSemaphoreCount(), corelinux::SemaphoreCommon::obtainSemaphore(), and corelinux::SemaphoreCommon::relinquishSemaphore().