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

PublisherFlush クラス [詳解]

#include <PublisherFlush.h>

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

公開メンバ関数

 PublisherFlush ()
 コンストラクタ
 
 ~PublisherFlush () override
 デストラクタ
 
DataPortStatus init (coil::Properties &prop) override
 初期化
 
DataPortStatus setConsumer (InPortConsumer *consumer) override
 InPortコンシューマのセット
 
DataPortStatus setBuffer (CdrBufferBase *buffer) override
 バッファのセット
 
::RTC::DataPortStatus setListener (ConnectorInfo &info, RTC::ConnectorListenersBase *listeners) override
 リスナを設定する。
 
DataPortStatus write (ByteDataStreamBase *data, std::chrono::nanoseconds timeout=std::chrono::nanoseconds(-1)) override
 データを書き込む
 
bool isActive () override
 アクティブ化確認
 
DataPortStatus activate () override
 アクティブ化する
 
DataPortStatus deactivate () override
 非アクティブ化する
 
- 基底クラス RTC::PublisherBase に属する継承公開メンバ関数
virtual ~PublisherBase ()=default
 デストラクタ
 
virtual DataPortStatus setBuffer (BufferBase< ByteData > *buffer)=0
 バッファのセット
 
virtual void release ()
 Publisher を破棄する。
 

限定公開メンバ関数

void onSend (ByteData &data)
 ON_SENDのリスナへ通知する。
 
void onReceived (ByteData &data)
 ON_RECEIVEDのリスナへ通知する。
 
void onReceiverFull (ByteData &data)
 ON_RECEIVER_FULLのリスナへ通知する。
 
void onReceiverTimeout (ByteData &data)
 ON_RECEIVER_TIMEOUTのリスナへ通知する。
 
void onReceiverError (ByteData &data)
 ON_RECEIVER_ERRORのリスナへ通知する。
 

詳解

PublisherFlush クラス

Flush 型 Publisher クラス バッファ内に格納されている未送信データを送信する。 データ送出を待つコンシューマを、送出する側と同じスレッドで動作させる。

構築子と解体子

◆ PublisherFlush()

RTC::PublisherFlush::PublisherFlush ( )

コンストラクタ

コンストラクタ

◆ ~PublisherFlush()

RTC::PublisherFlush::~PublisherFlush ( )
override

デストラクタ

デストラクタ

関数詳解

◆ activate()

DataPortStatus RTC::PublisherFlush::activate ( )
overridevirtual

アクティブ化する

Publisher をアクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を開始する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。

戻り値
PORT_OK 正常終了 PRECONDITION_NOT_MET 事前条件を満たさない

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

◆ deactivate()

DataPortStatus RTC::PublisherFlush::deactivate ( )
overridevirtual

非アクティブ化する

Publisher を非アクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を停止する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。

戻り値
PORT_OK 正常終了 PRECONDITION_NOT_MET 事前条件を満たさない

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

◆ init()

DataPortStatus RTC::PublisherFlush::init ( coil::Properties & prop)
overridevirtual

初期化

このクラスのオブジェクトを使用するのに先立ち、必ずこの関数を呼び 出す必要がある。ただし、この PublisherFlush は現状で初期化するパ ラメータを持たない。

引数
property本Publisherの駆動制御情報を設定したPropertyオブジェクト
戻り値
DataPortStatus PORT_OK 正常終了 INVALID_ARGS Properties が不正な値を含む

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

◆ isActive()

bool RTC::PublisherFlush::isActive ( )
overridevirtual

アクティブ化確認

Publisher はデータポートと同期して activate/deactivate される。 activate() / deactivate() 関数によって、アクティブ状態と非アクティ ブ状態が切り替わる。この関数により、現在アクティブ状態か、非アク ティブ状態かを確認することができる。

戻り値
状態確認結果(アクティブ状態:true、非アクティブ状態:false)

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

◆ onReceived()

void RTC::PublisherFlush::onReceived ( ByteData & data)
inlineprotected

ON_RECEIVEDのリスナへ通知する。

引数
datacdrMemoryStream

参照先 RTC::ConnectorListenersBase::notifyOut(), RTC::ON_RECEIVED.

◆ onReceiverError()

