#include <CoreLinuxGuardGroup.hpp>
Public Member Functions | |
CoreLinuxGuardGroup (Short) throw (Assertion,SemaphoreException) | |
Default constructor creates a private group semaphores with access for OWNER_ALL. | |
virtual | ~CoreLinuxGuardGroup (void) |
Virtual destructor. | |
virtual AbstractSemaphorePtr | createSemaphore (void) throw ( SemaphoreException ) |
Create a default GuardSemaphore. | |
virtual AbstractSemaphorePtr | createSemaphore (SemaphoreIdentifierRef aIdentifier, CreateDisposition disp=CREATE_OR_REUSE, bool Recursive=false, bool Balking=false) throw ( SemaphoreException ) |
Create or open (use) a specific GuardSemaphore. | |
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 GuardSemaphore. | |
virtual void | destroySemaphore (AbstractSemaphorePtr) throw ( SemaphoreException ) |
Destroys a created GuardSemaphore. | |
Protected Member Functions | |
CoreLinuxGuardGroup (void) throw ( Assertion ) | |
Default constructor not allowed. | |
CoreLinuxGuardGroup (CoreLinuxGuardGroupCref) throw ( Assertion ) | |
Copy constructor not allowed. | |
CoreLinuxGuardGroupRef | operator= (CoreLinuxGuardGroupCref) throw ( Assertion ) |
Assignment operator not allowed. |
corelinux::CoreLinuxGuardGroup::CoreLinuxGuardGroup | ( | Short | aSemCount | ) | throw (Assertion,SemaphoreException) |
Default constructor creates a private group semaphores with access for OWNER_ALL.
Short | Number of semaphores in group |
Assertion | if aCount < 1 | |
SemaphoreException | if kernel group create call fails. |
AbstractSemaphorePtr corelinux::CoreLinuxGuardGroup::createSemaphore | ( | void | ) | throw ( SemaphoreException ) [virtual] |
Create a default GuardSemaphore.
SemaphoreException | if no sems left in group |
Implements corelinux::SemaphoreGroup.
References corelinux::SemaphoreGroup::getSemaphoreCount().
Referenced by corelinux::CoreLinuxGuardPool::createPoolGroup().
AbstractSemaphorePtr corelinux::CoreLinuxGuardGroup::createSemaphore | ( | SemaphoreIdentifierRef | aIdentifier, | |
CreateDisposition | disp = CREATE_OR_REUSE , |
|||
bool | Recursive = false , |
|||
bool | Balking = false | |||
) | throw ( SemaphoreException ) [virtual] |
Create or open (use) a specific GuardSemaphore.
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::FAIL_IF_EXISTS, corelinux::FAIL_IF_NOTEXISTS, corelinux::ScalarIdentifier< ScalarType >::getScalar(), and corelinux::SemaphoreGroup::getSemaphoreCount().
AbstractSemaphorePtr corelinux::CoreLinuxGuardGroup::createSemaphore | ( | std::string | aName, | |
CreateDisposition | disp = CREATE_OR_REUSE , |
|||
bool | Recursive = false , |
|||
bool | Balking = false | |||
) | throw ( SemaphoreException ) [virtual] |
Create or open (use) a specific GuardSemaphore.
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::CoreLinuxGuardGroup::destroySemaphore | ( | AbstractSemaphorePtr | aPtr | ) | throw ( SemaphoreException ) [virtual] |
Destroys a created GuardSemaphore.
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().