---
name: "corelinux_CoreLinuxGuardPool"
section: "3"
platform: "linux"
package: "libcorelinux-dev"
version: "0.4.32-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/corelinux_CoreLinuxGuardPool"
---

# corelinux\_CoreLinuxGuardPool(3)

The CoreLinuxGuardPool is a private SemaphoreGroup resource for class objects that require synchronization capability.

## NAME

corelinux::CoreLinuxGuardPool - The **CoreLinuxGuardPool** is a private **SemaphoreGroup** resource for class objects that require synchronization capability.

## SYNOPSIS

`#include <CoreLinuxGuardPool.hpp>`

### Public Member Functions

**CoreLinuxGuardPool** (Short numInit=8, Short numExt=0)  throw ( Assertion )\
 *Default constructor.*  virtual **~CoreLinuxGuardPool** (void)\
 *Virtual destructor.*

### Static Public Member Functions

bool **isLocked** (**SynchronizedPtr**)  throw ( SemaphoreException )\
 *isLocked determines if the object is currently locked.*  Short **getInitialPoolSize** (void)\
 *Return the initial guard count in the pool.*  Short **getExtentSize** (void)\
 *Return the current grow by count for the pool.*  Short **getTotalCurrentSize** (void)\
 *Return the current guard pool size.*  void **lock** (**SynchronizedPtr**)  throw ( SemaphoreException )\
 *lock is called by a guard when control is needed over a objects resource access.*  void **release** (**SynchronizedPtr**)  throw ( SemaphoreException )\
 *release is called by a guard object during its destruction.*  void **setExtentSize** (Short aExtentSize)  throw ( Assertion )\
 *Run time interface for changing the extent size.*

### Protected Member Functions

bool **isSynchronizedLocked** (**SynchronizedPtr**)  throw ( SemaphoreException )\
 *isSynchronizedLocked resolves whether* **Synchronized** *is in a locked state.*  void **lockSynchronized** (**SynchronizedPtr**)  throw ( SemaphoreException )\
 *lockSynchronized manages the associations of objects to the semaphore in the pool in establishing the guard.*  void **releaseSynchronized** (**SynchronizedPtr**)  throw ( SemaphoreException )\
 *releaseSynchronized manages the associations of objects to the semaphore in the pool when releasing a guard.*  void **createPoolGroup** (Short numSems, Short initSize=0)\
 *createPoolGroup creates a semaphore set with the requested number of semaphores in the group and will add the semaphores to theSemaphores with initial count and index set properly*  void **destroyPoolGroup** (Index aGroup)\
 *destroyPoolGroup validates that all the semaphores in the extent are not being used and then destroys the extent and all the semaphores associated with it.*

### Static Protected Attributes

**GuardPool** **theGuard**\
 **Singleton** *instance.*  Short **theInitialSize**\
 *Describes the inital pool size.*  Short **theExtentSize**\
 *Describes the size to add when going into extents.*

## Detailed Description

The **CoreLinuxGuardPool** is a private **SemaphoreGroup** resource for class objects that require synchronization capability.

**See also:**

**corelinux::Synchronized**, **corelinux::PoolDescriptor**

## Constructor & Destructor Documentation

### corelinux::CoreLinuxGuardPool::CoreLinuxGuardPool (Short numInit = 8, Short numExt = 0) throw ( Assertion )

Default constructor. **Parameters:**

*Short* number of base semaphores to use in pool \
 *Short* number of semaphores to increment by when going into extents. If 0, no extents are allowed.

**Exceptions:**

*Assertion* if Singleton\<CoreLinuxGuardPool\> already established.

## Member Function Documentation

### void corelinux::CoreLinuxGuardPool::createPoolGroup (Short numSems, Short initSize = 0)` [protected]`

createPoolGroup creates a semaphore set with the requested number of semaphores in the group and will add the semaphores to theSemaphores with initial count and index set properly **Parameters:**

*Short* the semaphore count \
 *Short* the number to insert into theSemaphores If the default is used, all go into theSemaphores

### void corelinux::CoreLinuxGuardPool::destroyPoolGroup (Index aGroup)` [protected]`

destroyPoolGroup validates that all the semaphores in the extent are not being used and then destroys the extent and all the semaphores associated with it. The method assumes that the group is the last in the vector.

**Parameters:**

*Index* the group index

### bool corelinux::CoreLinuxGuardPool::isLocked (SynchronizedPtr) throw ( SemaphoreException )` [static]`

isLocked determines if the object is currently locked. Calls singleton instance isSynchronizedLocked.

**Parameters:**

*Synchronized* pointer of guard owner.

**Returns:**

bool true if locked

### bool corelinux::CoreLinuxGuardPool::isSynchronizedLocked (SynchronizedPtr) throw ( SemaphoreException )` [protected]`

isSynchronizedLocked resolves whether **Synchronized** is in a locked state. **Parameters:**

*Synchronized* pointer of guard owner.

**Returns:**

bool true if locked

**Exceptions:**

*SemaphoreException* if not of set.

### void corelinux::CoreLinuxGuardPool::lock (SynchronizedPtr) throw ( SemaphoreException )` [static]`

lock is called by a guard when control is needed over a objects resource access. Calls singleton instance lockedSynchronized.

**Parameters:**

*Synchronized* pointer of guard owner.

**Exceptions:**

*SemaphoreException* if out of pool resources

### void corelinux::CoreLinuxGuardPool::lockSynchronized (SynchronizedPtr) throw ( SemaphoreException )` [protected]`

lockSynchronized manages the associations of objects to the semaphore in the pool in establishing the guard. **Parameters:**

*Synchronized* pointer of guard owner.

### void corelinux::CoreLinuxGuardPool::release (SynchronizedPtr) throw ( SemaphoreException )` [static]`

release is called by a guard object during its destruction. **Parameters:**

*Synchronized* pointer of guard owner.Calls singleton instance releaseSynchronized.

**Exceptions:**

*SemaphoreException* if **Synchronized** object held no resource.

### void corelinux::CoreLinuxGuardPool::releaseSynchronized (SynchronizedPtr) throw ( SemaphoreException )` [protected]`

releaseSynchronized manages the associations of objects to the semaphore in the pool when releasing a guard. **Parameters:**

*Synchronized* pointer of guard owner.

### void corelinux::CoreLinuxGuardPool::setExtentSize (Short aExtentSize) throw ( Assertion )` [static]`

Run time interface for changing the extent size. The next time the pool goes into extent processing, this will be used.

**Parameters:**

*short* the new extent size

**Exceptions:**

*Assertion* if size \< 0

## Author

Generated automatically by Doxygen for CoreLinux++ from the source code.