void RTC::PublisherFlush::onReceiverError ( ByteData & data)
inlineprotected

ON_RECEIVER_ERRORのリスナへ通知する。

引数
datacdrMemoryStream

参照先 RTC::ConnectorListenersBase::notifyOut(), RTC::ON_RECEIVER_ERROR.

◆ onReceiverFull()

void RTC::PublisherFlush::onReceiverFull ( ByteData & data)
inlineprotected

ON_RECEIVER_FULLのリスナへ通知する。

引数
datacdrMemoryStream

参照先 RTC::ConnectorListenersBase::notifyOut(), RTC::ON_RECEIVER_FULL.

◆ onReceiverTimeout()

void RTC::PublisherFlush::onReceiverTimeout ( ByteData & data)
inlineprotected

ON_RECEIVER_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

参照先 RTC::ConnectorListenersBase::notifyOut(), RTC::ON_RECEIVER_TIMEOUT.

◆ onSend()

void RTC::PublisherFlush::onSend ( ByteData & data)
inlineprotected

ON_SENDのリスナへ通知する。

引数
datacdrMemoryStream

参照先 RTC::ConnectorListenersBase::notifyOut(), RTC::ON_SEND.

◆ setBuffer()

DataPortStatus RTC::PublisherFlush::setBuffer ( CdrBufferBase * buffer)
override

バッファのセット

PublisherFlushでは、バッファを使用しないため、いかなる場合も PORT_OK を返す。

引数
bufferCDRバッファ
戻り値
PORT_OK 正常終了

◆ setConsumer()

DataPortStatus RTC::PublisherFlush::setConsumer ( InPortConsumer * consumer)
overridevirtual

InPortコンシューマのセット

この関数では、この Publisher に関連付けられるコンシューマをセットする。 コンシューマオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。

引数
consumerConsumer へのポインタ
戻り値
DataPortStatus PORT_OK 正常終了 INVALID_ARGS 引数に不正な値が含まれている

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

◆ setListener()

::RTC::DataPortStatus RTC::PublisherFlush::setListener ( ConnectorInfo & info,
RTC::ConnectorListenersBase * listeners )
overridevirtual

リスナを設定する。

Publisher に対してリスナオブジェクト ConnectorListeners を設定する。 各種リスナオブジェクトを含む ConnectorListeners をセットすることで、 バッファの読み書き、データの送信時等にこれらのリスナをコールする。 ConnectorListeners オブジェクトの所有権はポートまたは RTObject が持ち Publisher 削除時に ConnectorListeners は削除されることはない。 ConnectorListeners がヌルポインタの場合 INVALID_ARGS を返す。

引数
infoConnectorProfile をローカル化したオブジェクト ConnectorInfo
listenersリスナを多数保持する ConnectorListeners オブジェクト
戻り値
PORT_OK 正常終了 INVALID_ARGS 不正な引数

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

◆ write()

DataPortStatus RTC::PublisherFlush::write ( ByteDataStreamBase * data,
std::chrono::nanoseconds timeout = std::chrono::nanoseconds(-1) )
overridevirtual

データを書き込む

Publisher が保持するコンシューマに対してデータを書き込む。コン シューマ、リスナ等が適切に設定されていない等、Publisher オブジェ クトが正しく初期化されていない場合、この関数を呼び出すとエラーコー ド PRECONDITION_NOT_MET が返され、コンシューマへの書き込み等の操 作は一切行われない。

コンシューマへの書き込みに対して、コンシューマがフル状態、コン シューマのエラー、コンシューマへの書き込みがタイムアウトした場合 にはそれぞれ、エラーコード SEND_FULL, SEND_ERROR, SEND_TIMEOUT が返される。

これら以外のエラーの場合、PORT_ERROR が返される。

引数
data書き込むデータ
timeoutタイムアウト時間
戻り値
PORT_OK 正常終了 PRECONDITION_NO_MET consumer, buffer, listener等が適切に設定 されていない等、このオブジェクトの事前条件 を満たさない場合。 SEND_FULL 送信先がフル状態 SEND_TIMEOUT 送信先がタイムアウトした CONNECTION_LOST 接続が切断されたことを検知した。

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


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