#include <GatewaySemaphoreGroup.hpp>

Public Member Functions | |
| GatewaySemaphoreGroup (Short, Int Rights=OWNER_ALL) throw (Assertion,SemaphoreException) | |
| Default constructor creates a private group semaphores with access for OWNER_ALL. | |
| GatewaySemaphoreGroup (Short, SemaphoreGroupIdentifierCref, Int, CreateDisposition disp=FAIL_IF_EXISTS) throw (Assertion,SemaphoreException) | |
| Constructor to open or create a semaphore group with a specific identifier. | |
| GatewaySemaphoreGroup (Short, CharCptr aName, Int, CreateDisposition disp=FAIL_IF_EXISTS) throw (Assertion,SemaphoreException) | |
| Constructor to open or create a semaphore group by name. | |
| virtual | ~GatewaySemaphoreGroup (void) |
| Virtual destructor. | |
| virtual AbstractSemaphorePtr | createSemaphore (void) throw ( SemaphoreException ) |
| Create a default GatewaySemaphore. | |
| virtual AbstractSemaphorePtr | createCountSemaphore (Count aCount) throw ( SemaphoreException ) |
| Create a count GatewaySemaphore. | |
| virtual AbstractSemaphorePtr | createSemaphore (SemaphoreIdentifierRef aIdentifier, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
| Create or open (use) a specific GatewaySemphore. | |
| virtual AbstractSemaphorePtr | createCountSemaphore (SemaphoreIdentifierRef aIdentifier, Count aCount, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
| Create or open (use) a specific GatewaySemphore and have it automatically initialized to the specified count. | |
| 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 GatewaySemphore. | |
| virtual void | destroySemaphore (AbstractSemaphorePtr) throw ( SemaphoreException ) |
| Destroys a created GatewaySemaphore. | |
Protected Member Functions | |
| GatewaySemaphoreGroup (void) throw ( Assertion ) | |
| Default constructor not allowed. | |
| GatewaySemaphoreGroup (GatewaySemaphoreGroupCref) throw ( Assertion ) | |
| Copy constructor not allowed. | |
| GatewaySemaphoreGroupRef | operator= (GatewaySemaphoreGroupCref) throw ( Assertion ) |
| Assignment operator not allowed. | |
| AbstractSemaphorePtr | resolveSemaphore (SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, Count aMaxValue=1) throw ( SemaphoreException ) |
| Protected method for resolving mutex between CSA and local. | |
Default behavior for creating semaphores via the SemaphoreGroup interface is to create a Gateway and initialize it to a count of two (2) Use the createCountSemaphore(...) interface to accomplish initializing the GatewaySemaphore to a count > 2.
| corelinux::GatewaySemaphoreGroup::GatewaySemaphoreGroup | ( | Short | aSemCount, | |
| Int | Rights = OWNER_ALL | |||
| ) | throw (Assertion,SemaphoreException) |
Default constructor creates a private group semaphores with access for OWNER_ALL.
| Short | Number of semaphores in group | |
| AccessRights | Specifies access control for group |
| Assertion | if aCount < 1 | |
| SemaphoreException | if kernel group create call fails. |
| corelinux::GatewaySemaphoreGroup::GatewaySemaphoreGroup | ( | 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.
| Short | Number of semaphores in group, this only has meaning used if failOnExist = true | |
| SemaphoreGroupIdentifier | valid group identifier either through a system call or via another ipc mechanism | |
| AccessRights | Specifies access control for group | |
| CreateDisposition | indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open |
| Assertion | if aCount < 1 | |
| SemaphoreException | for described states |
| corelinux::GatewaySemaphoreGroup::GatewaySemaphoreGroup | ( | Short | aSemCount, | |
| CharCptr | aName, | |||
| Int | aRightSet, | |||
| CreateDisposition | disp = FAIL_IF_EXISTS | |||
| ) | throw (Assertion,SemaphoreException) |
Constructor to open or create a semaphore group by name.
| Short | Number of semaphores in group, this only has meaning used if failOnExist = true | |
| Char | pointer to Group name | |
| AccessRights | Specifies access control for group | |
| CreateDisposition | indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open |
| Assertion | if aCount < 1 or aCount > system defined maximum for group | |
| SemaphoreException | for described states |
| AbstractSemaphorePtr corelinux::GatewaySemaphoreGroup::createSemaphore | ( | void | ) | throw ( SemaphoreException ) [virtual] |
Create a default GatewaySemaphore.
| SemaphoreException | if no sems left in group |
Implements corelinux::SemaphoreGroup.
References corelinux::DEFAULT_COUNT(), corelinux::FAIL_IF_EXISTS, and resolveSemaphore().
| AbstractSemaphorePtr corelinux::GatewaySemaphoreGroup::createCountSemaphore | ( | Count | aCount | ) | throw ( SemaphoreException ) [virtual] |
Create a count GatewaySemaphore.
| Count | initializing count for GatewaySemaphore |
| SemaphoreException | if no sems left in group |
References corelinux::DEFAULT_COUNT(), corelinux::FAIL_IF_EXISTS, and resolveSemaphore().
| AbstractSemaphorePtr corelinux::GatewaySemaphoreGroup::createSemaphore | ( | SemaphoreIdentifierRef | aIdentifier, | |
| CreateDisposition | disp = CREATE_OR_REUSE, |
|||
| bool | Recursive = false, |
|||
| bool | Balking = false | |||
| ) | throw ( SemaphoreException ) [virtual] |
Create or open (use) a specific GatewaySemphore.
| SemaphoreIdentifier | identifies which semphore id to create or attempt to use | |
| CreateDisposition | indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open | |
| 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 corelinux::DEFAULT_COUNT(), corelinux::ScalarIdentifier< ScalarType >::getScalar(), corelinux::SemaphoreGroup::getSemaphoreCount(), and resolveSemaphore().
| AbstractSemaphorePtr corelinux::GatewaySemaphoreGroup::createCountSemaphore | ( | SemaphoreIdentifierRef | aIdentifier, | |
| Count | aCount, | |||
| CreateDisposition | disp = CREATE_OR_REUSE, |
|||
| bool | Recursive = false, |
|||
| bool | Balking = false | |||
| ) | throw ( SemaphoreException ) [virtual] |
Create or open (use) a specific GatewaySemphore and have it automatically initialized to the specified count.
| SemaphoreIdentifier | identifies which semphore id to create or attempt to use | |
| Count | initializing count for GatewaySemaphore | |
| CreateDisposition | indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open | |
| 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 corelinux::DEFAULT_COUNT(), corelinux::ScalarIdentifier< ScalarType >::getScalar(), corelinux::SemaphoreGroup::getSemaphoreCount(), and resolveSemaphore().
| AbstractSemaphorePtr corelinux::GatewaySemaphoreGroup::createSemaphore | ( | std::string | aName, | |
| CreateDisposition | disp = CREATE_OR_REUSE, |
|||
| bool | Recursive = false, |
|||
| bool | Balking = false | |||
| ) | throw ( SemaphoreException ) [virtual] |
Create or open (use) a specific GatewaySemphore.
| string | identifies which semphore id to create or attempt to use | |
| CreateDisposition | indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open | |
| 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.
| void corelinux::GatewaySemaphoreGroup::destroySemaphore | ( | AbstractSemaphorePtr | aPtr | ) | throw ( SemaphoreException ) [virtual] |
Destroys a created GatewaySemaphore.
| AbstractSemaphore | pointer of semaphore to destroy |
| SemaphoreException | if semaphore does not belong to this group or if already destroyed. |
Implements corelinux::SemaphoreGroup.
References corelinux::SemaphoreGroup::getIdentifier(), and corelinux::SemaphoreCommon::relinquishSemaphore().