OW_NAMESPACE::PollingManagerThread Class Reference

#include <OW_PollingManager.hpp>

Inheritance diagram for OW_NAMESPACE::PollingManagerThread:

Inheritance graph
[legend]
Collaboration diagram for OW_NAMESPACE::PollingManagerThread:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PollingManagerThread (const ProviderManagerRef &providerManager)
virtual ~PollingManagerThread ()
void init (const ServiceEnvironmentIFCRef &env)
void shutdown ()
void waitUntilReady ()
void addPolledProvider (const PolledProviderIFCRef &p)

Protected Member Functions

virtual Int32 run ()
 The method that will be run when the start method is called.

Private Types

typedef IntrusiveReference<
TriggerRunner
TriggerRunnerRef

Private Member Functions

UInt32 calcSleepTime (bool &rightNow, bool doInit)
void processTriggers ()
virtual void doCooperativeCancel ()
 This function is available for subclasses of Thread to override if they wish to be notified when a cooperative cancel is being invoked on the instance.

Private Attributes

Array< TriggerRunnerRefm_triggerRunners
bool m_shuttingDown
NonRecursiveMutex m_triggerGuard
Condition m_triggerCondition
ServiceEnvironmentIFCRef m_env
ProviderManagerRef m_providerManager
LoggerRef m_logger
ThreadBarrier m_startedBarrier
ThreadPoolRef m_triggerRunnerThreadPool

Friends

class TriggerRunner

Classes

class  TriggerRunner

Detailed Description

Definition at line 75 of file OW_PollingManager.hpp.


Member Typedef Documentation

typedef IntrusiveReference<TriggerRunner> OW_NAMESPACE::PollingManagerThread::TriggerRunnerRef [private]
 

Definition at line 107 of file OW_PollingManager.hpp.


Constructor & Destructor Documentation

OW_NAMESPACE::PollingManagerThread::PollingManagerThread const ProviderManagerRef providerManager  ) 
 

Definition at line 125 of file OW_PollingManager.cpp.

OW_NAMESPACE::PollingManagerThread::~PollingManagerThread  )  [virtual]
 

Definition at line 133 of file OW_PollingManager.cpp.


Member Function Documentation

void OW_NAMESPACE::PollingManagerThread::addPolledProvider const PolledProviderIFCRef p  ) 
 

Definition at line 390 of file OW_PollingManager.cpp.

References OW_NAMESPACE::Array< T >::append(), OW_NAMESPACE::createProvEnvRef(), OW_NAMESPACE::DateTime::get(), m_env, m_logger, m_shuttingDown, m_triggerCondition, m_triggerGuard, m_triggerRunners, OW_NAMESPACE::Condition::notifyAll(), OW_LOG_DEBUG, safe_add(), OW_NAMESPACE::DateTime::setToCurrent(), and TriggerRunner.

UInt32 OW_NAMESPACE::PollingManagerThread::calcSleepTime bool &  rightNow,
bool  doInit
[private]
 

Definition at line 298 of file OW_PollingManager.cpp.

References OW_NAMESPACE::DateTime::get(), i, OW_NAMESPACE::Thread::m_isRunning, m_triggerRunners, safe_add(), OW_NAMESPACE::DateTime::setToCurrent(), and OW_NAMESPACE::Array< T >::size().

void OW_NAMESPACE::PollingManagerThread::doCooperativeCancel  )  [private, virtual]
 

This function is available for subclasses of Thread to override if they wish to be notified when a cooperative cancel is being invoked on the instance.

Note that this function will be invoked in a separate thread. For instance, a thread may use this function to write to a pipe or socket, if Thread::run() is blocked in select(), it can be unblocked and instructed to exit.

It is also possible for an individual thread to override the cancellation request, if it knows that cancellation at this time may crash the system or cause a deadlock. To do this, the thread should throw an CancellationDeniedException. Note that threads are usually only cancelled in the event of a system shutdown or restart, so a thread should make a best effort to actually shutdown.

Exceptions:
CancellationDeniedException 

Reimplemented from OW_NAMESPACE::Thread.

Definition at line 483 of file OW_PollingManager.cpp.

References m_shuttingDown, m_triggerCondition, m_triggerGuard, and OW_NAMESPACE::Condition::notifyAll().

void OW_NAMESPACE::PollingManagerThread::init const ServiceEnvironmentIFCRef env  ) 
 

