19#ifndef RTC_FSMACTIONLISTENER_H
20#define RTC_FSMACTIONLISTENER_H
27#include <rtm/idl/RTCSkel.h>
29#include <rtm/idl/ExtendedFsmServiceStub.h>
259 static const char*
const typeString[] =
265 "PRE_ON_STATE_CHANGE",
266 "PRE_FSM_ACTION_LISTENER_NUM"
270 return typeString[
static_cast<uint8_t
>(type)];
502 static const char*
const typeString[] =
508 "POST_ON_STATE_CHANGE",
509 "POST_FSM_ACTION_LISTENER_NUM"
513 return typeString[
static_cast<uint8_t
>(type)];
543 ReturnCode_t ret) = 0;
748 static const char*
const typeString[] =
754 "ADD_FSM_TRANSITION",
755 "REMOVE_FSM_TRANSITION",
758 "FSM_PROFILE_LISTENER_NUM"
762 return typeString[
static_cast<uint8_t
>(type)];
791 virtual void operator()(const ::RTC::FsmProfile& fsmprof) = 0;
969 static const char*
const typeString[] =
973 "FSM_STRUCTURE_LISTENER_NUM"
977 return typeString[
static_cast<uint8_t
>(type)];
1030 using Entry = std::pair<PreFsmActionListener*, bool>;
1112 std::vector<Entry> m_listeners;
1135 using Entry = std::pair<PostFsmActionListener*, bool>;
1215 void notify(
const char* state, ReturnCode_t ret);
1218 std::vector<Entry> m_listeners;
1242 using Entry = std::pair<FsmProfileListener*, bool>;
1323 std::vector<Entry> m_listeners;
1345 using Entry = std::pair<FsmStructureListener*, bool>;
1426 std::vector<Entry> m_listeners;
1681 if (
static_cast<uint8_t
>(type) < preaction_.size())
1683 preaction_[
static_cast<uint8_t
>(type)].
notify(state);
1712 if (
static_cast<uint8_t
>(type) < postaction_.size())
1714 postaction_[
static_cast<uint8_t
>(type)].
notify(state, ret);
1741 if (
static_cast<uint8_t
>(type) < profile_.size())
1743 profile_[
static_cast<uint8_t
>(type)].
notify(profile);
1770 if (
static_cast<uint8_t
>(type) < structure_.size())
1772 structure_[
static_cast<uint8_t
>(type)].
notify(structure);
FsmActionListeners クラス
Definition FsmActionListener.h:1445
bool notify(FsmProfileListenerType type, RTC::FsmProfile &profile)
リスナーへ通知する
Definition FsmActionListener.h:1739
bool notify(PostFsmActionListenerType type, const char *state, ReturnCode_t ret)
リスナーへ通知する
Definition FsmActionListener.h:1710
FsmActionListeners()
コンストラクタ
bool addListener(PostFsmActionListenerType type, PostFsmActionListener *listener, bool autoclean=true)
リスナーの追加
bool notify(PreFsmActionListenerType type, const char *state)
リスナーへ通知する
Definition FsmActionListener.h:1679
bool removeListener(FsmProfileListenerType type, FsmProfileListener *listener)
リスナーの削除
~FsmActionListeners()
デストラクタ
bool notify(FsmStructureListenerType type, RTC::FsmStructure &structure)
リスナーへ通知する
Definition FsmActionListener.h:1768
bool removeListener(PostFsmActionListenerType type, PostFsmActionListener *listener)
リスナーの削除
bool addListener(FsmStructureListenerType type, FsmStructureListener *listener, bool autoclean=true)
リスナーの追加
bool addListener(PreFsmActionListenerType type, PreFsmActionListener *listener, bool autoclean=true)
リスナーの追加
bool addListener(FsmProfileListenerType type, FsmProfileListener *listener, bool autoclean=true)
リスナーの追加
bool removeListener(PreFsmActionListenerType type, PreFsmActionListener *listener)
リスナーの削除
bool removeListener(FsmStructureListenerType type, FsmStructureListener *listener)
リスナーの削除
FsmProfileListener ホルダクラス
Definition FsmActionListener.h:1241
void addListener(FsmProfileListener *listener, bool autoclean)
リスナーの追加
void removeListener(FsmProfileListener *listener)
リスナーの削除
void notify(RTC::FsmProfile &profile)
リスナーへ通知する
FsmProfileListenerHolder()
コンストラクタ
virtual ~FsmProfileListenerHolder()
デストラクタ
FsmProfileListener クラス
Definition FsmActionListener.h:723
virtual ~FsmProfileListener()
デストラクタ
virtual void operator()(const ::RTC::FsmProfile &fsmprof)=0
仮想コールバック関数
static const char * toString(FsmProfileListenerType type)
FsmProfileListenerType を文字列に変換
Definition FsmActionListener.h:746
FsmStructureListener ホルダクラス
Definition FsmActionListener.h:1344
FsmStructureListenerHolder()
コンストラクタ
void removeListener(FsmStructureListener *listener)
リスナーの削除
void notify(RTC::FsmStructure &structure)
リスナーへ通知する
virtual ~FsmStructureListenerHolder()
デストラクタ
void addListener(FsmStructureListener *listener, bool autoclean)
リスナーの追加
FsmStructureListener クラス
Definition FsmActionListener.h:942
virtual void operator()(::RTC::FsmStructure &pprof)=0
仮想コールバック関数
static const char * toString(FsmStructureListenerType type)
FsmStructureListenerType を文字列に変換
Definition FsmActionListener.h:967
virtual ~FsmStructureListener()
デストラクタ
PostFsmActionListener ホルダクラス
Definition FsmActionListener.h:1134
void removeListener(PostFsmActionListener *listener)
リスナーの削除
virtual ~PostFsmActionListenerHolder()
デストラクタ
void addListener(PostFsmActionListener *listener, bool autoclean)
リスナーの追加
PostFsmActionListenerHolder()
コンストラクタ
void notify(const char *state, ReturnCode_t ret)
リスナーへ通知する
PostFsmActionListener クラス
Definition FsmActionListener.h:475
virtual void operator()(const char *state, ReturnCode_t ret)=0
仮想コールバック関数
static const char * toString(PostFsmActionListenerType type)
PostFsmActionListenerType を文字列に変換
Definition FsmActionListener.h:500
virtual ~PostFsmActionListener()
デストラクタ
PreFsmActionListener ホルダクラス
Definition FsmActionListener.h:1029
void addListener(PreFsmActionListener *listener, bool autoclean)
リスナーの追加
PreFsmActionListenerHolder()
コンストラクタ
void removeListener(PreFsmActionListener *listener)
リスナーの削除
virtual ~PreFsmActionListenerHolder()
デストラクタ
void notify(const char *state)
リスナーへ通知する
PreFsmActionListener クラス
Definition FsmActionListener.h:232
static const char * toString(PreFsmActionListenerType type)
PreFsmActionListenerType を文字列に変換
Definition FsmActionListener.h:257
virtual ~PreFsmActionListener()
デストラクタ
virtual void operator()(const char *)=0
仮想コールバック関数
FsmStructureListenerType
FsmStructureListener のタイプ
Definition FsmActionListener.h:812
@ FSM_STRUCTURE_LISTENER_NUM
PreFsmActionListenerType
PreFsmActionListener のタイプ
Definition FsmActionListener.h:90
@ PRE_FSM_ACTION_LISTENER_NUM
PostFsmActionListenerType
PostFsmActionListener のタイプ
Definition FsmActionListener.h:333
@ POST_FSM_ACTION_LISTENER_NUM
FsmProfileListenerType
FsmProfileListener のタイプ
Definition FsmActionListener.h:575
@ FSM_PROFILE_LISTENER_NUM