#include <EventSemaphoreGroup.hpp>
Inheritance diagram for corelinux::EventSemaphoreGroup:
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. | |
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. | |
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. | |
virtual | ~EventSemaphoreGroup (void) |
Virtual destructor. | |
virtual AbstractSemaphorePtr | createSemaphore (void) throw ( SemaphoreException ) |
Create a default EventSemaphore. | |
virtual AbstractSemaphorePtr | createSemaphore (Counter aLimit) throw ( SemaphoreException ) |
Create an EventSemaphore and set the maximum number of listeners allowed on this semaphore. | |
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. | |
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. | |
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. | |
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. | |
virtual void | destroySemaphore (AbstractSemaphorePtr aPtr) throw ( SemaphoreException ) |
Destroys a previously created EventSemaphore. | |
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 ) |
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. |
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 |
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 |
AbstractSemaphorePtr corelinux::EventSemaphoreGroup::createSemaphore | ( | void | ) | throw ( SemaphoreException ) [virtual] |
Create a default EventSemaphore.
SemaphoreException | if no sems left in group |
Implements corelinux::SemaphoreGroup.
AbstractSemaphorePtr corelinux::EventSemaphoreGroup::createSemaphore | ( | Counter | aLimit | ) | throw ( SemaphoreException ) [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 |
AbstractSemaphorePtr corelinux::EventSemaphoreGroup::createSemaphore | ( | SemaphoreIdentifierRef | aIdentifier, | |
CreateDisposition | disp = CREATE_OR_REUSE , |
|||
bool | Recursive = false , |
|||
bool | Balking = false | |||
) | throw ( SemaphoreException ) [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.
AbstractSemaphorePtr corelinux::EventSemaphoreGroup::createSemaphore | ( | SemaphoreIdentifierRef | aIdentifier, | |
Counter | aLimit, | |||
CreateDisposition | disp = CREATE_OR_REUSE , |
|||
bool | Recursive = false , |
|||
bool | Balking = false | |||
) | throw ( SemaphoreException ) [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 |
AbstractSemaphorePtr corelinux::EventSemaphoreGroup::createSemaphore | ( | std::string | aName, | |
CreateDisposition | disp = CREATE_OR_REUSE , |
|||
bool | Recursive = false , |
|||
bool | Balking = false | |||
) | throw ( SemaphoreException ) [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.
AbstractSemaphorePtr corelinux::EventSemaphoreGroup::createSemaphore | ( | std::string | aName, | |
Counter | aLimit, | |||
CreateDisposition | disp = CREATE_OR_REUSE , |
|||
bool | Recursive = false , |
|||
bool | Balking = false | |||
) | throw ( SemaphoreException ) [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 |
void corelinux::EventSemaphoreGroup::destroySemaphore | ( | AbstractSemaphorePtr | aPtr | ) | throw ( SemaphoreException ) [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.