|
ACS::ThreadManagerBase − Manages a pool of ACS Base threads. |
|
#include <acsThreadBase.h> Inherited by ACS::ThreadManager. |
|
Public Member Functions |
|
ThreadManagerBase () |
|
~ThreadManagerBase () |
|
int getThreadCount () const |
|
ACE_CString getThreadName (const int pos) const |
|
ThreadBase * getThreadAt (const int pos) const |
|
ThreadBase * getThreadByName (const ACE_CString &name) |
|
ThreadBase * getThreadByID (ACE_thread_t id) |
|
ThreadBase * create (const ACE_CString &name, void *threadProc, void *parameter, const TimeInterval &responseTime=ThreadBase::defaultResponseTime, const TimeInterval &sleepTime=ThreadBase::defaultSleepTime, const long _thrFlags=THR_NEW_LWP|THR_DETACHED, const size_t _stackSize=ACE_DEFAULT_THREAD_STACKSIZE) |
|
bool add (const ACE_CString &name, ThreadBase *acsBaseThread) |
|
bool stop (const ACE_CString &name) |
|
bool stopAll () |
|
void exit (const ACE_CString &name) |
|
void exitAll () |
|
bool cancel (const ACE_CString &name) |
|
bool cancelAll () |
|
bool terminate (const ACE_CString &name) |
|
bool terminateAll () |
|
bool restart (const ACE_CString &name) |
|
bool restartAll () |
|
bool restartDead () |
|
bool suspend (const ACE_CString &name) |
|
bool suspendAll () |
|
bool resume (const ACE_CString &name) |
|
bool resumeAll () |
|
bool isAlive (const ACE_CString &name) |
|
bool areAllAlive () |
|
int join (const ACE_thread_t &tid) |
|
int join (const ThreadBase *th) |
|
ACE_Thread_Manager * getACEThreadManager () |
|
Protected Member Functions |
|
void add2map (const ACE_CString &name, ThreadBase *thread) |
|
void removeFromMap (const ACE_CString &name) |
|
Protected Attributes |
|
ACE_Recursive_Thread_Mutex m_addRemoveMutex |
|
mutex used by add and remove method |
|
Private Member Functions |
|
void operator= (const ThreadManagerBase &) |
|
ThreadManagerBase (const ThreadManagerBase &) |
|
Private Attributes |
|
ACE_Thread_Manager * threadManager_mp |
|
pointer to ACE_Threads_Manager |
|
ThreadMap threadMap_m |
|
Thread name-thread map data store. |
|
std::vector< ThreadBase * > threads_m |
|
Vector of all threads. |
|
Manages a pool of ACS Base threads. Todo |
|
GCH Why a forward declaration for the Thread class here? Thread Base should be sufficient !!!!! Try to remove it and see what happens. |
|
ACS::ThreadManagerBase::ThreadManagerBase () [inline] Todo |
|
GCH Why a friend declaration for the Thread class here? Thread Base should be sufficient !!!!! Try to remove it and see what happens. |
|
Constructor. References threadManager_mp. |
|
ACS::ThreadManagerBase::~ThreadManagerBase () Destructor. Also terminates and deletes all threads. |
|
ACS::ThreadManagerBase::ThreadManagerBase (const ThreadManagerBase &) [private] ALMA C++ coding standards state copy constructors should be disabled. |
|
bool ACS::ThreadManagerBase::add (const ACE_CString & name, ThreadBase * acsBaseThread) Add a thread to the ThreadBaseManger thread pool. WARNING: after this operation ThreadManagerBase owns the pointer of ThreadBase. ThreadBase object is deleted on destruction of ThreadManagerBase object. Therefore the given ThreadBase must have been allocated on the heap |
|
Parameters: |
|
name name of the thread |
|
void ACS::ThreadManagerBase::add2map (const ACE_CString & name, ThreadBase * thread) [inline, protected] Add a thread to the ThreadManagerBase data store. |
|
Parameters: |
|
name name of the thread |
|
References threadMap_m, and threads_m. |
|
bool ACS::ThreadManagerBase::areAllAlive () Checks if all threads are alive (not terminated). |
|
Parameters: |
|
name name of the thread |
|
Returns: |
|
true if all threads are alive |
|
See also: |
|
ThreadManagerBase::isAlive |
|
bool ACS::ThreadManagerBase::cancel (const ACE_CString & name) Cancel (forceful termination) named thread. Avoid using this kind of thread termination. |
|
Parameters: |
|
name name of the thread |
|
See also: |
|
ThreadBase::cancel ThreadManagerBase::terminate |
|
bool ACS::ThreadManagerBase::cancelAll () Cancel (forceful termination) all threads. |
|
See also: |
|
ThreadManagerBase::cancel |
|
ThreadBase* ACS::ThreadManagerBase::create (const ACE_CString & name, void * threadProc, void * parameter, const TimeInterval & responseTime = ThreadBase::defaultResponseTime, const TimeInterval & sleepTime = ThreadBase::defaultSleepTime, const long _thrFlags = THR_NEW_LWP|THR_DETACHED, const size_t _stackSize = ACE_DEFAULT_THREAD_STACKSIZE) Create a new thread and add it to the pool. The thread is immediately created (create=true) and suspended |
|
Parameters: |
|
name of the thread |
|
Returns: |
|
pointer to ThreadBase object, NULL otherwise |
|
See also: |
|
ThreadBase |
|
void ACS::ThreadManagerBase::exit (const ACE_CString & name) Notify named thread to exit thread worker function. |
|
Parameters: |
|
name name of the thread |
|
See also: |
|
ThreadBase::exit |
|
void ACS::ThreadManagerBase::exitAll () Notify all the threads to exit thread worker function. |
|
See also: |
|
ThreadManagerBase::exit |
|
ACE_Thread_Manager* ACS::ThreadManagerBase::getACEThreadManager () [inline] Returns pointer to the ACE Thread Manager |
|
Returns: |
|
pointer to ACE_Thread_Manager object |
|
References threadManager_mp. |
|
ThreadBase* ACS::ThreadManagerBase::getThreadAt (const int pos) const [inline] Get thread at the specified position. |
|
Parameters: |
|
pos position of the thread |
|
Returns: |
|
pointer to ThreadBase object |
|
References threads_m. |
|
ThreadBase* ACS::ThreadManagerBase::getThreadByID (ACE_thread_t id) [inline] Get thread with specified ID. |
|
Parameters: |
|
id ID of the thread |
|
Returns: |
|
pointer to ThreadBase object, NULL otherwise |
|
References threads_m. |
|
ThreadBase* ACS::ThreadManagerBase::getThreadByName (const ACE_CString & name) [inline] Get thread with specified named. |
|
Parameters: |
|
name name of the thread |
|
Returns: |
|
pointer to ThreadBase object, NULL otherwise |
|
References m_addRemoveMutex, and threadMap_m. |
|
int ACS::ThreadManagerBase::getThreadCount () const [inline] Get number of threads in the pool. |
|
Returns: |
|
number of threads in the pool |
|
References threads_m. |
|
ACE_CString ACS::ThreadManagerBase::getThreadName (const int pos) const [inline] Get name of the thread at the specified position. |
|
Parameters: |
|
pos position of the thread |
|
Returns: |
|
name of the thread |
|
References threads_m. |
|
bool ACS::ThreadManagerBase::isAlive (const ACE_CString & name) Checks if named thread is alive (not terminated). |
|
Parameters: |
|
name name of the thread |
|
Returns: |
|
true if named thread is alive |
|
See also: |
|
ThreadBase::isAlive |
|
int ACS::ThreadManagerBase::join (const ACE_thread_t & tid) join joinable thread |
|
Parameters: |
|
tid thread id |
|
Returns: |
|
-1 if fail |
|
int ACS::ThreadManagerBase::join (const ThreadBase * th) join joinable thread |
|
Parameters: |
|
pointer to thread |
|
Returns: |
|
-1 if fail |
|
void ACS::ThreadManagerBase::operator= (const ThreadManagerBase &) [private] ALMA C++ coding standards state assignment operators should be disabled. |
|
void ACS::ThreadManagerBase::removeFromMap (const ACE_CString & name) [inline, protected] |
|
References m_addRemoveMutex, threadMap_m, and threads_m. |
|
bool ACS::ThreadManagerBase::restart (const ACE_CString & name) Restart named thread. Restarting means treminate and recreate a new thread. |
|
Parameters: |
|
name name of the thread |
|
See also: |
|
ThreadBase::restart |
|
bool ACS::ThreadManagerBase::restartAll () Restart all threads. |
|
See also: |
|
ThreadManagerBase::restart |
|
bool ACS::ThreadManagerBase::restartDead () Restart all dead threads, i.e. all terminated threads |
|
See also: |
|
ThreadManagerBase::restart ThreadManagerBase::isAlive |
|
bool ACS::ThreadManagerBase::resume (const ACE_CString & name) Continue the execution of a previously suspended thread. |
|
Parameters: |
|
name name of the thread |
|
See also: |
|
ThreadBase::resume |
|
bool ACS::ThreadManagerBase::resumeAll () Continue the execution of all suspended threads. |
|
See also: |
|
ThreadManagerBase::resume |
|
bool ACS::ThreadManagerBase::stop (const ACE_CString & name) Stop named thread. |
|
Parameters: |
|
name name of the thread |
|
Returns: |
|
true if thread has been stopped |
|
See also: |
|
ThreadBase::stop |
|
bool ACS::ThreadManagerBase::stopAll () Stop all the threads_m. |
|
Returns: |
|
true if thread has been stopped |
|
See also: |
|
ThreadManagerBase::stop |
|
bool ACS::ThreadManagerBase::suspend (const ACE_CString & name) Suspend the execution of a particular thread. |
|
Parameters: |
|
name name of the thread |
|
See also: |
|
ThreadBase::suspend |
|
bool ACS::ThreadManagerBase::suspendAll () Suspend the execution of all running threads. |
|
See also: |
|
ThreadManagerBase::suspend |
|
bool ACS::ThreadManagerBase::terminate (const ACE_CString & name) Terminate named thread. |
|
Parameters: |
|
name name of the thread |
|
See also: |
|
ThreadBase::terminate |
|
bool ACS::ThreadManagerBase::terminateAll () Terminate all threads. |
|
See also: |
|
ThreadManagerBase::terminate |
|
ACE_Recursive_Thread_Mutex ACS::ThreadManagerBase::m_addRemoveMutex [protected] |
|
mutex used by add and remove method Referenced by getThreadByName(), and removeFromMap(). |
|
ACE_Thread_Manager* ACS::ThreadManagerBase::threadManager_mp [private] |
|
pointer to ACE_Threads_Manager Referenced by getACEThreadManager(), and ThreadManagerBase(). |
|
ThreadMap ACS::ThreadManagerBase::threadMap_m [private] |
|
Thread name-thread map data store. Referenced by add2map(), getThreadByName(), and removeFromMap(). |
|
std::vector<ThreadBase*> ACS::ThreadManagerBase::threads_m [private] |
|
Vector of all threads. Referenced by add2map(), getThreadAt(), getThreadByID(), getThreadCount(), getThreadName(), and removeFromMap(). |
|
Generated automatically by Doxygen for ACS-2015.2 C++ API from the source code. |