00001 // -*- C++ -*- 00020 #ifndef RTC_LOCAL_IFSMSERVICE_H 00021 #define RTC_LOCAL_IFSMSERVICE_H 00022 00023 #include <rtc/IRTC.h> 00024 00025 namespace RTC 00026 { 00027 namespace Local 00028 { 00029 class IFsmParticipantAction; 00030 00031 struct FsmBehaviorProfile 00032 { 00033 IFsmParticipantAction* comp; 00034 UniqueIdentifier id; 00035 }; 00036 00037 typedef std::vector<FsmBehaviorProfile*> FsmBehaviorProfileList; 00038 00039 struct FsmProfile 00040 { 00041 FsmBehaviorProfileList behavior_profiles; 00042 }; 00043 00053 class IFsmService 00054 { 00055 public: 00056 virtual ~IFsmService() {}; 00057 virtual const FsmProfile& get_fsm_profile() = 0; 00058 virtual ReturnCode_t set_fsm_profile(const FsmProfile& fsm_profile) = 0; 00059 }; 00060 }; // namespace Local 00061 }; // namespace RTC 00062 #endif // RTC_LOCAL_IFSMSERVICE_H 00063