OutPortPushConnector クラス. [詳細]
#include <OutPortPushConnector.h>
Public メソッド | |
| DATAPORTSTATUS_ENUM | OutPortPushConnector (ConnectorInfo info, InPortConsumer *consumer, ConnectorListeners &listeners, CdrBufferBase *buffer=0) |
| コンストラクタ | |
| virtual | ~OutPortPushConnector () |
| デストラクタ | |
| virtual ReturnCode | write (const cdrMemoryStream &data) |
| データの書き込み | |
| virtual ReturnCode | disconnect () |
| 接続解除 | |
| virtual void | activate () |
| アクティブ化 | |
| virtual void | deactivate () |
| 非アクティブ化 | |
| virtual CdrBufferBase * | getBuffer () |
| Buffer を取得する. | |
Protected メソッド | |
| virtual PublisherBase * | createPublisher (ConnectorInfo &info) |
| Publisherの生成. | |
| virtual CdrBufferBase * | createBuffer (ConnectorInfo &info) |
| Bufferの生成. | |
| void | onConnect () |
| 接続確立時にコールバックを呼ぶ | |
| void | onDisconnect () |
| 接続切断時にコールバックを呼ぶ | |
OutPortPushConnector クラス.
OutPort の push 型データフローのための Connector クラス。このオブ ジェクトは、接続時に dataflow_type に push が指定された場合、 OutPort によって生成・所有され、InPortPushConnector と対になって、 データポートの push 型のデータフローを実現する。一つの接続に対して、 一つのデータストリームを提供する唯一の Connector が対応する。 Connector は 接続時に生成される UUID 形式の ID により区別される。
OutPortPushConnector は以下の三つのオブジェクトを所有し管理する。
OutPort に書き込まれたデータは OutPortPushConnector::write() に渡 され、Connector は Publisher にデータを書き込む。Publisher はその 特性に従ってデータを Buffer から取得し InPortConsumer に対して push することで InPort にデータが転送される。
| DATAPORTSTATUS_ENUM RTC::OutPortPushConnector::OutPortPushConnector | ( | ConnectorInfo | info, | |
| InPortConsumer * | consumer, | |||
| ConnectorListeners & | listeners, | |||
| CdrBufferBase * | buffer = 0 | |||
| ) |
コンストラクタ
OutPortPushConnector のコンストラクタはオブジェクト生成時に下記 を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いパブ リッシャやバッファ等を生成する。InPort インターフェースに対する コンシューマオブジェクトへのポインタを取り、所有権を持つので、 OutPortPushConnector は InPortConsumer の解体責任を持つ。各種イ ベントに対するコールバック機構を提供する ConnectorListeners を持 ち、適切なタイミングでコールバックを呼び出す。データバッファがも し OutPortBase から提供される場合はそのポインタを取る。
| info | ConnectorInfo | |
| consumer | InPortConsumer | |
| listeners | ConnectorListeners 型のリスナオブジェクトリスト | |
| buffer | CdrBufferBase 型のバッファ |
| virtual RTC::OutPortPushConnector::~OutPortPushConnector | ( | ) | [virtual] |
デストラクタ
disconnect() が呼ばれ、consumer, publisher, buffer が解体・削除される。
| virtual void RTC::OutPortPushConnector::activate | ( | ) | [virtual] |
| virtual CdrBufferBase* RTC::OutPortPushConnector::createBuffer | ( | ConnectorInfo & | info | ) | [protected, virtual] |
Bufferの生成.
与えられた接続情報に基づきバッファを生成する。
| info | 接続情報 |
| virtual PublisherBase* RTC::OutPortPushConnector::createPublisher | ( | ConnectorInfo & | info | ) | [protected, virtual] |
Publisherの生成.
与えられた接続情報に基づきパブリッシャを生成する。
| info | 接続情報 |
| virtual void RTC::OutPortPushConnector::deactivate | ( | ) | [virtual] |
| virtual ReturnCode RTC::OutPortPushConnector::disconnect | ( | ) | [virtual] |
| virtual CdrBufferBase* RTC::OutPortPushConnector::getBuffer | ( | ) | [virtual] |
| void RTC::OutPortPushConnector::onConnect | ( | ) | [protected] |
接続確立時にコールバックを呼ぶ
| void RTC::OutPortPushConnector::onDisconnect | ( | ) | [protected] |
接続切断時にコールバックを呼ぶ
| virtual ReturnCode RTC::OutPortPushConnector::write | ( | const cdrMemoryStream & | data | ) | [virtual] |
データの書き込み
Publisherに対してデータを書き込み、これにより対応するInPortへデー タが転送される。正常終了した場合 PORT_OK が返される。それ以外の 場合、エラー値として、CONNECTION_LOST, BUFFER_FULL, BUFFER_ERROR, PORT_ERROR, BUFFER_TIMEOUT, PRECONDITION_NO_MET が 返される。
RTC::OutPortConnectorを実装しています。
1.6.3