クラス RTC::PublisherNew

PublisherNew クラス. [詳細]

#include <PublisherNew.h>

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

すべてのメンバ一覧

Public 型

typedef coil::Mutex Mutex
typedef coil::Condition< MutexCondition
typedef coil::Guard< coil::MutexGuard

Public メソッド

DATAPORTSTATUS_ENUM PublisherNew ()
 コンストラクタ
virtual ~PublisherNew (void)
virtual ReturnCode init (coil::Properties &prop)
 初期化
virtual ReturnCode setConsumer (InPortConsumer *consumer)
 InPortコンシューマのセット.
virtual ReturnCode setBuffer (CdrBufferBase *buffer)
 バッファのセット
virtual ReturnCode setListener (ConnectorInfo &info, ConnectorListeners *listeners)
 リスナを設定する。
virtual ReturnCode write (const cdrMemoryStream &data, unsigned long sec, unsigned long usec)
 データを書き込む
virtual bool isActive ()
 アクティブ化確認
virtual ReturnCode activate ()
 アクティブ化
virtual ReturnCode deactivate ()
 非アクティブ化
virtual int svc (void)
 スレッド実行関数

Protected 型

enum  Policy { ALL, FIFO, SKIP, NEW }
 

タスク開始

[詳細]

Protected メソッド

void setPushPolicy (const coil::Properties &prop)
 PushPolicy の設定.
bool createTask (const coil::Properties &prop)
 Task の設定.
ReturnCode pushAll ()
 push "all" policy
ReturnCode pushFifo ()
 push "fifo" policy
ReturnCode pushSkip ()
 push "skip" policy
ReturnCode pushNew ()
 push "new" policy
ReturnCode convertReturn (BufferStatus::Enum status, const cdrMemoryStream &data)
 return code conversion (BufferStatus -> DataPortStatus)
ReturnCode invokeListener (DataPortStatus::Enum status, const cdrMemoryStream &data)
 DataPortStatusに従ってリスナへ通知する関数を呼び出す。.
void onBufferWrite (const cdrMemoryStream &data)
 Connector data listener functions.
void onBufferFull (const cdrMemoryStream &data)
 ON_BUFFER_FULLのリスナへ通知する。.
void onBufferWriteTimeout (const cdrMemoryStream &data)
 ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。.
void onBufferWriteOverwrite (const cdrMemoryStream &data)
 ON_BUFFER_OVERWRITEのリスナへ通知する。.
void onBufferRead (const cdrMemoryStream &data)
 ON_BUFFER_READのリスナへ通知する。.
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のリスナへ通知する。.
void onSenderError ()
 Connector listener functions.

説明

PublisherNew クラス.

バッファ内に新規データが格納されたタイミングで、その新規データを送信する。 データ送出タイミングを待つコンシューマを、送出する側とは異なるスレッドで 動作させる場合に使用。 Publisherの駆動は、データ送出のタイミングになるまでブロックされ、 送出タイミングの通知を受けると、即座にコンシューマの送出処理を呼び出す。


型定義


列挙型

enum RTC::PublisherNew::Policy [protected]

タスク開始

ACE_Task::open() のオーバーライド 本 publisher 用新規スレッドを生成する。

引数:
args スレッド生成用引数(本Publisherでは未使用)
戻り値:
実行結果

タスク終了関数 ACE_Task::release() のオーバーライド 駆動フラグをfalseに設定し、本 Publisher の駆動を停止する。 ただし、駆動スレッドがブロックされている場合には、 最大1回コンシューマの送出処理が呼び出される場合がある。

列挙型の値:
ALL 
FIFO 
SKIP 
NEW 

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

DATAPORTSTATUS_ENUM RTC::PublisherNew::PublisherNew (  ) 

コンストラクタ

コンストラクタ 本 Publisher 用新規スレッドを生成する。

引数:
consumer データ送出を待つコンシューマ
property 本Publisherの駆動制御情報を設定したPropertyオブジェクト (本Publisherでは未使用)
virtual RTC::PublisherNew::~PublisherNew ( void   )  [virtual]

デストラクタ


関数

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

アクティブ化

