1 #if !defined(__CORELINUXGUARDPOOL_HPP)
2 #define __CORELINUXGUARDPOOL_HPP
24 #if !defined(__COMMON_HPP)
28 #if !defined(__SINGLETON_HPP)
29 #include <Singleton.hpp>
32 #if !defined(__SEMAPHOREGROUP_HPP)
33 #include <SemaphoreGroup.hpp>
36 #if !defined(__VECTOR_HPP)
40 #if !defined(__MAP_HPP)
76 std::less<AbstractSemaphorePtr>,
84 std::less<SynchronizedPtr>,
265 GroupVector theGroups;
269 SemaphoreMap theSemaphores;
273 MonitorMap theCallers;
281 #endif // if !defined(__CORELINUXGUARDPOOL_HPP)
static Short getExtentSize(void)
Return the current grow by count for the pool.
Definition: CoreLinuxGuardPool.cpp:179
bool isSynchronizedLocked(SynchronizedPtr)
isSynchronizedLocked resolves whether Synchronized is in a locked state.
Definition: CoreLinuxGuardPool.cpp:232
static Short getTotalCurrentSize(void)
Return the current guard pool size.
Definition: CoreLinuxGuardPool.cpp:188
void releaseSynchronized(SynchronizedPtr)
releaseSynchronized manages the associations of objects to the semaphore in the pool when releasing a...
Definition: CoreLinuxGuardPool.cpp:331
Ensure a class only has one instance, and provide a global point of access to it. ...
Definition: Singleton.hpp:38
static Short getInitialPoolSize(void)
Return the initial guard count in the pool.
Definition: CoreLinuxGuardPool.cpp:170
static Short theInitialSize
Describes the inital pool size.
Definition: CoreLinuxGuardPool.hpp:255
Count theQueueLength
The number of Synchronized concurrent request.
Definition: CoreLinuxGuardPool.hpp:59
The CoreLinuxGuardPool is a private SemaphoreGroup resource for class objects that require synchroniz...
Definition: CoreLinuxGuardPool.hpp:97
A AbstractSemaphore supports the protocol that processes and/or threads agree to follow for the purpo...
Definition: AbstractSemaphore.hpp:85
void createPoolGroup(Short numSems, Short initSize=0)
createPoolGroup creates a semaphore set with the requested number of semaphores in the group and will...
Definition: CoreLinuxGuardPool.cpp:392
Index theGroupIndex
The SemaphoreGroup that this semaphore belongs to.
Definition: CoreLinuxGuardPool.hpp:63
static GuardPool theGuard
Singleton instance.
Definition: CoreLinuxGuardPool.hpp:251
static Short theExtentSize
Describes the size to add when going into extents.
Definition: CoreLinuxGuardPool.hpp:259
SemaphoreException is the base exception type for Semaphore.
Definition: SemaphoreException.hpp:39
virtual ~CoreLinuxGuardPool(void)
Virtual destructor.
Definition: CoreLinuxGuardPool.cpp:104
void lockSynchronized(SynchronizedPtr)
lockSynchronized manages the associations of objects to the semaphore in the pool in establishing the...
Definition: CoreLinuxGuardPool.cpp:245
Assertion is-a Exception created when an assertion fails.
Definition: Assertion.hpp:423
void destroyPoolGroup(Index aGroup)
destroyPoolGroup validates that all the semaphores in the extent are not being used and then destroys...
Definition: CoreLinuxGuardPool.cpp:417
Synchronized is a mixin which allows class objects to enable monitor functionality.
Definition: Synchronized.hpp:41
static void setExtentSize(Short aExtentSize)
Run time interface for changing the extent size.
static void release(SynchronizedPtr)
release is called by a guard object during its destruction.
Definition: CoreLinuxGuardPool.cpp:214
PoolDescriptor stores information about the ownership and usage of a semaphore in the pool...
Definition: CoreLinuxGuardPool.hpp:55
static bool isLocked(SynchronizedPtr)
isLocked determines if the object is currently locked.
Definition: CoreLinuxGuardPool.cpp:149
A SemaphoreGroup is an extension to the Linux semaphore set.
Definition: SemaphoreGroup.hpp:62
static void lock(SynchronizedPtr)
lock is called by a guard when control is needed over a objects resource access.
Definition: CoreLinuxGuardPool.cpp:197