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

Publisher 基底クラス [詳解]

#include <PublisherBase.h>

RTC::PublisherBase の継承関係図

公開メンバ関数

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

詳解

Publisher 基底クラス

データ送出タイミングを管理して送出を駆動するPublisher* の基底クラス。 各種 Publisher はこのクラスを継承して詳細を実装する。

から
0.4.0

データ送出タイミングを管理して送出を駆動するPublisher* の基底クラス。 各種 Publisher はこのクラスを継承して詳細を実装する。

から
0.4.0

データ送出タイミングを管理して送出を駆動するPublisher* の基底クラス。 各種 Publisher はこのクラスを継承して詳細を実装する。

から
0.4.0

構築子と解体子

◆ ~PublisherBase()

virtual RTC::PublisherBase::~PublisherBase ( )
virtualdefault

デストラクタ

関数詳解

◆ activate()

virtual DataPortStatus RTC::PublisherBase::activate ( )
pure virtual

アクティブ化する

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

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

RTC::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。

◆ deactivate()

virtual DataPortStatus RTC::PublisherBase::deactivate ( )
pure virtual

非アクティブ化する

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

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

RTC::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。

◆ init()

virtual DataPortStatus RTC::PublisherBase::init ( coil::Properties & prop)
pure virtual

設定初期化

InPortConsumerの各種設定を行う。実装クラスでは、与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。

引数
prop設定情報

RTC::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。

◆ isActive()

virtual bool RTC::PublisherBase::isActive ( )
pure virtual

アクティブ化確認

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

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

RTC::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。

◆ release()

virtual void RTC::PublisherBase::release ( )
inlinevirtual

Publisher を破棄する。

当該 Publisher を破棄する。 当該 Publisher が不要になった場合に PublisherFactory から呼び出される。

◆ setBuffer()

virtual DataPortStatus RTC::PublisherBase::setBuffer ( BufferBase< ByteData > * buffer)
pure virtual

バッファのセット

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

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

◆ setConsumer()

virtual DataPortStatus RTC::PublisherBase::setConsumer ( InPortConsumer * consumer)
pure virtual

InPortコンシューマのセット

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

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

RTC::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。

◆ setListener()

virtual DataPortStatus RTC::PublisherBase::setListener ( ConnectorInfo & info,
ConnectorListenersBase * listeners )
pure virtual

リスナを設定する。

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

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

RTC::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。

◆ write()

virtual DataPortStatus RTC::PublisherBase::write ( ByteDataStreamBase * data,
std::chrono::nanoseconds timeout )
pure virtual

データを書き込む

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::PublisherFlush, RTC::PublisherNew, RTC::PublisherPeriodicで実装されています。


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