戻り値:
リターンコード

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

ReturnCode RTC::PublisherNew::convertReturn ( BufferStatus::Enum  status,
const cdrMemoryStream &  data 
) [protected]

return code conversion (BufferStatus -> DataPortStatus)

bool RTC::PublisherNew::createTask ( const coil::Properties prop  )  [protected]

Task の設定.

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

非アクティブ化

戻り値:
リターンコード

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

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

初期化

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

ReturnCode RTC::PublisherNew::invokeListener ( DataPortStatus::Enum  status,
const cdrMemoryStream &  data 
) [protected]

DataPortStatusに従ってリスナへ通知する関数を呼び出す。.

引数:
status DataPortStatus
data cdrMemoryStream
戻り値:
リターンコード
virtual bool RTC::PublisherNew::isActive (  )  [virtual]

アクティブ化確認

アクティブ化されているか確認する。

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

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

void RTC::PublisherNew::onBufferFull ( const cdrMemoryStream &  data  )  [inline, protected]

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

引数:
data cdrMemoryStream

参照先 RTC::ON_BUFFER_FULL.

void RTC::PublisherNew::onBufferRead ( const cdrMemoryStream &  data  )  [inline, protected]

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

引数:
data cdrMemoryStream

参照先 RTC::ON_BUFFER_READ.

void RTC::PublisherNew::onBufferWrite ( const cdrMemoryStream &  data  )  [inline, protected]

Connector data listener functions.

ON_BUFFER_WRITEのリスナへ通知する。

引数:
data cdrMemoryStream

参照先 RTC::ON_BUFFER_WRITE.

void RTC::PublisherNew::onBufferWriteOverwrite ( const cdrMemoryStream &  data  )  [inline, protected]

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

引数:
data cdrMemoryStream

参照先 RTC::ON_BUFFER_OVERWRITE.

void RTC::PublisherNew::onBufferWriteTimeout ( const cdrMemoryStream &  data  )  [inline, protected]

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

引数:
data cdrMemoryStream

参照先 RTC::ON_BUFFER_WRITE_TIMEOUT.

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

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

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVED.

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

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

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVER_ERROR.

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

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

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVER_FULL.

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

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

引数:
data cdrMemoryStream

参照先 RTC::ON_RECEIVER_TIMEOUT.

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

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

引数:
data cdrMemoryStream

参照先 RTC::ON_SEND.

void RTC::PublisherNew::onSenderError (  )  [inline, protected]

Connector listener functions.

ON_SENDER_ERRORのリスナへ通知する。

引数:
data cdrMemoryStream

参照先 RTC::ON_SENDER_ERROR.

ReturnCode RTC::PublisherNew::pushAll (  )  [protected]

push "all" policy

ReturnCode RTC::PublisherNew::pushFifo (  )  [protected]

push "fifo" policy

ReturnCode RTC::PublisherNew::pushNew (  )  [protected]

push "new" policy

ReturnCode RTC::PublisherNew::pushSkip (  )  [protected]

push "skip" policy

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

バッファのセット

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

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

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

virtual ReturnCode RTC::PublisherNew::setListener ( ConnectorInfo info,
ConnectorListeners listeners 
) [virtual]

リスナを設定する。

引数:
info ConnectorInfo
listeners ConnectorListeners
戻り値:
PORT_OK 正常終了 INVALID_ARGS 不正な引数

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

void RTC::PublisherNew::setPushPolicy ( const coil::Properties prop  )  [protected]

PushPolicy の設定.

virtual int RTC::PublisherNew::svc ( void   )  [virtual]

スレッド実行関数

ACE_Task::svc() のオーバーライド バッファ内のデータが更新されるまでスレッドを待機させる。

戻り値:
実行結果
virtual ReturnCode RTC::PublisherNew::write ( const cdrMemoryStream &  data,
unsigned long  sec,
unsigned long  usec 
) [virtual]

データを書き込む

引数:
data 書き込むデータ
sec タイムアウト時間
nsec タイムアウト時間
戻り値:
リターンコード

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


OpenRTMに対してThu Jan 5 17:57:33 2012に生成されました。  doxygen 1.6.1