00001 // -*- C++ -*- 00020 #ifndef RTC_LOCAL_ILIGHTWEIGHTRTOBJECT_H 00021 #define RTC_LOCAL_ILIGHTWEIGHTRTOBJECT_H 00022 00023 #include <doil/ImplBase.h> 00024 #include <rtc/IRTC.h> 00025 #include <rtc/IComponentAction.h> 00026 #include <rtc/IExecutionContext.h> 00027 00028 namespace RTC 00029 { 00030 namespace Local 00031 { 00041 class ILightweightRTObject 00042 : public doil::ImplBase, 00043 public virtual IComponentAction 00044 { 00045 public: 00046 virtual ~ILightweightRTObject() {}; 00047 virtual bool is_alive(const IExecutionContext& ec) const = 0; 00048 virtual ReturnCode_t initialize() = 0; 00049 virtual ReturnCode_t finalize() = 0; 00050 virtual ReturnCode_t exit() = 0; 00051 00052 virtual ExecutionContextHandle_t 00053 attach_context(const IExecutionContext& ec) = 0; 00054 virtual ReturnCode_t detach_context(ExecutionContextHandle_t ec_handle) = 0; 00055 virtual IExecutionContext& 00056 get_context(ExecutionContextHandle_t ec_handle) = 0; 00057 virtual ExecutionContextList& get_owned_contexts() = 0; 00058 virtual ExecutionContextList& get_participating_contexts() = 0; 00059 }; 00060 }; // namespace Local 00061 }; // namespace RTC 00062 #endif // RTC_LOCAL_ILIGHTWEIGHTRTOBJECT_H