OpenRTM-aist 2.1.0
読み取り中…
検索中…
一致する文字列を見つけられません
クラス | 公開メンバ関数 | 全メンバ一覧
RTC::OutPortConsumer クラスabstract

OutPortConsumer 抽象クラス [詳解]

#include <OutPortConsumer.h>

RTC::OutPortConsumer の継承関係図
Inheritance graph
[凡例]

クラス

struct  subscribe
 Interface接続用Functor [詳解]
 
struct  unsubscribe
 Interface接続解除用Functor [詳解]
 

公開メンバ関数

virtual ~OutPortConsumer ()=default
 デストラクタ
 
virtual void init (coil::Properties &prop)=0
 設定初期化
 
virtual void setBuffer (CdrBufferBase *buffer)=0
 バッファをセットする
 
virtual void setListener (ConnectorInfo &info, ConnectorListenersBase *listeners)=0
 リスナを設定する。
 
virtual DataPortStatus get (ByteData &data)=0
 データを受信する
 
virtual bool subscribeInterface (const SDOPackage::NVList &properties)=0
 データ受信通知への登録
 
virtual void unsubscribeInterface (const SDOPackage::NVList &properties)=0
 データ受信通知からの登録解除
 

詳解

OutPortConsumer 抽象クラス

OutPort の REQUIRED インターフェースを実装するための抽象基底クラス。 このサブクラスのオブジェクトは InPort に属し、pull 型のデータスト リームを実現する。InPort に対して新しいインターフェースを実装する 場合には、このクラスを継承し、以下の関数を実装する必要がある。

さらに、以下の仮想関数に、ConnectorProfile から必要とする情報を取 得するなど、接続を確立あるいは接続の切断を実行するために必要な処理 を実装しなければならない。

InPortOutPortConsumer のファクトリ管理クラスに対して利用可能 な OutPortConsumer を問合せ、提供可能なインターフェースタイプを外 部に宣言する。従って、InPort に対して REQUIRED インターフェース を提供する OutPortConsumer のサブクラスは、OutPortConsumerFactory にファクトリ関数を登録する必要がある。

RTC::OutPortConsumerFactory::instance().addFactory() を、

を与えて呼び出す必要がある。以下は、ファクトリへの登録と、それを初 期化関数とした例である。

extern "C"
{
  void OutPortCorbaCdrConsumerInit(void)
  {
    RTC::OutPortConsumerFactory&
                        factory(RTC::OutPortConsumerFactory::instance());
    factory.addFactory("corba_cdr",
                       ::coil::Creator<RTC::OutPortConsumer,
                                       RTC::OutPortCorbaCdrConsumer>,
                       ::coil::Destructor<RTC::OutPortConsumer,
                                          RTC::OutPortCorbaCdrConsumer>);
  }
};

この例のように、ファクトリへの登録を初期化関数として、extern "C" によりシンボルを参照可能にしておく。こうすることで、 OutPortConsumer を共有オブジェクト化 (DLL化) して動的ロード可能に し、プロバイダの型を動的に追加することが可能となる。

から
0.4.0

構築子と解体子

◆ ~OutPortConsumer()

virtual RTC::OutPortConsumer::~OutPortConsumer ( )
virtualdefault

デストラクタ

仮想デストラクタ。

関数詳解

◆ get()

virtual DataPortStatus RTC::OutPortConsumer::get ( ByteData data)
pure virtual

データを受信する

データ受信を実行するための純粋仮想関数。 具象クラスでは、それぞれの方法でリモートのOutPortからデータを 受信するロジックを実装する。 受信に関する状態に応じて以下の戻り値を返す。

引数
data受信データ
戻り値
PORT_OK 正常終了 BUFFER_TIMEOUT タイムアウトした RECV_EMPTY 取得先のバッファが空である。 CONNECTION_LOST 接続が切断された PORT_ERROR エラー UNKNOWN_ERROR 本来ありえないエラー

RTC::OutPortCorbaCdrConsumer, RTC::OutPortDirectConsumer, RTC::OutPortDSConsumer, RTC::OutPortSHMConsumerで実装されています。

◆ init()

virtual void RTC::OutPortConsumer::init ( coil::Properties &  prop)
pure virtual

◆ setBuffer()

virtual void RTC::OutPortConsumer::setBuffer ( CdrBufferBase buffer)
pure virtual

バッファをセットする

RTC::OutPortCorbaCdrConsumer, RTC::OutPortDirectConsumer, RTC::OutPortDSConsumer, RTC::OutPortSHMConsumerで実装されています。

◆ setListener()

virtual void RTC::OutPortConsumer::setListener ( ConnectorInfo info,
ConnectorListenersBase listeners 
)
pure virtual

リスナを設定する。

RTC::OutPortCorbaCdrConsumer, RTC::OutPortDirectConsumer, RTC::OutPortDSConsumer, RTC::OutPortSHMConsumerで実装されています。

◆ subscribeInterface()

virtual bool RTC::OutPortConsumer::subscribeInterface ( const SDOPackage::NVList &  properties)
pure virtual

データ受信通知への登録

指定されたプロパティ情報に基づいて、データ受信通知に登録するための 純粋仮想関数。

引数
properties登録用プロパティ
戻り値
登録処理結果(登録成功:true、登録失敗:false)

RTC::OutPortCorbaCdrConsumer, RTC::OutPortDirectConsumer, RTC::OutPortDSConsumer, RTC::OutPortSHMConsumerで実装されています。

参照元 RTC::OutPortConsumer::subscribe::operator()().

◆ unsubscribeInterface()

virtual void RTC::OutPortConsumer::unsubscribeInterface ( const SDOPackage::NVList &  properties)
pure virtual

データ受信通知からの登録解除

データ受信通知からの登録を解除するための純粋仮想関数。

引数
properties登録解除用プロパティ
戻り値
登録解除処理結果(登録解除成功:true、登録解除失敗:false)

RTC::OutPortCorbaCdrConsumer, RTC::OutPortDirectConsumer, RTC::OutPortDSConsumer, RTC::OutPortSHMConsumerで実装されています。

参照元 RTC::OutPortConsumer::unsubscribe::operator()().


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