Definition at line 154 of file OW_PollingManager.cpp.

References OW_NAMESPACE::COMPONENT_NAME, OW_NAMESPACE::ThreadPool::DYNAMIC_SIZE, env, m_env, m_logger, m_triggerRunnerThreadPool, OW_DEFAULT_POLLING_MANAGER_MAX_THREADS, and OW_NAMESPACE::ConfigOpts::POLLING_MANAGER_MAX_THREADS_opt.

void OW_NAMESPACE::PollingManagerThread::processTriggers  )  [private]
 

Definition at line 342 of file OW_PollingManager.cpp.

References OW_NAMESPACE::DateTime::get(), i, OW_NAMESPACE::Thread::m_isRunning, m_logger, m_triggerRunners, m_triggerRunnerThreadPool, OW_LOG_INFO, OW_NAMESPACE::Array< T >::remove(), OW_NAMESPACE::DateTime::setToCurrent(), and OW_NAMESPACE::Array< T >::size().

Int32 OW_NAMESPACE::PollingManagerThread::run  )  [protected, virtual]
 

The method that will be run when the start method is called.

Implements OW_NAMESPACE::Thread.

Definition at line 235 of file OW_PollingManager.cpp.

References OW_NAMESPACE::Array< T >::append(), OW_NAMESPACE::createProvEnvRef(), i, m_env, m_logger, m_providerManager, m_startedBarrier, m_triggerGuard, m_triggerRunners, OW_LOG_DEBUG, OW_NAMESPACE::Array< T >::size(), TriggerRunner, and OW_NAMESPACE::ThreadBarrier::wait().

void OW_NAMESPACE::PollingManagerThread::shutdown  ) 
 

Definition at line 371 of file OW_PollingManager.cpp.

References OW_NAMESPACE::Array< T >::clear(), OW_NAMESPACE::Thread::join(), m_env, m_providerManager, m_shuttingDown, m_triggerCondition, m_triggerGuard, m_triggerRunners, m_triggerRunnerThreadPool, and OW_NAMESPACE::Condition::notifyAll().

void OW_NAMESPACE::PollingManagerThread::waitUntilReady  )  [inline]
 

Definition at line 82 of file OW_PollingManager.hpp.


Friends And Related Function Documentation

friend class TriggerRunner [friend]
 

Definition at line 122 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), and run().


Member Data Documentation

ServiceEnvironmentIFCRef OW_NAMESPACE::PollingManagerThread::m_env [private]
 

Definition at line 112 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), init(), run(), and shutdown().

LoggerRef OW_NAMESPACE::PollingManagerThread::m_logger [private]
 

Definition at line 114 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), init(), processTriggers(), and run().

ProviderManagerRef OW_NAMESPACE::PollingManagerThread::m_providerManager [private]
 

Definition at line 113 of file OW_PollingManager.hpp.

Referenced by run(), and shutdown().

bool OW_NAMESPACE::PollingManagerThread::m_shuttingDown [private]
 

Definition at line 109 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), doCooperativeCancel(), and shutdown().

ThreadBarrier OW_NAMESPACE::PollingManagerThread::m_startedBarrier [private]
 

Definition at line 115 of file OW_PollingManager.hpp.

Referenced by run().

Condition OW_NAMESPACE::PollingManagerThread::m_triggerCondition [private]
 

Definition at line 111 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), doCooperativeCancel(), OW_NAMESPACE::PollingManagerThread::TriggerRunner::run(), and shutdown().

NonRecursiveMutex OW_NAMESPACE::PollingManagerThread::m_triggerGuard [private]
 

Definition at line 110 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), doCooperativeCancel(), OW_NAMESPACE::PollingManagerThread::TriggerRunner::run(), run(), and shutdown().

Array<TriggerRunnerRef> OW_NAMESPACE::PollingManagerThread::m_triggerRunners [private]
 

Definition at line 108 of file OW_PollingManager.hpp.

Referenced by addPolledProvider(), calcSleepTime(), processTriggers(), run(), and shutdown().

ThreadPoolRef OW_NAMESPACE::PollingManagerThread::m_triggerRunnerThreadPool [private]
 

Definition at line 116 of file OW_PollingManager.hpp.

Referenced by init(), processTriggers(), and shutdown().


The documentation for this class was generated from the following files:
Generated on Thu Feb 9 09:12:53 2006 for openwbem by  doxygen 1.4.6