クラス RTC::PublisherFlush

PublisherFlush クラス. [詳細]

#include <PublisherFlush.h>

RTC::PublisherFlushに対する継承グラフ
RTC::PublisherBase RTC::DataPortStatus

すべてのメンバ一覧

Public 型

typedef coil::Mutex Mutex
typedef coil::Condition< MutexCondition
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 クラス バッファ内に格納されている未送信データを送信する。 データ送出を待つコンシューマを、送出する側と同じスレッドで動作させる。


型定義

typedef coil::Condition<Mutex> RTC::PublisherFlush::Condition
typedef coil::Guard<coil::Mutex> RTC::PublisherFlush::Guard
typedef coil::Mutex RTC::PublisherFlush::Mutex

コンストラクタとデストラクタ

DATAPORTSTATUS_ENUM RTC::PublisherFlush::PublisherFlush (  ) 

コンストラクタ

virtual RTC::PublisherFlush::~PublisherFlush ( void   )  [virtual]

デストラクタ


関数

virtual ReturnCode RTC::PublisherFlush::activate (  )  [virtual]

アクティブ化する

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

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

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

virtual ReturnCode RTC::PublisherFlush::deactivate (  )  [virtual]

非アクティブ化する

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

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

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

virtual ReturnCode RTC::PublisherFlush::init ( coil::Properties &  prop  )  [virtual]

初期化

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

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

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

virtual bool RTC::PublisherFlush::isActive (  )  [virtual]

アクティブ化確認

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

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

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

void RTC::PublisherFlush::onReceived ( const cdrMemoryStream &  data  )  [inline, protected]

ON_RECEIVEDのリスナへ通知する。.

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVED.

void RTC::PublisherFlush::onReceiverError ( const cdrMemoryStream &  data  )  [inline, protected]

ON_RECEIVER_ERRORのリスナへ通知する。.

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVER_ERROR.

void RTC::PublisherFlush::onReceiverFull ( const cdrMemoryStream &  data  )  [inline, protected]

ON_RECEIVER_FULLのリスナへ通知する。.

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVER_FULL.

void RTC::PublisherFlush::onReceiverTimeout ( const cdrMemoryStream &  data  )  [inline, protected]

ON_RECEIVER_TIMEOUTのリスナへ通知する。.

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVER_TIMEOUT.

void RTC::PublisherFlush::onSend ( const cdrMemoryStream &  data  )  [inline, protected]

ON_SENDのリスナへ通知する。.

引数:
data cdrMemoryStream

参照先 RTC::ON_SEND.

virtual ReturnCode RTC::PublisherFlush::setBuffer ( CdrBufferBase buffer  )  [virtual]

バッファのセット

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

引数:
buffer CDRバッファ
戻り値:
PORT_OK 正常終了
virtual ReturnCode RTC::PublisherFlush::setConsumer ( InPortConsumer consumer  )  [virtual]

InPortコンシューマのセット.

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

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

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 オブジェクト
戻り値:
PORT_OK 正常終了 INVALID_ARGS 不正な引数

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 タイムアウト時間
戻り値:
PORT_OK 正常終了 PRECONDITION_NO_MET consumer, buffer, listener等が適切に設定 されていない等、このオブジェクトの事前条件 を満たさない場合。 SEND_FULL 送信先がフル状態 SEND_TIMEOUT 送信先がタイムアウトした CONNECTION_LOST 接続が切断されたことを検知した。

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

OpenRTMに対してFri Mar 11 00:00:51 2011に生成されました。  doxygen 1.6.3