corelinux::GuardSemaphore Class Reference

GuardSemaphore is a special case semaphore for use by the CoreLinuxGuardPool. More...

`#include <GuardSemaphore.hpp>`

## Public Member Functions

| GuardSemaphore (SemaphoreGroupPtr, SemaphoreIdentifierRef) throw (Assertion)
| Default constructor requires the identifier of the semaphore in the semaphore group. More...
virtual | ~GuardSemaphore (void)
| Virtual Destructor.
virtual SemaphoreOperationStatus | lockWithWait (void) throw (SemaphoreException)
| Request the lock, wait for availability.
virtual SemaphoreOperationStatus | lockWithNoWait (void) throw (SemaphoreException)
| Request the lock without waiting.
virtual bool | isLocked (void)
| Ask if AbstractSemaphore instance is locked.
virtual SemaphoreOperationStatus | release (void) throw (SemaphoreException)
| Request the AbstractSemaphore but timeout if not available. More...
Public Member Functions inherited from corelinux::Semaphore
| Semaphore (SemaphoreGroupPtr, SemaphoreIdentifierRef, bool Recursive=false, bool Balking=false) throw ( NullPointerException )
| Default constructor requires the identifier of the semaphore in the semaphore group. More...
virtual | ~Semaphore (void)
| Virtual Destructor.
bool | operator== (SemaphoreCref aRef) const
| Equality operator returns true if identifiers match.
virtual bool | isBalkingEnabled (void) const
| Returns true if balking enabled.
virtual bool | isRecursionEnabled (void) const
| Returns true if recursion allowed.
virtual ThreadIdentifierCref | getOwningThreadIdentifier (void) const
| Returns the identifier of who currently owns the semaphore.
virtual CounterCref | getRecursionQueueLength (void) const
| Return the depth of the recursion for the owner.
Public Member Functions inherited from corelinux::AbstractSemaphore
| AbstractSemaphore (SemaphoreGroupPtr, SemaphoreIdentifierRef) throw ( NullPointerException )
| Default constructor.
virtual | ~AbstractSemaphore (void)
| Virtual Destructor.
bool | operator== (AbstractSemaphoreCref aRef) const
| Equality operator returns true if identifiers match.
SemaphoreIdentifierCref | getIdentifier (void) const
| Return a reference to this AbstractSemaphore identifier.
SemaphoreGroupIdentifierCref | getGroupIdentifier (void) const
| Returns a reference to the SemaphoreGroup identifier.
Int | getValue (void)
| Returns the current value of the semaphore.
Int | getInitialValue (void)
| Retrieves the initial value for a semaphore.
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

| GuardSemaphore (void) throw (Assertion)
| Default constructor throws assertion.
| GuardSemaphore (GuardSemaphoreCref) throw (Assertion)
| Copy constructor throws assertion.
GuardSemaphoreRef | operator= (GuardSemaphoreCref) throw (Assertion)
| Assignment operator throws assertion.
Protected Member Functions inherited from corelinux::Semaphore
| Semaphore (void) throw (Assertion)
| Default constructor throws assertion.
| Semaphore (SemaphoreCref) throw (Assertion)
| Copy constructor throws assertion.
SemaphoreRef | operator= (SemaphoreCref) throw (Assertion)
| Assignment operator throws assertion.
CounterCref | operator++ (void)
| Operator for increasing theRecursionQueueLength.
CounterCref | operator-- (void)
| Operator for decreasing theRecursionQueueLength.
virtual ThreadIdentifierRef | getOwnerId (void)
| Returns a reference to the owning thread.
virtual void | setOwnerId (void)
| Sets the owner id to the current thread.
virtual void | setRecursionQueueLength (Counter)
| Sets the recursion length.
virtual void | resetOwnerId (void)
| Sets the owner thread id to not owned.
Protected Member Functions inherited from corelinux::AbstractSemaphore
| AbstractSemaphore (AbstractSemaphoreCref) throw (Assertion)
AbstractSemaphoreRef | operator= (AbstractSemaphoreCref) throw (Assertion)
SemaphoreIdentifierRef | getId (void)
| Returns a reference to the AbstractSemaphore identifier.
Int | getGroupId (void) const
| Returns a reference to the group identifier.
SemaphoreOperationStatus | setLock (Int)
| Calls kernel lock mechanism.
SemaphoreOperationStatus | setUnlock (Int)
| Calls kernel unlock mechanism.
SemaphoreOperationStatus | waitZero (Int)
| Calls kernel zero mechanism.
SemaphoreOperationStatus | setValue (Int)
| Sets the value for the AbstractSemaphore.
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

## Detailed Description

GuardSemaphore is a special case semaphore for use by the CoreLinuxGuardPool.

It has the basic behavior of a MutexSemaphore without the recursion and balking capability. Its sole use is for Synchronized object monitor control.

See also
  corelinux::CoreLinuxGuardPool
  corelinux::Semaphore

## Constructor & Destructor Documentation

corelinux::GuardSemaphore::GuardSemaphore | ( | SemaphoreGroupPtr | aGroup,
|  | SemaphoreIdentifierRef | aIdentifier
| ) |  |
throw | ( | Assertion
| ) |  |

Default constructor requires the identifier of the semaphore in the semaphore group.

Parameters

  SemaphoreGroup | The owning SemaphoreGroup
  SemaphoreIdentifier | The identifier from the Semaphore Group

References corelinux::AbstractSemaphore::setValue().

## Member Function Documentation

SemaphoreOperationStatus corelinux::GuardSemaphore::release | ( | void |  | ) |
throw | ( | SemaphoreException
| ) |  |

virtual

Request the AbstractSemaphore but timeout if not available.

Release the lock

Implements corelinux::AbstractSemaphore.

References corelinux::AbstractSemaphore::setUnlock(), and corelinux::SUCCESS.

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

- GuardSemaphore.hpp
- GuardSemaphore.cpp

This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium