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

InPortPushConnector クラス [詳解]

#include <InPortPushConnector.h>

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

公開メンバ関数

 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 ConnectorInfoprofile () override
 ConnectorInfo 取得
 
const char * id () override
 Connector ID 取得
 
const char * name () override
 Connector 名取得
 
CdrBufferBasegetBuffer () 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 CdrBufferBasecreateBuffer (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
 
ConnectorListenersBasem_listeners
 ConnectorListenrs への参照
 
CdrBufferBasem_buffer
 Connector が保持している Buffer
 
bool m_littleEndian
 接続エンディアン
 
ConnectorListenersBasem_outPortListeners
 OutPort 側の ConnectorListenrs への参照
 
PortBasem_directOutPort
 同一プロセス上のピアOutPortのポインタ
 
std::string m_marshaling_type
 シリアライザの名前
 
ByteDataStreamBasem_cdr
 シリアライザへの参照
 

詳解

InPortPushConnector クラス

InPort の push 型データフローのための Connector クラス。このオブ ジェクトは、接続時に dataflow_type に push が指定された場合、 InPort によって生成・所有され、OutPortPushConnector と対になって、 データポートの push 型のデータフローを実現する。一つの接続に対して、 一つのデータストリームを提供する唯一の Connector が対応する。 Connector は 接続時に生成される UUID 形式の ID により区別される。

InPortPushConnector は以下の三つのオブジェクトを所有し管理する。

OutPort に書き込まれたデータは、OutPortConnector によって InPortProvider::put() にデータが渡される。書き込まれたデータは Connector 内で Buffer にデータが書き込まれる。

から
1.0.0

構築子と解体子

◆ InPortPushConnector()

RTC::InPortPushConnector::InPortPushConnector ( ConnectorInfo info,
InPortProvider * provider,
ConnectorListenersBase * listeners,
CdrBufferBase * buffer = nullptr )

コンストラクタ

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

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

@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.

引数
infoConnectorInfo
providerInPortProvider
listenersConnectorListeners type lsitener object list
bufferCdrBufferBase type buffer

◆ ~InPortPushConnector()

RTC::InPortPushConnector::~InPortPushConnector ( )
override

デストラクタ

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

関数詳解

◆ activate()

void RTC::InPortPushConnector::activate ( )
inlineoverridevirtual

アクティブ化

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

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

◆ createBuffer()

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

Bufferの生成

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

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

◆ deactivate()

void RTC::InPortPushConnector::deactivate ( )
inlineoverridevirtual

非アクティブ化

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

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

◆ disconnect()

DataPortStatus RTC::InPortPushConnector::disconnect ( )
overridevirtual

接続解除

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

戻り値
PORT_OK

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

◆ onBufferEmpty()

void RTC::InPortPushConnector::onBufferEmpty ( ByteData & )
inlineprotected

◆ onBufferRead()

void RTC::InPortPushConnector::onBufferRead ( ByteData & data)
inlineprotected

◆ onBufferReadTimeout()

void RTC::InPortPushConnector::onBufferReadTimeout ( ByteData & )
inlineprotected

◆ onConnect()

void RTC::InPortPushConnector::onConnect ( )
protected

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

◆ onDisconnect()

void RTC::InPortPushConnector::onDisconnect ( )
protected

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

◆ read()

DataPortStatus RTC::InPortPushConnector::read ( ByteDataStreamBase * data)
overridevirtual

データの読み出し

バッファからデータを読み出す。正常に読み出せた場合、戻り値は PORT_OK となり、data に読み出されたデータが格納される。それ以外 の場合には、エラー値として BUFFER_EMPTY, TIMEOUT, PRECONDITION_NOT_MET, PORT_ERROR が返される。

戻り値
PORT_OK 正常終了 BUFFER_EMPTY バッファは空である TIMEOUT タイムアウトした PRECONDITION_NOT_MET 事前条件を満たさない PORT_ERROR その他のエラー

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

◆ write()

BufferStatus RTC::InPortPushConnector::write ( ByteData & cdr)
overrideprotectedvirtual

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


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