|
OpenRTM-aist
1.2.1
|
#include <InPortPullConnector.h>


公開メンバ関数 | |
| DATAPORTSTATUS_ENUM | InPortPullConnector (ConnectorInfo info, OutPortConsumer *consumer, ConnectorListeners &listeners, CdrBufferBase *buffer=0) |
| コンストラクタ [詳解] | |
| virtual | ~InPortPullConnector () |
| デストラクタ [詳解] | |
| virtual ReturnCode | read (cdrMemoryStream &data) |
| read 関数 [詳解] | |
| virtual ReturnCode | disconnect () |
| 接続解除関数 [詳解] | |
| virtual void | activate () |
| アクティブ化 [詳解] | |
| virtual void | deactivate () |
| 非アクティブ化 [詳解] | |
基底クラス RTC::InPortConnector に属する継承公開メンバ関数 | |
| DATAPORTSTATUS_ENUM | InPortConnector (ConnectorInfo &info, ConnectorListeners &listeners, CdrBufferBase *buffer) |
| コンストラクタ [詳解] | |
| virtual | ~InPortConnector () |
| デストラクタ [詳解] | |
| virtual const ConnectorInfo & | profile () |
| ConnectorInfo 取得 [詳解] | |
| virtual const char * | id () |
| Connector ID 取得 [詳解] | |
| virtual const char * | name () |
| Connector 名取得 [詳解] | |
| virtual CdrBufferBase * | getBuffer () |
| Buffer を取得する [詳解] | |
| virtual void | setEndian (const bool endian_type) |
| endianタイプ設定 [詳解] | |
| virtual bool | isLittleEndian () |
| endian 設定を返す [詳解] | |
| bool | setOutPort (OutPortBase *directOutPort) |
| データをダイレクトに書き込むためのOutPortのサーバントを設定する [詳解] | |
| template<typename DataType > | |
| bool | getDirectData (DataType &data) |
基底クラス RTC::ConnectorBase に属する継承公開メンバ関数 | |
| virtual | ~ConnectorBase () |
| デストラクタ [詳解] | |
限定公開メンバ関数 | |
| CdrBufferBase * | createBuffer (ConnectorInfo &info) |
| Bufferの生成 [詳解] | |
| void | onConnect () |
| 接続確立時にコールバックを呼ぶ [詳解] | |
| void | onDisconnect () |
| 接続切断時にコールバックを呼ぶ [詳解] | |
その他の継承メンバ | |
基底クラス RTC::DataPortStatus に属する継承公開型 | |
| enum | Enum { PORT_OK = 0, PORT_ERROR, BUFFER_ERROR, BUFFER_FULL, BUFFER_EMPTY, BUFFER_TIMEOUT, SEND_FULL, SEND_TIMEOUT, RECV_EMPTY, RECV_TIMEOUT, INVALID_ARGS, PRECONDITION_NOT_MET, CONNECTION_LOST, UNKNOWN_ERROR } |
基底クラス RTC::DataPortStatus に属する継承静的公開メンバ関数 | |
| static const char * | toString (DataPortStatus::Enum status) |
| DataPortStatus リターンコードを文字列に変換 [詳解] | |
基底クラス RTC::InPortConnector に属する継承限定公開変数類 | |
| Logger | rtclog |
| ロガーストリーム [詳解] | |
| ConnectorInfo | m_profile |
| ConnectorInfo. [詳解] | |
| ConnectorListeners & | m_listeners |
| ConnectorListenrs への参照 [詳解] | |
| CdrBufferBase * | m_buffer |
| Connector が保持している Buffer. [詳解] | |
| bool | m_littleEndian |
| 接続エンディアン [詳解] | |
| ConnectorListeners * | m_outPortListeners |
| OutPort 側の ConnectorListenrs への参照 [詳解] | |
| PortBase * | m_directOutPort |
| 同一プロセス上のピアOutPortのポインタ [詳解] | |
InPort の pull 型データフローのための Connector クラス。このオブ ジェクトは、接続時に dataflow_type に pull が指定された場合、 InPort によって生成・所有され、OutPortPullConnector と対になって、 データポートの pull 型のデータフローを実現する。一つの接続に対して、 一つのデータストリームを提供する唯一の Connector が対応する。 Connector は 接続時に生成される UUID 形式の ID により区別される。
InPortPullConnector は以下の三つのオブジェクトを所有し管理する。
OutPort に書き込まれたデータは OutPortPullConnector::write() に渡 され Buffer に書き込まれる。InPort::read(), InPortPullConnector::read() は結果として、OutPortConsumer::get() を呼び出し、OutPortPullConnector の持つバッファからデータを読み出 し、InPortPullConnector のもつバッファにデータを書き込む。
| DATAPORTSTATUS_ENUM RTC::InPortPullConnector::InPortPullConnector | ( | ConnectorInfo | info, |
| OutPortConsumer * | consumer, | ||
| ConnectorListeners & | listeners, | ||
| CdrBufferBase * | buffer = 0 |
||
| ) |
コンストラクタ
InPortPullConnector のコンストラクタはオブジェクト生成時に下記 を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いバッ ファ等を生成する。OutPort インターフェースのプロバイダオブジェク トへのポインタを取り、所有権を持つので、InPortPullConnector は OutPortConsumer の解体責任を持つ。各種イベントに対するコールバッ ク機構を提供する ConnectorListeners を持ち、適切なタイミングでコー ルバックを呼び出す。データバッファがもし InPortBase から提供さ れる場合はそのポインタを取る。
| info | ConnectorInfo |
| consumer | OutPortConsumer |
| listeners | ConnectorListeners 型のリスナオブジェクトリスト |
| buffer | CdrBufferBase 型のバッファ |
|
virtual |
デストラクタ
disconnect() が呼ばれ、consumer, publisher, buffer が解体・削除される。
|
inlinevirtual |
|
protected |
|
inlinevirtual |
|
virtual |
|
protected |
接続確立時にコールバックを呼ぶ
参照元 deactivate().
|
protected |
接続切断時にコールバックを呼ぶ
参照元 deactivate().
|
virtual |
read 関数
OutPortConsumer からデータを取得する。正常に読み出せた場合、戻り 値は PORT_OK となり、data に読み出されたデータが格納される。それ 以外の場合には、エラー値として BUFFER_EMPTY, TIMEOUT, PRECONDITION_NOT_MET, PORT_ERROR が返される。
RTC::InPortConnectorを実装しています。
1.8.11