PeriodicExecutionContext class. More...
#include <PeriodicExecutionContext.h>
Classes | |
struct | Comp |
The structure for the component management. More... | |
class | DFP |
DFP class. More... | |
class | DFPBase |
DFPBase class. More... | |
struct | find_comp |
Functor to find the component. More... | |
class | find_participant |
struct | invoke_on_rate_changed |
Functor to invoke on_rate_changed. More... | |
struct | invoke_on_shutdown |
Functor to invoke on_shutdown. More... | |
struct | invoke_on_startup |
Functor to invoke on_startup. More... | |
struct | invoke_worker |
Functor to invoke worker. More... | |
struct | Worker |
Condition variable class for worker. More... | |
Public Member Functions | |
virtual ReturnCode_t | activate_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
Activate an RT-component. | |
virtual ReturnCode_t | add_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
Add an RT-component. | |
virtual RTC::ReturnCode_t | bindComponent (RTObject_impl *rtc) |
Bind the component. | |
virtual int | close (unsigned long flags) |
Thread execution function for ExecutionContext. | |
virtual ReturnCode_t | deactivate_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
Deactivate an RT-component. | |
virtual LifeCycleState | get_component_state (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
Get RT-component's state. | |
virtual ExecutionKind | get_kind (void) throw (CORBA::SystemException) |
Get the ExecutionKind. | |
virtual ExecutionContextProfile * | get_profile (void) throw (CORBA::SystemException) |
Get the ExecutionContextProfile. | |
virtual CORBA::Double | get_rate (void) throw (CORBA::SystemException) |
Get execution rate(Hz) of ExecutionContext. | |
virtual ExecutionContextService_ptr | getObjRef (void) |
Get the reference to the CORBA object. | |
virtual CORBA::Boolean | is_running (void) throw (CORBA::SystemException) |
Check for ExecutionContext running state. | |
virtual int | open (void *args) |
Generate internal activity thread for ExecutionContext. | |
PeriodicExecutionContext () | |
Default Constructor. | |
PeriodicExecutionContext (OpenRTM::DataFlowComponent_ptr owner, double rate=1000.0) | |
Constructor. | |
virtual ReturnCode_t | remove_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
Remove the RT-Component from participant list. | |
virtual ReturnCode_t | reset_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
Reset the RT-component. | |
virtual ReturnCode_t | set_rate (CORBA::Double rate) throw (CORBA::SystemException) |
Set execution rate(Hz) of ExecutionContext. | |
virtual ReturnCode_t | start (void) throw (CORBA::SystemException) |
Start the ExecutionContext. | |
virtual ReturnCode_t | stop (void) throw (CORBA::SystemException) |
Stop the ExecutionContext. | |
virtual int | svc (void) |
Thread execution function for ExecutionContext. | |
virtual | ~PeriodicExecutionContext (void) |
Destructor. | |
Protected Types | |
typedef std::vector< Comp > ::iterator | CompItr |
typedef RTC_Utils::StateHolder < ExecContextState > | ECStates |
typedef LifeCycleState | ExecContextState |
Protected Attributes | |
std::vector< Comp > | m_comps |
List of the participating component. | |
bool | m_nowait |
Flag of ExecutionContext to run immediately (to run without waiting) | |
coil::TimeValue | m_period |
Execution cycle of ExecutionContext. | |
ExecutionContextProfile | m_profile |
ExecutionContextProfile. | |
coil::Mutex | m_profileMutex |
ExecutionContextService_var | m_ref |
Reference to ExecutionContextService object. | |
bool | m_running |
The running state of ExecutionContext true: running, false: stopped. | |
bool | m_svc |
The thread running flag of ExecutionContext. | |
Worker | m_worker |
A condition variable for external triggered worker. | |
Logger | rtclog |
Logger stream. | |
Private Types | |
typedef coil::Guard< coil::Mutex > | Guard |
PeriodicExecutionContext class.
Periodic Sampled Data Processing (for the execution cycles) ExecutionContext class
Definition at line 64 of file PeriodicExecutionContext.h.
typedef std::vector<Comp>::iterator RTC::PeriodicExecutionContext::CompItr [protected] |
Definition at line 1479 of file PeriodicExecutionContext.h.
typedef RTC_Utils::StateHolder<ExecContextState> RTC::PeriodicExecutionContext::ECStates [protected] |
Definition at line 648 of file PeriodicExecutionContext.h.
typedef LifeCycleState RTC::PeriodicExecutionContext::ExecContextState [protected] |
Definition at line 639 of file PeriodicExecutionContext.h.
typedef coil::Guard<coil::Mutex> RTC::PeriodicExecutionContext::Guard [private] |
Definition at line 68 of file PeriodicExecutionContext.h.
Default Constructor.
Default constructor.
Default Constructor Set the following items to profile.
Definition at line 38 of file PeriodicExecutionContext.cpp.
RTC::PeriodicExecutionContext::PeriodicExecutionContext | ( | OpenRTM::DataFlowComponent_ptr | owner, |
double | rate = 1000.0 |
||
) |
Constructor.
Construnctor.
Constructor Set the configuration value to profile.
owner | The owner of this Executioncontext |
rate | Execution cycle(Hz)(The default value:1000) |
Definition at line 66 of file PeriodicExecutionContext.cpp.
RTC::PeriodicExecutionContext::~PeriodicExecutionContext | ( | void | ) | [virtual] |
ReturnCode_t RTC::PeriodicExecutionContext::activate_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
Activate an RT-component.
Activate an RT-Component.
The given participant RTC is Inactive and is therefore not being invoked according to the execution context¡Çs execution kind. This operation shall cause the RTC to transition to the Active state such that it may subsequently be invoked in this execution context. The callback on_activate shall be called as a result of calling this operation. This operation shall not return until the callback has returned, and shall result in an error if the callback does.
comp | The target RT-Component for activation |
Definition at line 324 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::add_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
Add an RT-component.
Add an RT-Component.
The operation causes the given RTC to begin participating in the execution context. The newly added RTC will receive a call to LightweightRTComponent::attach_context and then enter the Inactive state. BAD_PARAMETER will be invoked, if the given RT-Component is null or if the given RT-Component is other than DataFlowComponent.
comp | The target RT-Component for add |
Definition at line 526 of file PeriodicExecutionContext.cpp.
RTC::ReturnCode_t RTC::PeriodicExecutionContext::bindComponent | ( | RTObject_impl * | rtc | ) | [virtual] |
Bind the component.
Bind the component.
rtc | RT-Component's instances |
Implements RTC::ExecutionContextBase.
Definition at line 557 of file PeriodicExecutionContext.cpp.
int RTC::PeriodicExecutionContext::close | ( | unsigned long | flags | ) | [virtual] |
Thread execution function for ExecutionContext.
This function is invoked when activity thread for ExecutionContext exits. Deactivate the component object and notify it to manager. This is coil::Task class method's override.
flags | Flag of the close |
Reimplemented from coil::Task.
Definition at line 190 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::deactivate_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
Deactivate an RT-component.
Deactivate an RT-Component.
The given RTC is Active in the execution context. Cause it to transition to the Inactive state such that it will not be subsequently invoked from the context unless and until it is activated again. The callback on_deactivate shall be called as a result of calling this operation. This operation shall not return until the callback has returned, and shall result in an error if the callback does.
comp | The target RT-Component for deactivate |
Definition at line 368 of file PeriodicExecutionContext.cpp.
LifeCycleState RTC::PeriodicExecutionContext::get_component_state | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
Get RT-component's state.
Get RT-Component's state.
This operation shall report the LifeCycleState of the given participant RTC. UNKNOWN_STATE will be returned, if the given RT-Component is not inclued in the participant list.
comp | The target RT-Component to get the state |
Definition at line 478 of file PeriodicExecutionContext.cpp.
ExecutionKind RTC::PeriodicExecutionContext::get_kind | ( | void | ) | throw (CORBA::SystemException) [virtual] |
Get the ExecutionKind.
This operation shall report the execution kind of the execution context.
Definition at line 511 of file PeriodicExecutionContext.cpp.
ExecutionContextProfile * RTC::PeriodicExecutionContext::get_profile | ( | void | ) | throw (CORBA::SystemException) [virtual] |
Get the ExecutionContextProfile.
This operation provides a profile ¡Èdescriptor¡É for the execution context.
Definition at line 634 of file PeriodicExecutionContext.cpp.
CORBA::Double RTC::PeriodicExecutionContext::get_rate | ( | void | ) | throw (CORBA::SystemException) [virtual] |
Get execution rate(Hz) of ExecutionContext.
This operation shall return the rate (in hertz) at which its Active participating RTCs are being invoked.
Definition at line 281 of file PeriodicExecutionContext.cpp.
virtual ExecutionContextService_ptr RTC::PeriodicExecutionContext::getObjRef | ( | void | ) | [inline, virtual] |
Get the reference to the CORBA object.
Get the reference to the CORBA object as ExecutioncontextService of this object.
Implements RTC::ExecutionContextBase.
Definition at line 149 of file PeriodicExecutionContext.h.
CORBA::Boolean RTC::PeriodicExecutionContext::is_running | ( | void | ) | throw (CORBA::SystemException) [virtual] |
Check for ExecutionContext running state.
This operation shall return true if the context is in the Running state. While the context is Running, all Active RTCs participating in the context shall be executed according to the context¡Çs execution kind.
Definition at line 211 of file PeriodicExecutionContext.cpp.
int RTC::PeriodicExecutionContext::open | ( | void * | args | ) | [virtual] |
Generate internal activity thread for ExecutionContext.
Generate internal activity thread and run. This is coil::Task class method's override.
args | Usually give 0 |
Reimplemented from coil::Task.
Definition at line 123 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::remove_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
Remove the RT-Component from participant list.
This operation causes a participant RTC to stop participating in the execution context. The removed RTC will receive a call to LightweightRTComponent::detach_context. BAD_PARAMETER will be returned, if the given RT-Component is not participating in the participant list.
comp | The target RT-Component for delete |
Definition at line 590 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::reset_component | ( | LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
Reset the RT-component.
Reset the RT-Component.
Attempt to recover the RTC when it is in Error. The ComponentAction::on_reset callback shall be invoked. This operation shall not return until the callback has returned, and shall result in an error if the callback does. If possible, the RTC developer should implement that callback such that the RTC may be returned to a valid state.
comp | The target RT-Component for reset |
Definition at line 453 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::set_rate | ( | CORBA::Double | rate | ) | throw (CORBA::SystemException) [virtual] |
Set execution rate(Hz) of ExecutionContext.
This operation shall set the rate (in hertz) at which this context¡Çs Active participating RTCs are being called. If the execution kind of the context is PERIODIC, a rate change shall result in the invocation of on_rate_changed on any RTCs realizing DataFlowComponentAction that are registered with any RTCs participating in the context.
rate | Execution cycle(Unit:Hz) |
Definition at line 296 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::start | ( | void | ) | throw (CORBA::SystemException) [virtual] |
Start the ExecutionContext.
Request that the context enter the Running state. Once the state transition occurs, the ComponentAction::on_startup operation will be invoked. An execution context may not be started until the RT-Components that participate in it have been initialized. An execution context may be started and stopped multiple times.
Definition at line 225 of file PeriodicExecutionContext.cpp.
ReturnCode_t RTC::PeriodicExecutionContext::stop | ( | void | ) | throw (CORBA::SystemException) [virtual] |
Stop the ExecutionContext.
Request that the context enter the Stopped state. Once the transition occurs, the ComponentAction::on_shutdown operation will be invoked. An execution context must be stopped before the RT components that participate in it are finalized. An execution context may be started and stopped multiple times.
Definition at line 255 of file PeriodicExecutionContext.cpp.
int RTC::PeriodicExecutionContext::svc | ( | void | ) | [virtual] |
Thread execution function for ExecutionContext.
Thread execution function for ExecutionContext. Invoke the registered components operation.
Reimplemented from coil::Task.
Reimplemented in OpenRTM::RTPreemptEC, RTC::ExtTrigExecutionContext, RTC::OpenHRPExecutionContext, and RTC::ArtExecutionContext.
Definition at line 141 of file PeriodicExecutionContext.cpp.
std::vector<Comp> RTC::PeriodicExecutionContext::m_comps [protected] |
List of the participating component.
Definition at line 1478 of file PeriodicExecutionContext.h.
bool RTC::PeriodicExecutionContext::m_nowait [protected] |
Flag of ExecutionContext to run immediately (to run without waiting)
Definition at line 1570 of file PeriodicExecutionContext.h.
Execution cycle of ExecutionContext.
Definition at line 1551 of file PeriodicExecutionContext.h.
ExecutionContextProfile RTC::PeriodicExecutionContext::m_profile [protected] |
ExecutionContextProfile.
Definition at line 1541 of file PeriodicExecutionContext.h.
Definition at line 1542 of file PeriodicExecutionContext.h.
ExecutionContextService_var RTC::PeriodicExecutionContext::m_ref [protected] |
Reference to ExecutionContextService object.
Definition at line 1560 of file PeriodicExecutionContext.h.
bool RTC::PeriodicExecutionContext::m_running [protected] |
The running state of ExecutionContext true: running, false: stopped.
Definition at line 1499 of file PeriodicExecutionContext.h.
bool RTC::PeriodicExecutionContext::m_svc [protected] |
The thread running flag of ExecutionContext.
Definition at line 1508 of file PeriodicExecutionContext.h.
Worker RTC::PeriodicExecutionContext::m_worker [protected] |
A condition variable for external triggered worker.
Reimplemented in RTC::ExtTrigExecutionContext.
Definition at line 1532 of file PeriodicExecutionContext.h.
Logger RTC::PeriodicExecutionContext::rtclog [protected] |
Logger stream.
Definition at line 1488 of file PeriodicExecutionContext.h.