IExecutionContext.h
Go to the documentation of this file.
00001 // -*- C++ -*-
00020 #ifndef IExeLOCAL_cutionContext_h
00021 #define IExeLOCAL_cutionContext_h
00022 
00023 #include <rtc/IRTC.h>
00024 
00025 
00026 namespace RTC
00027 {
00028 namespace Local
00029 {
00030 
00031   class ILightweightRTObject;
00032   class IRTObject;
00033   typedef std::vector<IRTObject*> RTCList;
00034   
00035   struct ExecutionContextProfile
00036   {
00037     ExecutionKind kind;
00038     double rate;
00039     IRTObject* owner;
00040     RTCList participants;
00041     NVList properties;
00042   };
00043   
00053   class IExecutionContext
00054   {
00055   public:
00056     virtual ~IExecutionContext() {};
00057     
00058     virtual bool is_running() const = 0;
00059     
00060     virtual ReturnCode_t start() = 0;
00061     
00062     virtual ReturnCode_t stop() = 0;
00063     
00064     virtual double get_rate() const = 0;
00065     
00066     virtual ReturnCode_t set_rate(double rate) = 0;
00067     
00068     virtual ReturnCode_t
00069     add_component(ILightweightRTObject& comp) = 0;
00070     
00071     virtual ReturnCode_t
00072     remove_component(ILightweightRTObject& comp) = 0;
00073     
00074     virtual ReturnCode_t
00075     activate_component(ILightweightRTObject& comp) = 0;
00076     
00077     virtual ReturnCode_t
00078     deactivate_component(ILightweightRTObject& comp) = 0;
00079     
00080     virtual ReturnCode_t
00081     reset_component(ILightweightRTObject& comp) = 0;
00082     
00083     virtual LifeCycleState
00084     get_component_state(ILightweightRTObject& comp) = 0;
00085     
00086     virtual ExecutionKind
00087     get_kind() const = 0;
00088     
00089     virtual const ExecutionContextProfile&
00090     get_profile() const = 0;
00091   };
00092 };     // namespace Local
00093 };     // namespace RTC
00094 #endif // RTC_LOCAL_IEXECUTIONCONTEXT_H
00095 


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Thu Aug 27 2015 14:16:37