OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::FsmProfileListener クラスabstract

FsmProfileListener クラス [詳解]

#include <FsmActionListener.h>

公開メンバ関数

virtual ~FsmProfileListener ()
 デストラクタ
 
virtual void operator() (const ::RTC::FsmProfile &fsmprof)=0
 仮想コールバック関数
 

静的公開メンバ関数

static const char * toString (FsmProfileListenerType type)
 FsmProfileListenerType を文字列に変換
 

詳解

FsmProfileListener クラス

FsmProfileListener クラスは、FSMのProfileに関連したアクションのコー ルバックを実現するリスナーオブジェクトの基底クラスである。FSM Profileのアクションの動作をフックしたい場合、以下の例のように、こ のクラスを継承したコールバックオブジェクトを定義し、適切なコールバッ ク設定関数からRTObjectに対してコールバックオブジェクトをセットする 必要がある。

class MyListener
  : public FsmProfileListener
{
  std::string m_name;
public:
  MyListener(const char* name) : m_name(name) {}
  virtual ~MyListener() {}

  virtual void operator()(const ::RTC::FsmProfile& fsmprof)
  {
    std::cout << "Listner name:  " m_name << std::endl;
  };
};

このようにして定義されたリスナクラスは、以下のようにRTObjectに対し て、セットされる。

RTC::ReturnCode_t ConsoleIn::onInitialize()
{
    addFsmProfileListener(FsmProfileListenerType::SET_FSM_PROFILE,
                          new MyListener("prof listener"),
                          true);
   :

第1引数の "SET_FSM_PROFILE" は、コールバックをフックするポイン トであり、以下の値を取ることが可能である。なお、すべてのコールバッ クポイントが実装されているとは限らず、これらが呼び出されるかどうか は、FSMサービスの実装に依存する。

  • SET_FSM_PROFILE : FSM Profile設定時
  • GET_FSM_PROFILE : FSM Profile取得時
  • ADD_FSM_STATE : FSMにStateが追加された
  • REMOVE_FSM_STATE : FSMからStateが削除された
  • ADD_FSM_TRANSITION : FSMに遷移が追加された
  • REMOVE_FSM_TRANSITION : FSMから遷移が削除された
  • BIND_FSM_EVENT : FSMにイベントがバインドされた
  • UNBIND_FSM_EVENT : FSMにイベントがアンバインドされた

第2引数はリスナオブジェクトのポインタである。第3引数はオブジェクト 自動削除フラグであり、true の場合は、RTObject削除時に自動的にリス ナオブジェクトが削除される。falseの場合は、オブジェクトの所有権は 呼び出し側に残り、削除は呼び出し側の責任で行わなければならない。 RTObject のライフサイクル中にコールバックが必要ならば上記のような 呼び出し方で第3引数を true としておくとよい。逆に、コールバックを 状況等に応じてセットしたりアンセットしたりする必要がある場合は falseとして置き、リスナオブジェクトのポインタをメンバ変数などに保 持しておき、addFsmProfileListener()/removeFsmProfileListener() に より、セットとアンセットを管理するといった使い方も可能である。

構築子と解体子

◆ ~FsmProfileListener()

virtual RTC::FsmProfileListener::~FsmProfileListener ( )
virtual

デストラクタ

関数詳解

◆ operator()()

virtual void RTC::FsmProfileListener::operator() ( const ::RTC::FsmProfile & fsmprof)
pure virtual

仮想コールバック関数

FsmProfileListener のコールバック関数

◆ toString()

static const char * RTC::FsmProfileListener::toString ( FsmProfileListenerType type)
inlinestatic

FsmProfileListenerType を文字列に変換

FsmProfileListenerType を文字列に変換する

引数
type変換対象 FsmProfileListenerType
戻り値
文字列変換結果

参照先 RTC::FSM_PROFILE_LISTENER_NUM.


このクラス詳解は次のファイルから抽出されました: