Publisher 基底クラス. [詳細]
#include <PublisherBase.h>
Public メソッド | |
virtual DATAPORTSTATUS_ENUM | ~PublisherBase (void) |
デストラクタ | |
virtual ReturnCode | init (coil::Properties &prop)=0 |
設定初期化 | |
virtual ReturnCode | setConsumer (InPortConsumer *consumer)=0 |
InPortコンシューマのセット. | |
virtual ReturnCode | setBuffer (BufferBase< cdrMemoryStream > *buffer)=0 |
バッファのセット | |
virtual ReturnCode | setListener (ConnectorInfo &info, ConnectorListeners *listeners)=0 |
リスナを設定する。 | |
virtual ReturnCode | write (const cdrMemoryStream &data, unsigned long sec, unsigned long usec)=0 |
データを書き込む | |
virtual bool | isActive ()=0 |
アクティブ化確認 | |
virtual ReturnCode | activate ()=0 |
アクティブ化する | |
virtual ReturnCode | deactivate ()=0 |
非アクティブ化する | |
virtual void | release () |
Publisher を破棄する。. |
Publisher 基底クラス.
データ送出タイミングを管理して送出を駆動するPublisher* の基底クラス。 各種 Publisher はこのクラスを継承して詳細を実装する。
virtual DATAPORTSTATUS_ENUM RTC::PublisherBase::~PublisherBase | ( | void | ) | [inline, virtual] |
デストラクタ
virtual ReturnCode RTC::PublisherBase::activate | ( | ) | [pure virtual] |
アクティブ化する
Publisher をアクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を開始する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。
virtual ReturnCode RTC::PublisherBase::deactivate | ( | ) | [pure virtual] |
非アクティブ化する
Publisher を非アクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を停止する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。
virtual ReturnCode RTC::PublisherBase::init | ( | coil::Properties & | prop | ) | [pure virtual] |
設定初期化
InPortConsumerの各種設定を行う。実装クラスでは、与えられた Propertiesから必要な情報を取得して各種設定を行う。この init() 関 数は、OutPortProvider生成直後および、接続時にそれぞれ呼ばれる可 能性がある。したがって、この関数は複数回呼ばれることを想定して記 述されるべきである。
prop | 設定情報 |
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。
virtual bool RTC::PublisherBase::isActive | ( | ) | [pure virtual] |
アクティブ化確認
Publisher はデータポートと同期して activate/deactivate される。 activate() / deactivate() 関数によって、アクティブ状態と非アクティ ブ状態が切り替わる。この関数により、現在アクティブ状態か、非アク ティブ状態かを確認することができる。
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。
virtual void RTC::PublisherBase::release | ( | ) | [inline, virtual] |
Publisher を破棄する。.
当該 Publisher を破棄する。 当該 Publisher が不要になった場合に PublisherFactory から呼び出される。
virtual ReturnCode RTC::PublisherBase::setBuffer | ( | BufferBase< cdrMemoryStream > * | buffer | ) | [pure virtual] |
バッファのセット
この関数では、この Publisher に関連付けられるバッファをセットする。 バッファオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。
buffer | CDR buffer へのポインタ |
virtual ReturnCode RTC::PublisherBase::setConsumer | ( | InPortConsumer * | consumer | ) | [pure virtual] |
InPortコンシューマのセット.
この関数では、この Publisher に関連付けられるコンシューマをセットする。 コンシューマオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。
consumer | Consumer へのポインタ |
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。
virtual ReturnCode RTC::PublisherBase::setListener | ( | ConnectorInfo & | info, | |
ConnectorListeners * | listeners | |||
) | [pure virtual] |
リスナを設定する。
Publisher に対してリスナオブジェクト ConnectorListeners を設定する。 各種リスナオブジェクトを含む ConnectorListeners をセットすることで、 バッファの読み書き、データの送信時等にこれらのリスナをコールする。 ConnectorListeners オブジェクトの所有権はポートまたは RTObject が持ち Publisher 削除時に ConnectorListeners は削除されることはない。 ConnectorListeners がヌルポインタの場合 INVALID_ARGS を返す。
info | ConnectorProfile をローカル化したオブジェクト ConnectorInfo | |
listeners | リスナを多数保持する ConnectorListeners オブジェクト |
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。
virtual ReturnCode RTC::PublisherBase::write | ( | const cdrMemoryStream & | data, | |
unsigned long | sec, | |||
unsigned long | usec | |||
) | [pure virtual] |
データを書き込む
Publisher に対してデータを書き込む。コンシューマ、リスナ等が適切 に設定されていない等、Publisher オブジェクトが正しく初期化されて いない場合、この関数を呼び出すとエラーコード PRECONDITION_NOT_MET が返され、書き込み等の操作は一切行われない。
書き込みに対して、コンシューマがフル状態、コンシューマのエラー、 コンシューマへの書き込みがタイムアウトした場合にはそれぞれ、エラー コード SEND_FULL, SEND_ERROR, SEND_TIMEOUT が返される。
これら以外のエラーの場合、PORT_ERROR が返される。
data | 書き込むデータ | |
sec | タイムアウト時間 | |
nsec | タイムアウト時間 |
RTC::PublisherFlush, RTC::PublisherNew, と RTC::PublisherPeriodicで実装されています。