OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::OutPortPushConnector クラス

OutPortPushConnector クラス [詳解]

#include <OutPortPushConnector.h>

RTC::OutPortPushConnector の継承関係図
RTC::OutPortPushConnector 連携図

公開メンバ関数

 OutPortPushConnector (ConnectorInfo info, InPortConsumer *consumer, ConnectorListenersBase *listeners, CdrBufferBase *buffer=nullptr)
 コンストラクタ
 
 ~OutPortPushConnector () override
 デストラクタ
 
DataPortStatus write (RTC::ByteDataStreamBase *data) override
 データの書き込み
 
DataPortStatus disconnect () override
 接続解除
 
void activate () override
 アクティブ化
 
void deactivate () override
 非アクティブ化
 
CdrBufferBasegetBuffer () override
 Buffer を取得する
 
void unsubscribeInterface (const coil::Properties &prop) override
 コンシューマのインターフェースの登録を取り消す
 
- 基底クラス RTC::OutPortConnector に属する継承公開メンバ関数
 OutPortConnector (ConnectorInfo &info, ConnectorListenersBase *listeners)
 コンストラクタ
 
 ~OutPortConnector () override
 デストラクタ
 
const ConnectorInfoprofile () override
 Profile 取得
 
const char * id () override
 Connector ID 取得
 
const char * name () override
 Connector 名取得
 
virtual void setEndian (bool endian_type)
 endianタイプ設定
 
virtual bool isLittleEndian ()
 endian 設定を返す
 
template<class DataType >
DataPortStatus write (DataType &data)
 データ型の変換テンプレート
 
virtual BufferStatus read (ByteData &data)
 
bool setInPort (InPortBase *directInPort)
 
virtual void setPullDirectMode ()
 ダイレクト接続モードに設定
 
virtual bool pullDirectMode ()
 ダイレクト接続モードかの判定
 
- 基底クラス RTC::ConnectorBase に属する継承公開メンバ関数
virtual ~ConnectorBase ()=default
 デストラクタ
 

限定公開メンバ関数

virtual PublisherBasecreatePublisher (ConnectorInfo &info)
 Publisherの生成
 
virtual CdrBufferBasecreateBuffer (ConnectorInfo &info)
 Bufferの生成
 
void onConnect ()
 接続確立時にコールバックを呼ぶ
 
void onDisconnect ()
 接続切断時にコールバックを呼ぶ
 

その他の継承メンバ

- 基底クラス RTC::OutPortConnector に属する継承限定公開変数類
Logger rtclog
 ロガーストリーム
 
ConnectorInfo m_profile
 Port の PortProfile
 
bool m_littleEndian
 接続エンディアン
 
PortBasem_directInPort
 同一プロセス上のピアInPortのポインタ
 
ConnectorListenersBasem_listeners
 ConnectorListenrs への参照
 
ConnectorListenersBasem_inPortListeners
 InPort 側の ConnectorListenrs への参照
 
bool m_directMode
 ダイレクト接続のフラグ Trueでダイレクト接続モード
 
std::string m_marshaling_type
 シリアライザの名前
 
ByteDataStreamBasem_cdr
 

詳解

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 にデータが転送される。

から
1.0.0

構築子と解体子

◆ OutPortPushConnector()

RTC::OutPortPushConnector::OutPortPushConnector ( ConnectorInfo info,
InPortConsumer * consumer,
ConnectorListenersBase * listeners,
CdrBufferBase * buffer = nullptr )

コンストラクタ

OutPortPushConnector のコンストラクタはオブジェクト生成時に下記 を引数にとる。ConnectorInfo は接続情報を含み、この情報に従いパブ リッシャやバッファ等を生成する。InPort インターフェースに対する コンシューマオブジェクトへのポインタを取り、所有権を持つので、 OutPortPushConnectorInPortConsumer の解体責任を持つ。各種イ ベントに対するコールバック機構を提供する ConnectorListeners を持 ち、適切なタイミングでコールバックを呼び出す。データバッファがも し OutPortBase から提供される場合はそのポインタを取る。

引数
infoConnectorInfo
consumerInPortConsumer
listenersConnectorListeners 型のリスナオブジェクトリスト
bufferCdrBufferBase 型のバッファ

◆ ~OutPortPushConnector()

RTC::OutPortPushConnector::~OutPortPushConnector ( )
override

デストラクタ

disconnect() が呼ばれ、consumer, publisher, buffer が解体・削除される。

関数詳解

◆ activate()

void RTC::OutPortPushConnector::activate ( )
overridevirtual

アクティブ化

このコネクタをアクティブ化する

RTC::ConnectorBaseを実装しています。

◆ createBuffer()

virtual CdrBufferBase * RTC::OutPortPushConnector::createBuffer ( ConnectorInfo & info)
protectedvirtual

Bufferの生成

与えられた接続情報に基づきバッファを生成する。

引数
info接続情報
戻り値
バッファへのポインタ

◆ createPublisher()

virtual PublisherBase * RTC::OutPortPushConnector::createPublisher ( ConnectorInfo & info)
protectedvirtual

Publisherの生成

与えられた接続情報に基づきパブリッシャを生成する。

引数
info接続情報
戻り値
パブリッシャへのポインタ

◆ deactivate()

void RTC::OutPortPushConnector::deactivate ( )
overridevirtual

非アクティブ化

このコネクタを非アクティブ化する

RTC::ConnectorBaseを実装しています。

◆ disconnect()

DataPortStatus RTC::OutPortPushConnector::disconnect ( )
overridevirtual

接続解除

consumer, publisher, buffer が解体・削除される。

RTC::OutPortConnectorを実装しています。

◆ getBuffer()

CdrBufferBase * RTC::OutPortPushConnector::getBuffer ( )
overridevirtual

Buffer を取得する

Connector が保持している Buffer を返す

RTC::OutPortConnectorを実装しています。

◆ onConnect()

void RTC::OutPortPushConnector::onConnect ( )
protected

接続確立時にコールバックを呼ぶ

◆ onDisconnect()

void RTC::OutPortPushConnector::onDisconnect ( )
protected

接続切断時にコールバックを呼ぶ

◆ unsubscribeInterface()

void RTC::OutPortPushConnector::unsubscribeInterface ( const coil::Properties & prop)
overridevirtual

コンシューマのインターフェースの登録を取り消す

引数
propコネクタプロファイルのプロパティ

RTC::OutPortConnectorを再実装しています。

◆ write()

DataPortStatus RTC::OutPortPushConnector::write ( RTC::ByteDataStreamBase * data)
overridevirtual

データの書き込み

Publisherに対してデータを書き込み、これにより対応するInPortへデー タが転送される。正常終了した場合 PORT_OK が返される。それ以外の 場合、エラー値として、CONNECTION_LOST, BUFFER_FULL, BUFFER_ERROR, PORT_ERROR, BUFFER_TIMEOUT, PRECONDITION_NO_MET が 返される。

戻り値
PORT_OK 正常終了 CONNECTION_LOST 接続がロストした BUFFER_FULL バッファが一杯である BUFFER_ERROR バッファエラー BUFFER_TIMEOUT バッファへの書き込みがタイムアウトした PRECONDITION_NOT_MET 事前条件を満たさない PORT_ERROR その他のエラー

RTC::OutPortConnectorを実装しています。


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