#include <baciBACIComponent.h>
Public Member Functions | |
BACIComponent (ACS::ThreadManager *thrMgr, const ACE_CString &name, const ACE_CString &type, CharacteristicModelImpl *characteristicModel, size_t actionThreadStackSize, size_t monitorThreadStackSize, const ACS::TimeInterval &actionThreadResponseTime=defaultRTResponseTime_m, const ACS::TimeInterval &actionThreadSleepTime=minRTSleepTime_m, const ACS::TimeInterval &monitorThreadResponseTime=defaultMTResponseTime_m, const ACS::TimeInterval &monitorThreadSleepTime=minMTSleepTime_m) | |
~BACIComponent () | |
const char * | getName () const |
const char * | getType () const |
int | registerCallback (const BACIValue::Type type, Callback_ptr callback_p, const CBDescIn descIn) |
int | registerAction (const BACIValue::Type type, Callback_ptr callback_p, const CBDescIn descIn, ActionImplementator *actionImplementator_, int actionFunction_) |
int | registerAction (const BACIValue::Type type, Callback_ptr callback_p, const CBDescIn descIn, ActionImplementator *actionImplementator_, int actionFunction, const BACIValue &value) |
BACIThreadManager * | getThreadManager () const |
ACS::TimeInterval | getMTResponseTime () const |
void | setMTResponseTime (const ACS::TimeInterval &_monitorThreadResponseTime) |
ACS::TimeInterval | getMTSleepTime () const |
void | setMTSleepTime (const ACS::TimeInterval &_monitorThreadSleepTime) |
ACS::TimeInterval | getRTResponseTime () const |
void | setRTResponseTime (const ACS::TimeInterval &_actionThreadResponseTime) |
ACS::TimeInterval | getRTSleepTime () const |
void | setRTSleepTime (const ACS::TimeInterval &_actionThreadSleepTime) |
bool | dispatchCallback (int callbackID, const BACIValue &value, CBDescOut &descOut, const Completion &completion, const BACIMonitor *archiver=0) |
bool | finishCallback (int callbackID, const BACIValue &value, CBDescOut &descOut, const Completion &completion) |
bool | isInDestructionState () const |
int | getActionCount () const |
void | pushAction (BACIAction *action) |
BACIAction * | popAction () |
void | removeCallbackAndAction (int callbackID) |
BACICallback * | getCallback (int callbackID) |
void | removeCallback (int callbackID) |
int | getPropertyCount () const |
BACIProperty * | getPropertyAt (int pos) const |
void | stopAllThreads () |
bool | startAllThreads () |
void | startMonitoringThread () |
void | startActionThread () |
void | stopMonitoringThread () |
void | stopActionThread () |
void | cancelMonitoringThread () |
void | cancelActionThread () |
bool | isMonitoringActive () |
bool | isActionThreadActive () |
CharacteristicModelImpl * | getCharacteristicModel () const |
Protected Member Functions | |
BACIThread * | getActionThread () const |
BACIThread * | getMonitorThread () const |
int | getThreadCount () const |
void | removeAction (int callbackID) |
void | addProperty (BACIProperty *property) |
void | removeProperty (BACIProperty *property) |
Static Protected Attributes | |
static const ACS::TimeInterval | defaultRTResponseTime_m |
static const ACS::TimeInterval | minRTSleepTime_m |
static const ACS::TimeInterval | defaultMTResponseTime_m |
static const ACS::TimeInterval | minMTSleepTime_m |
Private Member Functions | |
void | operator= (const BACIComponent &) |
BACIComponent (const BACIComponent &) | |
Private Attributes | |
ACE_CString | name_m |
ACE_CString | type_m |
CharacteristicModelImpl * | characteristicModel_mp |
BACICallbackTable | callbackTable_m |
BACIActionQueue | actionQueue_m |
BACIPropertyVector | propertyVector_m |
ACS::TimeInterval | actionThreadResponseTime_m |
ACS::TimeInterval | actionThreadSleepTime_m |
ACS::TimeInterval | monitorThreadResponseTime_m |
ACS::TimeInterval | monitorThreadSleepTime_m |
BACIThread * | actionThread_mp |
BACIThread * | monitorThread_mp |
BACIThreadManager * | threadManager_mp |
bool | inDestructionState_m |
BACIMutex | actionQueueMutex_m |
BACIMutex | propertyVectorMutex_m |
BACIMutex | callbackTableMutex_m |
size_t | actionThreadStackSize_m |
size_t | monitoringThreadStackSize_m |
Friends | |
class | BACIProperty |
Class represeting BACI Component Component is responsible for action, monitor dispatching
baci::BACIComponent::BACIComponent | ( | ACS::ThreadManager * | thrMgr, | |
const ACE_CString & | name, | |||
const ACE_CString & | type, | |||
CharacteristicModelImpl * | characteristicModel, | |||
size_t | actionThreadStackSize, | |||
size_t | monitorThreadStackSize, | |||
const ACS::TimeInterval & | actionThreadResponseTime = defaultRTResponseTime_m , |
|||
const ACS::TimeInterval & | actionThreadSleepTime = minRTSleepTime_m , |
|||
const ACS::TimeInterval & | monitorThreadResponseTime = defaultMTResponseTime_m , |
|||
const ACS::TimeInterval & | monitorThreadSleepTime = minMTSleepTime_m | |||
) |
Component constructor that allows to pass thread manager This class is a property containder providing action and monitor queues.
threadManager | ACS Thread Manager | |
name | name of the Component | |
characteristicModel | characteristic model to be used to retrieve data | |
actionThreadResponseTime | response time of the action thread in 100ns unit | |
actionThreadSleepTime | sleep time of the action thread in 100ns unit | |
monitorThreadResponseTime | response time of the monitor thread in 100ns unit | |
monitorThreadSleepTime | sleep time of the monitor thread in 100ns unit |
baci::BACIComponent::~BACIComponent | ( | ) |
baci::BACIComponent::BACIComponent | ( | const BACIComponent & | ) | [private] |
ALMA C++ coding standards state copy constructors should be disabled.
void baci::BACIComponent::addProperty | ( | BACIProperty * | property | ) | [protected] |
void baci::BACIComponent::cancelActionThread | ( | ) |
Cancels the Action thread if one has been created. We need to cancel the thread to avoid waiting unneccessary waiting in sleep of the thread, because cancel
void baci::BACIComponent::cancelMonitoringThread | ( | ) |
Cancels the Monitoring thread if one has been created. We need to cancel the thread to avoid waiting unneccessary waiting in sleep of the thread, because cancel
bool baci::BACIComponent::dispatchCallback | ( | int | callbackID, | |
const BACIValue & | value, | |||
CBDescOut & | descOut, | |||
const Completion & | completion, | |||
const BACIMonitor * | archiver = 0 | |||
) |
bool baci::BACIComponent::finishCallback | ( | int | callbackID, | |
const BACIValue & | value, | |||
CBDescOut & | descOut, | |||
const Completion & | completion | |||
) |
int baci::BACIComponent::getActionCount | ( | ) | const [inline] |
BACIThread* baci::BACIComponent::getActionThread | ( | ) | const [inline, protected] |
BACICallback* baci::BACIComponent::getCallback | ( | int | callbackID | ) |
CharacteristicModelImpl* baci::BACIComponent::getCharacteristicModel | ( | ) | const [inline] |
BACIThread* baci::BACIComponent::getMonitorThread | ( | ) | const [inline, protected] |
ACS::TimeInterval baci::BACIComponent::getMTResponseTime | ( | ) | const [inline] |
ACS::TimeInterval baci::BACIComponent::getMTSleepTime | ( | ) | const [inline] |
const char* baci::BACIComponent::getName | ( | void | ) | const [inline] |
BACIProperty* baci::BACIComponent::getPropertyAt | ( | int | pos | ) | const |
int baci::BACIComponent::getPropertyCount | ( | ) | const [inline] |
ACS::TimeInterval baci::BACIComponent::getRTResponseTime | ( | ) | const [inline] |
ACS::TimeInterval baci::BACIComponent::getRTSleepTime | ( | ) | const [inline] |
int baci::BACIComponent::getThreadCount | ( | ) | const [inline, protected] |
BACIThreadManager* baci::BACIComponent::getThreadManager | ( | ) | const [inline] |
const char* baci::BACIComponent::getType | ( | ) | const [inline] |
bool baci::BACIComponent::isActionThreadActive | ( | ) |
Returns true if Action Thread is active, i.e. if the action thread is created and resumed.
bool baci::BACIComponent::isInDestructionState | ( | ) | const [inline] |
bool baci::BACIComponent::isMonitoringActive | ( | ) |
Returns true if monitoring is active, i.e. if monitoring thread is created and resumed.
void baci::BACIComponent::operator= | ( | const BACIComponent & | ) | [private] |
ALMA C++ coding standards state assignment operators should be disabled.
BACIAction* baci::BACIComponent::popAction | ( | ) |
void baci::BACIComponent::pushAction | ( | BACIAction * | action | ) |
int baci::BACIComponent::registerAction | ( | const BACIValue::Type | type, | |
Callback_ptr | callback_p, | |||
const CBDescIn | descIn, | |||
ActionImplementator * | actionImplementator_, | |||
int | actionFunction_ | |||
) |
Register action to BACI
type | callback type (e.g. type double means callback is type of CBdouble) | |
callback | callback reference | |
descIn | callback descriptor (passed by client) | |
actionImplemenator | action implementator | |
actionFunction | action function to be invoked in execute action | |
value | action data (e.g. value to be set) |
int baci::BACIComponent::registerAction | ( | const BACIValue::Type | type, | |
Callback_ptr | callback_p, | |||
const CBDescIn | descIn, | |||
ActionImplementator * | actionImplementator_, | |||
int | actionFunction, | |||
const BACIValue & | value | |||
) |
Register action to BACI
type | callback type (e.g. type double means callback is type of CBdouble) | |
callback | callback reference | |
descIn | callback descriptor (passed by client) | |
actionImplemenator | action implementator | |
actionFunction_ | action function to be invoked in execute action |
int baci::BACIComponent::registerCallback | ( | const BACIValue::Type | type, | |
Callback_ptr | callback_p, | |||
const CBDescIn | descIn | |||
) |
Register callback to BACI
type | callback type (e.g. type double means callback is type of CBdouble) | |
callback | callback reference | |
descIn | callback descriptor (passed by client) |
void baci::BACIComponent::removeAction | ( | int | callbackID | ) | [protected] |
void baci::BACIComponent::removeCallback | ( | int | callbackID | ) |
void baci::BACIComponent::removeCallbackAndAction | ( | int | callbackID | ) |
void baci::BACIComponent::removeProperty | ( | BACIProperty * | property | ) | [protected] |
void baci::BACIComponent::setMTResponseTime | ( | const ACS::TimeInterval & | _monitorThreadResponseTime | ) |
void baci::BACIComponent::setMTSleepTime | ( | const ACS::TimeInterval & | _monitorThreadSleepTime | ) |
void baci::BACIComponent::setRTResponseTime | ( | const ACS::TimeInterval & | _actionThreadResponseTime | ) |
void baci::BACIComponent::setRTSleepTime | ( | const ACS::TimeInterval & | _actionThreadSleepTime | ) |
void baci::BACIComponent::startActionThread | ( | ) |
Creates and starts the Action thread. The thread which is used for executing asyhronous commmand. In case of an error it throws an exception:
ACSErrTypeCommon::NullPointerExImpl | if there is no thread manager | |
acsthreadErrType::CanNotCreateThreadExImpl | if the thread can not be created |
bool baci::BACIComponent::startAllThreads | ( | ) |
void baci::BACIComponent::startMonitoringThread | ( | ) |
Creates and starts the Monitoring thread. In case of an error it throws an exception:
ACSErrTypeCommon::NullPointerExImpl | if there is no thread manager | |
acsthreadErrType::CanNotCreateThreadExImpl | if the thread can not be created |
void baci::BACIComponent::stopActionThread | ( | ) |
Stops (suspends) the Action thread. If the thread is already suspended, or if it has not been created yet, it just returns.
void baci::BACIComponent::stopAllThreads | ( | ) |
void baci::BACIComponent::stopMonitoringThread | ( | ) |
Stops (suspends) the Monitoring thread If the thread is already suspended, or if it has not been created yet, it just returns.
friend class BACIProperty [friend] |
BACIMutex baci::BACIComponent::actionQueueMutex_m [private] |
BACIThread* baci::BACIComponent::actionThread_mp [private] |
ACS::TimeInterval baci::BACIComponent::actionThreadResponseTime_m [private] |
ACS::TimeInterval baci::BACIComponent::actionThreadSleepTime_m [private] |
size_t baci::BACIComponent::actionThreadStackSize_m [private] |
BACIMutex baci::BACIComponent::callbackTableMutex_m [private] |
const ACS::TimeInterval baci::BACIComponent::defaultMTResponseTime_m [static, protected] |
const ACS::TimeInterval baci::BACIComponent::defaultRTResponseTime_m [static, protected] |
bool baci::BACIComponent::inDestructionState_m [private] |
const ACS::TimeInterval baci::BACIComponent::minMTSleepTime_m [static, protected] |
const ACS::TimeInterval baci::BACIComponent::minRTSleepTime_m [static, protected] |
size_t baci::BACIComponent::monitoringThreadStackSize_m [private] |
BACIThread* baci::BACIComponent::monitorThread_mp [private] |
ACS::TimeInterval baci::BACIComponent::monitorThreadResponseTime_m [private] |
ACS::TimeInterval baci::BACIComponent::monitorThreadSleepTime_m [private] |
ACE_CString baci::BACIComponent::name_m [private] |
BACIMutex baci::BACIComponent::propertyVectorMutex_m [private] |
ACE_CString baci::BACIComponent::type_m [private] |