OpenRTM-aist-Python 2.0.0
公開メンバ関数 | 全メンバ一覧
OpenRTM_aist.ConnectorListener.ConnectorListener クラス

[詳解]

OpenRTM_aist.ConnectorListener.ConnectorListener の継承関係図
OpenRTM_aist.EventPort.EventConnListener OpenRTM_aist.EventPort_pyfsm.EventConnListener

公開メンバ関数

def toString (status)
 

詳解

ConnectorListener クラス

データポートの Connector において発生する各種イベントに対するコー ルバックを実現するリスナクラスの基底クラス。

コアロジックがOutPortに対してデータ書き込み、InPort側でデータが取 得されるまでの間で発生する各種イベントをフックするコールバックを設 定することができる。なお、リスナークラスは2種類存在し、バッファフ ルや送信時のコールバックで、その時点で有効なデータをファンクタの引 数として受け取る ConnectorDataListener であり、もう一方はデータエ ンプティやバッファ読み込み時のタイムアウトなどデータが取得できない 場合などにコールされるファンクタの引数に何もとらならい ConnecotorListener がある。

ConnectorListener クラスによって関連する動作をフックしたい場合、以 下の例のように、このクラスを継承し、コネクタの情報を引数に取る以下 のようなコールバックオブジェクトを定義し、データポートの適切なコー ルバック設定関数からコールバックオブジェクトをセットする必要がある。

 class MyListener
   : public ConnectorListener
 {
 public:
   MyListener(const char* name) : m_name(name) {}
   virtual ~MyListener() {}
   virtual ReturnCode operator()(ConnectorInfo& info)
   {
     std::cout << "Data Listener: " << m_name       << std::endl;
     std::cout << "Profile::name: " << info.name    << std::endl;
     std::cout << "Profile::id:   " << info.id      << std::endl;
     std::cout << "Profile::properties: "           << std::endl;
     std::cout << info.properties;
   };
   std::string m_name;
 };
 

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

 RTC::ReturnCode_t ConsoleIn::onInitialize()
 {
     m_outOut.
         addConnectorListener(ON_BUFFER_EMPTY,
                              new MyListener("ON_BUFFER_EMPTY"));
    :
 

第1引数の "ON_BUFFER_EMPTY" は、コールバックをフックするポイントで あり、以下に列挙する値を取ることが可能である。データポートには、接 続時にデータの送受信方法について、インターフェース型、データフロー 型、サブスクリプション型等を設定することができるが、これらの設定に よりフックされるポイントは異なる。以下に、インターフェースがCORBA CDR型の場合のコールバック一覧を示す。

OutPort:

複数の ConnectorListener を保持し管理するクラス。

メソッド詳解

◆ toString()

def OpenRTM_aist.ConnectorListener.ConnectorListener.toString (   status)

ConnectorListenerType を文字列に変換

ConnectorListenerType を文字列に変換する

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

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