00001 // -*- C++ -*- 00020 #ifndef RTC_LOCAL_IMODECAPABLE_H 00021 #define RTC_LOCAL_IMODECAPABLE_H 00022 00023 #include <rtc/IRTC.h> 00024 00025 namespace RTC 00026 { 00027 namespace Local 00028 { 00029 class IMode; 00030 class IExecutionContext; 00040 class IModeCapable 00041 { 00042 public: 00043 virtual ~IModeCapable(); 00044 virtual IMode& 00045 get_default_mode() = 0; 00046 virtual IMode& 00047 get_current_mode() = 0; 00048 virtual IMode& 00049 get_current_mode_in_context(const IExecutionContext& ec) = 0; 00050 virtual IMode& 00051 get_pending_mode() = 0; 00052 virtual IMode& 00053 get_pending_mode_in_context(const IExecutionContext& ec) = 0; 00054 virtual ReturnCode_t 00055 set_mode(IMode& new_mode, bool immediate) = 0; 00056 }; 00057 }; // namespace Local 00058 }; // namespace RTC 00059 #endif // RTC_LOCAL_IMODECAPABLE_H 00060