クラス RTC::OutPortConsumer

OutPortConsumer 抽象クラス. [詳細]

#include <OutPortConsumer.h>

RTC::OutPortConsumerに対する継承グラフ
RTC::DataPortStatus RTC::OutPortCorbaCdrConsumer

すべてのメンバ一覧

構成

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

Public メソッド

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

Protected 変数

Logger rtclog
 ロガーストリーム

説明

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

コンストラクタとデストラクタ

virtual DATAPORTSTATUS_ENUM RTC::OutPortConsumer::~OutPortConsumer ( void   )  [inline, virtual]

デストラクタ

仮想デストラクタ。


関数

virtual ReturnCode RTC::OutPortConsumer::get ( cdrMemoryStream &  data  )  [pure virtual]

データを受信する

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

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

RTC::OutPortCorbaCdrConsumerで実装されています。

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

設定初期化

OutPortConsumerの各種設定を行う。実装クラスでは、与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。

引数:
prop 設定情報

RTC::OutPortCorbaCdrConsumerで実装されています。

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

バッファをセットする

OutPortConsumerがデータを取り出すバッファをセットする。 すでにセットされたバッファがある場合、以前のバッファへの ポインタに対して上書きされる。 OutPortProviderはバッファの所有権を仮定していないので、 バッファの削除はユーザの責任で行わなければならない。

引数:
buffer OutPortProviderがデータを取り出すバッファへのポインタ

RTC::OutPortCorbaCdrConsumerで実装されています。

virtual void RTC::OutPortConsumer::setListener ( ConnectorInfo info,
ConnectorListeners listeners 
) [pure virtual]

リスナを設定する。

OutPort はデータ送信処理における各種イベントに対して特定のリスナ オブジェクトをコールするコールバック機構を提供する。詳細は ConnectorListener.hConnectorDataListener, ConnectorListener 等を参照のこと。OutPortProvider のサブクラスでは、与えられたリス ナを適切なタイミングで呼び出すべきである。ただし、すべてのリスナ を呼び出す必要はない。

引数:
info 接続情報
listeners リスナオブジェクト

RTC::OutPortCorbaCdrConsumerで実装されています。

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

データ受信通知への登録

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

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

RTC::OutPortCorbaCdrConsumerで実装されています。

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

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

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

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

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

RTC::OutPortCorbaCdrConsumerで実装されています。

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


変数

Logger RTC::OutPortConsumer::rtclog [mutable, protected]

ロガーストリーム

OpenRTM-aistに対してFri Oct 28 18:31:16 2016に生成されました。  doxygen 1.6.3