|
OpenRTM-aist 2.0.2
|
#include <InPortPushConnector.h>


公開メンバ関数 | |
| InPortPushConnector (ConnectorInfo info, InPortProvider *provider, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr) | |
| コンストラクタ | |
| ~InPortPushConnector () override | |
| デストラクタ | |
| DataPortStatus | read (ByteDataStreamBase *data) override |
| データの読み出し | |
| DataPortStatus | disconnect () override |
| 接続解除 | |
| void | activate () override |
| アクティブ化 | |
| void | deactivate () override |
| 非アクティブ化 | |
基底クラス RTC::InPortConnector に属する継承公開メンバ関数 | |
| InPortConnector (ConnectorInfo &info, ConnectorListenersBase *listeners, CdrBufferBase *buffer) | |
| コンストラクタ | |
| ~InPortConnector () override | |
| デストラクタ | |
| const ConnectorInfo & | profile () override |
| ConnectorInfo 取得 | |
| const char * | id () override |
| Connector ID 取得 | |
| const char * | name () override |
| Connector 名取得 | |
| CdrBufferBase * | getBuffer () override |
| Buffer を取得する | |
| template<class DataType > | |
| DataPortStatus | read (DataType &data) |
| データ型の変換テンプレート | |
| virtual void | setEndian (bool endian_type) |
| endianタイプ設定 | |
| virtual bool | isLittleEndian () |
| endian 設定を返す | |
| bool | setOutPort (OutPortBase *directOutPort) |
| データをダイレクトに書き込むためのOutPortのサーバントを設定する | |
| template<typename DataType > | |
| bool | getDirectData (DataType &data) |
| ダイレクト接続時に変数渡しでデータを取得する | |
| virtual void | unsubscribeInterface (const coil::Properties &prop) |
| コンシューマのインターフェースの登録を取り消す | |
基底クラス RTC::ConnectorBase に属する継承公開メンバ関数 | |
| virtual | ~ConnectorBase ()=default |
| デストラクタ | |
限定公開メンバ関数 | |
| virtual CdrBufferBase * | createBuffer (ConnectorInfo &info) |
| Bufferの生成 | |
| BufferStatus | write (ByteData &cdr) override |
| void | onConnect () |
| 接続確立時にコールバックを呼ぶ | |
| void | onDisconnect () |
| 接続切断時にコールバックを呼ぶ | |
| void | onBufferRead (ByteData &data) |
| void | onBufferEmpty (ByteData &) |
| void | onBufferReadTimeout (ByteData &) |
その他の継承メンバ | |
基底クラス RTC::InPortConnector に属する継承限定公開変数類 | |
| Logger | rtclog |
| ロガーストリーム | |
| ConnectorInfo | m_profile |
| ConnectorInfo | |
| ConnectorListenersBase * | m_listeners |
| ConnectorListenrs への参照 | |
| CdrBufferBase * | m_buffer |
| Connector が保持している Buffer | |
| bool | m_littleEndian |
| 接続エンディアン | |
| ConnectorListenersBase * | m_outPortListeners |
| OutPort 側の ConnectorListenrs への参照 | |
| PortBase * | m_directOutPort |
| 同一プロセス上のピアOutPortのポインタ | |
| std::string | m_marshaling_type |
| シリアライザの名前 | |
| ByteDataStreamBase * | m_cdr |
| シリアライザへの参照 | |
InPort の push 型データフローのための Connector クラス。このオブ ジェクトは、接続時に dataflow_type に push が指定された場合、 InPort によって生成・所有され、OutPortPushConnector と対になって、 データポートの push 型のデータフローを実現する。一つの接続に対して、 一つのデータストリームを提供する唯一の Connector が対応する。 Connector は 接続時に生成される UUID 形式の ID により区別される。
InPortPushConnector は以下の三つのオブジェクトを所有し管理する。
OutPort に書き込まれたデータは、OutPortConnector によって InPortProvider::put() にデータが渡される。書き込まれたデータは Connector 内で Buffer にデータが書き込まれる。
| RTC::InPortPushConnector::InPortPushConnector | ( | ConnectorInfo | info, |
| InPortProvider * | provider, | ||
| ConnectorListenersBase * | listeners, | ||
| CdrBufferBase * | buffer = nullptr ) |
コンストラクタ
InPortPushConnector のコンストラクタはオブジェクト生成時に下記を 引数にとる。ConnectorInfo は接続情報を含み、この情報に従いバッファ 等を生成する。InPort インターフェースのプロバイダオブジェクトへ のポインタを取り、所有権を持つので、InPortPushConnector は InPortProvider の解体責任を持つ。各種イベントに対するコールバッ ク機構を提供する ConnectorListeners を持ち、適切なタイミングでコー ルバックを呼び出す。データバッファがもし InPortBase から提供され る場合はそのポインタを取る。
| info | ConnectorInfo |
| provider | InPortProvider |
| listeners | ConnectorListeners 型のリスナオブジェクトリスト |
| buffer | CdrBufferBase 型のバッファ |
@elsek
Constructor
InPortPushConnector's constructor is given the following arguments. According to ConnectorInfo which includes connection information, a buffer is created. It is also given a pointer to the provider object for the InPort interface. The owner-ship of the pointer is owned by this InPortPushConnector, it has responsibility to destruct the InPortProvider. InPortPushConnector also has ConnectorListeners to provide event callback mechanisms, and they would be called at the proper timing. If data buffer is given by InPortBase, the pointer to the buffer is also given as arguments.
| info | ConnectorInfo |
| provider | InPortProvider |
| listeners | ConnectorListeners type lsitener object list |
| buffer | CdrBufferBase type buffer |
|
override |
デストラクタ
disconnect() が呼ばれ、consumer, publisher, buffer が解体・削除される。
|
inlineoverridevirtual |
|
protectedvirtual |
Bufferの生成
与えられた接続情報に基づきバッファを生成する。
| info | 接続情報 |
|
inlineoverridevirtual |
|
overridevirtual |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
protected |
接続確立時にコールバックを呼ぶ
|
protected |
接続切断時にコールバックを呼ぶ
|
overridevirtual |
データの読み出し
バッファからデータを読み出す。正常に読み出せた場合、戻り値は PORT_OK となり、data に読み出されたデータが格納される。それ以外 の場合には、エラー値として BUFFER_EMPTY, TIMEOUT, PRECONDITION_NOT_MET, PORT_ERROR が返される。
RTC::InPortConnectorを実装しています。
|
overrideprotectedvirtual |
RTC::InPortConnectorを再実装しています。