PublisherFlush クラス. [詳細]
#include <PublisherFlush.h>
Public 型 | |
typedef coil::Mutex | Mutex |
typedef coil::Condition< Mutex > | Condition |
typedef coil::Guard< coil::Mutex > | Guard |
Public メソッド | |
DATAPORTSTATUS_ENUM | PublisherFlush () |
virtual | ~PublisherFlush (void) |
virtual ReturnCode | init (coil::Properties &prop) |
初期化 | |
virtual ReturnCode | setConsumer (InPortConsumer *consumer) |
InPortコンシューマのセット. | |
virtual ReturnCode | setBuffer (CdrBufferBase *buffer) |
バッファのセット | |
virtual ::RTC::DataPortStatus::Enum | setListener (ConnectorInfo &profile, RTC::ConnectorListeners *listeners) |
リスナを設定する。 | |
virtual ReturnCode | write (const cdrMemoryStream &data, unsigned long sec, unsigned long usec) |
データを書き込む | |
virtual bool | isActive () |
アクティブ化確認 | |
virtual ReturnCode | activate () |
アクティブ化する | |
virtual ReturnCode | deactivate () |
非アクティブ化する | |
Protected メソッド | |
void | onSend (const cdrMemoryStream &data) |
ON_SENDのリスナへ通知する。. | |
void | onReceived (const cdrMemoryStream &data) |
ON_RECEIVEDのリスナへ通知する。. | |
void | onReceiverFull (const cdrMemoryStream &data) |
ON_RECEIVER_FULLのリスナへ通知する。. | |
void | onReceiverTimeout (const cdrMemoryStream &data) |
ON_RECEIVER_TIMEOUTのリスナへ通知する。. | |
void | onReceiverError (const cdrMemoryStream &data) |
ON_RECEIVER_ERRORのリスナへ通知する。. |
PublisherFlush クラス.
Flush 型 Publisher クラス バッファ内に格納されている未送信データを送信する。 データ送出を待つコンシューマを、送出する側と同じスレッドで動作させる。
DATAPORTSTATUS_ENUM RTC::PublisherFlush::PublisherFlush | ( | ) |
コンストラクタ
virtual RTC::PublisherFlush::~PublisherFlush | ( | void | ) | [virtual] |
デストラクタ
virtual ReturnCode RTC::PublisherFlush::activate | ( | ) | [virtual] |
アクティブ化する
Publisher をアクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を開始する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。
RTC::PublisherBaseを実装しています。
virtual ReturnCode RTC::PublisherFlush::deactivate | ( | ) | [virtual] |
非アクティブ化する
Publisher を非アクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を停止する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。
RTC::PublisherBaseを実装しています。
virtual ReturnCode RTC::PublisherFlush::init | ( | coil::Properties & | prop | ) | [virtual] |
初期化
このクラスのオブジェクトを使用するのに先立ち、必ずこの関数を呼び 出す必要がある。ただし、この PublisherFlush は現状で初期化するパ ラメータを持たない。
property | 本Publisherの駆動制御情報を設定したPropertyオブジェクト |
RTC::PublisherBaseを実装しています。
virtual bool RTC::PublisherFlush::isActive | ( | ) | [virtual] |
アクティブ化確認
Publisher はデータポートと同期して activate/deactivate される。 activate() / deactivate() 関数によって、アクティブ状態と非アクティ ブ状態が切り替わる。この関数により、現在アクティブ状態か、非アク ティブ状態かを確認することができる。
RTC::PublisherBaseを実装しています。
void RTC::PublisherFlush::onReceived | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
void RTC::PublisherFlush::onReceiverError | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
void RTC::PublisherFlush::onReceiverFull | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
void RTC::PublisherFlush::onReceiverTimeout | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
void RTC::PublisherFlush::onSend | ( | const cdrMemoryStream & | data | ) | [inline, protected] |
virtual ReturnCode RTC::PublisherFlush::setBuffer | ( | CdrBufferBase * | buffer | ) | [virtual] |
バッファのセット
PublisherFlushでは、バッファを使用しないため、いかなる場合も PORT_OK を返す。
buffer | CDRバッファ |
virtual ReturnCode RTC::PublisherFlush::setConsumer | ( | InPortConsumer * | consumer | ) | [virtual] |
InPortコンシューマのセット.
この関数では、この Publisher に関連付けられるコンシューマをセットする。 コンシューマオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。
consumer | Consumer へのポインタ |
RTC::PublisherBaseを実装しています。
virtual ::RTC::DataPortStatus::Enum RTC::PublisherFlush::setListener | ( | ConnectorInfo & | profile, | |
RTC::ConnectorListeners * | listeners | |||
) | [virtual] |
リスナを設定する。
Publisher に対してリスナオブジェクト ConnectorListeners を設定する。 各種リスナオブジェクトを含む ConnectorListeners をセットすることで、 バッファの読み書き、データの送信時等にこれらのリスナをコールする。 ConnectorListeners オブジェクトの所有権はポートまたは RTObject が持ち Publisher 削除時に ConnectorListeners は削除されることはない。 ConnectorListeners がヌルポインタの場合 INVALID_ARGS を返す。
info | ConnectorProfile をローカル化したオブジェクト ConnectorInfo | |
listeners | リスナを多数保持する ConnectorListeners オブジェクト |
RTC::PublisherBaseを実装しています。
virtual ReturnCode RTC::PublisherFlush::write | ( | const cdrMemoryStream & | data, | |
unsigned long | sec, | |||
unsigned long | usec | |||
) | [virtual] |
データを書き込む
Publisher が保持するコンシューマに対してデータを書き込む。コン シューマ、リスナ等が適切に設定されていない等、Publisher オブジェ クトが正しく初期化されていない場合、この関数を呼び出すとエラーコー ド PRECONDITION_NOT_MET が返され、コンシューマへの書き込み等の操 作は一切行われない。
コンシューマへの書き込みに対して、コンシューマがフル状態、コン シューマのエラー、コンシューマへの書き込みがタイムアウトした場合 にはそれぞれ、エラーコード SEND_FULL, SEND_ERROR, SEND_TIMEOUT が返される。
これら以外のエラーの場合、PORT_ERROR が返される。
data | 書き込むデータ | |
sec | タイムアウト時間 | |
nsec | タイムアウト時間 |
RTC::PublisherBaseを実装しています。