クラス RTC::PublisherNew

PublisherNew クラス [詳細]

#include <PublisherNew.h>

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

RTC::PublisherBase RTC::DataPortStatus

すべてのメンバ一覧

Public 型

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

Public メソッド

DATAPORTSTATUS_ENUM PublisherNew ()
 コンストラクタ
virtual ~PublisherNew (void)
 デストラクタ
virtual ReturnCode init (coil::Properties &prop)
 初期化
virtual ReturnCode setConsumer (InPortConsumer *consumer)
virtual ReturnCode setBuffer (CdrBufferBase *buffer)
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 メソッド

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)


説明

PublisherNew クラス

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


型定義

typedef coil::Mutex RTC::PublisherNew::Mutex

typedef coil::Condition<Mutex> RTC::PublisherNew::Condition

typedef coil::Guard<coil::Mutex> RTC::PublisherNew::Guard


列挙型

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::init ( coil::Properties &  prop  )  [virtual]

初期化

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

virtual ReturnCode RTC::PublisherNew::setConsumer ( InPortConsumer consumer  )  [virtual]

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

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

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

virtual ReturnCode RTC::PublisherNew::write ( const cdrMemoryStream &  data,
unsigned long  sec,
unsigned long  usec 
) [virtual]

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

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

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

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

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

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

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

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

スレッド実行関数

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

戻り値:
実行結果

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

push "all" policy

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

push "fifo" policy

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

push "skip" policy

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

push "new" policy

ReturnCode RTC::PublisherNew::convertReturn ( BufferStatus::Enum  status  )  [protected]


OpenRTMに対してSun May 24 14:08:26 2009に生成されました。  doxygen 1.5.3