OpenRTM-aist-Python 2.0.2
OpenRTM_aist.ConnectorListener.ConnectorListener クラス

[詳解]

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

公開メンバ関数

 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:

  • Push型: Subscription Typeによりさらにイベントの種類が分かれる。
    • Flush: Flush型にはバッファがないため ON_BUFFER 系のイベントは発生しない
      • ON_CONNECT
      • ON_DISCONNECT
    • New型
      • ON_CONNECT
      • ON_DISCONNECT
    • Periodic型
      • ON_BUFFER_EMPTY
      • ON_BUFFER_READ_TIMEOUT
      • ON_SENDER_EMPTY
      • ON_SENDER_ERROR
      • ON_CONNECT
      • ON_DISCONNECT
  • Pull型
    • ON_BUFFER_EMPTY
    • ON_BUFFER_READ_TIMEOUT
    • ON_SENDER_EMPTY
    • ON_SENDER_TIMEOUT
    • ON_SENDER_ERROR
    • ON_CONNECT
    • ON_DISCONNECT
    InPort:
  • Push型:
    • ON_BUFFER_EMPTY
    • ON_BUFFER_READ_TIMEOUT
    • ON_CONNECT
    • ON_DISCONNECT
  • Pull型
    • ON_CONNECT
    • ON_DISCONNECT

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

メソッド詳解

◆ toString()

OpenRTM_aist.ConnectorListener.ConnectorListener.toString ( status)

ConnectorListenerType を文字列に変換

ConnectorListenerType を文字列に変換する

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

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