クラス RTC::OutPortBase

OutPort 基底クラス [詳細]

#include <OutPortBase.h>

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

RTC::PortBase RTC::DataPortStatus RTC::OutPort< DataType >

すべてのメンバ一覧

Public メソッド

 OutPortBase (const char *name, const char *data_type)
 コンストラクタ
virtual ~OutPortBase (void)
 デストラクタ
void init (coil::Properties &prop)
 プロパティの初期化
virtual bool write ()=0
 データ書き込み
coil::Propertiesproperties ()
 OutPort名称の取得
const std::vector
< OutPortConnector * > & 
connectors ()
 Connector を取得
ConnectorInfoList getConnectorProfiles ()
 ConnectorProfile を取得
coil::vstring getConnectorIds ()
 ConnectorId を取得
coil::vstring getConnectorNames ()
 Connectorの名前を取得
OutPortConnectorgetConnectorById (const char *id)
 ConnectorProfileをIDで取得
OutPortConnectorgetConnectorByName (const char *name)
 ConnectorProfileを名前で取得
bool getConnectorProfileById (const char *id, ConnectorInfo &prof)
 ConnectorProfileをIDで取得
bool getConnectorProfileByName (const char *name, ConnectorInfo &prof)
 ConnectorProfileを名前で取得
virtual void activateInterfaces ()
 InPortを activates する
virtual void deactivateInterfaces ()
 全ての Port のインターフェースを deactivates する
void addConnectorDataListener (ConnectorDataListenerType listener_type, ConnectorDataListener *listener, bool autoclean=true)
 ConnectorDataListener リスナを追加する
void removeConnectorDataListener (ConnectorDataListenerType listener_type, ConnectorDataListener *listener)
 ConnectorDataListener リスナを削除する
void addConnectorListener (ConnectorListenerType callback_type, ConnectorListener *listener, bool autoclean=true)
 ConnectorListener リスナを追加する
void removeConnectorListener (ConnectorListenerType callback_type, ConnectorListener *listener)
 ConnectorDataListener リスナを削除する
bool isLittleEndian ()
 endian 設定を返す
virtual ReturnCode_t connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException)
 [CORBA interface] Port の接続を行う

Public 変数

DATAPORTSTATUS_ENUM typedef
std::vector< OutPortConnector * > 
ConnectorList

Protected メソッド

void configure ()
 OutPortの設定を行う
virtual ReturnCode_t publishInterfaces (ConnectorProfile &connector_profile)
 Interface 情報を公開する
virtual ReturnCode_t subscribeInterfaces (const ConnectorProfile &connector_profile)
 Interface に接続する
virtual void unsubscribeInterfaces (const ConnectorProfile &connector_profile)
 Interface の接続を解除する
void initProviders ()
 OutPort provider の初期化
void initConsumers ()
 InPort consumer の初期化
bool checkEndian (const coil::Properties &prop, bool &littleEndian)
OutPortProvidercreateProvider (ConnectorProfile &cprof, coil::Properties &prop)
 OutPort provider の生成
InPortConsumercreateConsumer (const ConnectorProfile &cprof, coil::Properties &prop)
 InPort consumer の生成
OutPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer)
 OutPortPushConnector の生成
OutPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortProvider *provider)
 OutPortPullConnector の生成

Protected 変数

coil::Properties m_properties
 プロパティ
std::vector< OutPortConnector * > m_connectors
 接続リスト
coil::vstring m_providerTypes
 利用可能provider
coil::vstring m_consumerTypes
 利用可能consumer
bool m_littleEndian
 接続エンディアン
ConnectorListeners m_listeners
 ConnectorDataListener リスナ


説明

OutPort 基底クラス

OutPort の基底クラス。

Properties: port.outport プロパティは

以下に指定したものが渡される。 (port.outport.[name]が優先される) さらに、一部のプロパティは接続時に ConnectorProfile により 渡される場合があり、その場合は ConnectorProfile が優先される。

dataport.dataflow_type dataport.interface_type dataport.subscription_type

[buffer]

[publihser]

[interface]

OutPort 側の connect() では以下のシーケンスで処理が行われる。

1. OutPort に関連する connector 情報の生成およびセット

2. InPortに関連する connector 情報の取得

5. ConnectorProfile::properties で与えられた情報から、 OutPort側の初期化処理を行う。

6. 上記の処理のうち一つでもエラーであれば、エラーリターンする。 正常に処理が行われた場合はRTCRTC_OKでリターンする。

から:
0.2.0

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

RTC::OutPortBase::OutPortBase ( const char *  name,
const char *  data_type 
)

コンストラクタ

コンストラクタ。

引数:
name ポート名

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

デストラクタ

デストラクタ。 登録された全ての Publisher を削除する。


関数

void RTC::OutPortBase::init ( coil::Properties prop  ) 

プロパティの初期化

OutPortのプロパティを初期化する

virtual bool RTC::OutPortBase::write (  )  [pure virtual]

データ書き込み

ポートへデータを書き込む。 バインドされた変数に設定された値をポートに書き込む。

戻り値:
書き込み処理結果(書き込み成功:true、書き込み失敗:false)

RTC::OutPort< DataType >で実装されています。

coil::Properties& RTC::OutPortBase::properties (  ) 

OutPort名称の取得

OutPortの名称を取得する。

戻り値:
ポート名称
プロパティを取得する OutPortのプロパティを取得する。

戻り値:
プロパティ

const std::vector<OutPortConnector*>& RTC::OutPortBase::connectors (  ) 

Connector を取得

現在所有しているコネクタを取得する。

戻り値:
connector のリスト

ConnectorInfoList RTC::OutPortBase::getConnectorProfiles (  ) 

ConnectorProfile を取得

現在所有しているコネクタのProfileを取得する。

戻り値:
ConnectorProfile のリスト

coil::vstring RTC::OutPortBase::getConnectorIds (  ) 

ConnectorId を取得

現在所有しているコネクタのIDを取得する。

戻り値:
ConnectorId のリスト

coil::vstring RTC::OutPortBase::getConnectorNames (  ) 

Connectorの名前を取得

現在所有しているコネクタの名前を取得する。

戻り値:
Connector名のリスト

OutPortConnector* RTC::OutPortBase::getConnectorById ( const char *  id  ) 

ConnectorProfileをIDで取得

現在所有しているコネクタをIDで取得する。

引数:
id Connector ID
戻り値:
コネクタへのポインタ

OutPortConnector* RTC::OutPortBase::getConnectorByName ( const char *  name  ) 

ConnectorProfileを名前で取得

現在所有しているコネクタを名前で取得する。

引数:
name Connector name
戻り値:
コネクタへのポインタ

bool RTC::OutPortBase::getConnectorProfileById ( const char *  id,
ConnectorInfo prof 
)

ConnectorProfileをIDで取得

現在所有しているコネクタをIDで取得する。

引数:
id Connector ID
prof ConnectorProfile
戻り値:
false 指定したIDがない

bool RTC::OutPortBase::getConnectorProfileByName ( const char *  name,
ConnectorInfo prof 
)

ConnectorProfileを名前で取得

現在所有しているコネクタを名前で取得する。

引数:
name Connector name
prof ConnectorProfile
戻り値:
false 指定した名前がない

virtual void RTC::OutPortBase::activateInterfaces (  )  [virtual]

InPortを activates する

InPortを activate する。

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

virtual void RTC::OutPortBase::deactivateInterfaces (  )  [virtual]

全ての Port のインターフェースを deactivates する

Port に登録されている全てのインターフェースを deactivate する。

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

void RTC::OutPortBase::addConnectorDataListener ( ConnectorDataListenerType  listener_type,
ConnectorDataListener listener,
bool  autoclean = true 
)

ConnectorDataListener リスナを追加する

バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。

設定できるリスナのタイプとコールバックイベントは以下の通り

  • ON_BUFFER_WRITE: バッファ書き込み時
  • ON_BUFFER_FULL: バッファフル時
  • ON_BUFFER_WRITE_TIMEOUT: バッファ書き込みタイムアウト時
  • ON_BUFFER_OVERWRITE: バッファ上書き時
  • ON_BUFFER_READ: バッファ読み出し時
  • ON_SEND: InProtへの送信時
  • ON_RECEIVED: InProtへの送信完了時
  • ON_SEND_ERTIMEOUT: OutPort側タイムアウト時
  • ON_SEND_ERERROR: OutPort側エラー時
  • ON_RECEIVER_FULL: InProt側バッファフル時
  • ON_RECEIVER_TIMEOUT: InProt側バッファタイムアウト時
  • ON_RECEIVER_ERROR: InProt側エラー時

リスナは ConnectorDataListener を継承し、以下のシグニチャを持つ operator() を実装している必要がある。

ConnectorDataListener:: operator()(const ConnectorProfile&, const cdrStream&)

デフォルトでは、この関数に与えたリスナオブジェクトの所有権は OutPortに移り、OutPort解体時もしくは、 removeConnectorDataListener() により削除時に自動的に解体される。 リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引 数に false を指定し、自動的な解体を抑制することができる。

引数:
listener_type リスナタイプ
listener リスナオブジェクトへのポインタ
autoclean リスナオブジェクトの自動的解体を行うかどうかのフラグ

void RTC::OutPortBase::removeConnectorDataListener ( ConnectorDataListenerType  listener_type,
ConnectorDataListener listener 
)

ConnectorDataListener リスナを削除する

設定した各種リスナを削除する。

引数:
listener_type リスナタイプ
listener リスナオブジェクトへのポインタ

void RTC::OutPortBase::addConnectorListener ( ConnectorListenerType  callback_type,
ConnectorListener listener,
bool  autoclean = true 
)

ConnectorListener リスナを追加する

バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。

設定できるリスナのタイプは

  • ON_BUFFER_EMPTY: バッファが空の場合
  • ON_BUFFER_READTIMEOUT: バッファが空でタイムアウトした場合

リスナは以下のシグニチャを持つ operator() を実装している必要がある。

ConnectorListener::operator()(const ConnectorProfile&)

デフォルトでは、この関数に与えたリスナオブジェクトの所有権は OutPortに移り、OutPort解体時もしくは、 removeConnectorListener() により削除時に自動的に解体される。 リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引 数に false を指定し、自動的な解体を抑制することができる。

引数:
listener_type リスナタイプ
listener リスナオブジェクトへのポインタ
autoclean リスナオブジェクトの自動的解体を行うかどうかのフラグ

void RTC::OutPortBase::removeConnectorListener ( ConnectorListenerType  callback_type,
ConnectorListener listener 
)

ConnectorDataListener リスナを削除する

設定した各種リスナを削除する。

引数:
listener_type リスナタイプ
listener リスナオブジェクトへのポインタ

bool RTC::OutPortBase::isLittleEndian (  ) 

endian 設定を返す

endian 設定のbool値を返す。

戻り値:
m_littleEndian がlittleの場合true、bigの場合false を返す。

virtual ReturnCode_t RTC::OutPortBase::connect ( ConnectorProfile &  connector_profile  )  throw (CORBA::SystemException) [virtual]

[CORBA interface] Port の接続を行う

与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立 する。この関数は主にアプリケーションプログラムやツールから呼び出 すことを前提としている。

引数:
connector_profile ConnectorProfile
戻り値:
ReturnCode_t 型のリターンコード

RTC::PortBaseを再定義しています。

void RTC::OutPortBase::configure (  )  [protected]

OutPortの設定を行う

propertiesの情報に基づきOutPortの各種設定を行う

virtual ReturnCode_t RTC::OutPortBase::publishInterfaces ( ConnectorProfile &  connector_profile  )  [protected, virtual]

Interface 情報を公開する

このオペレーションは、notify_connect() 処理シーケンスの始めにコール される純粋仮想関数である。 notify_connect() では、

の順に protected 関数がコールされ接続処理が行われる。
このオペレーションは、新規の connector_id に対しては接続の生成、 既存の connector_id に対しては更新が適切に行われる必要がある。

引数:
connector_profile 接続に関するプロファイル情報
戻り値:
ReturnCode_t 型のリターンコード

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

virtual ReturnCode_t RTC::OutPortBase::subscribeInterfaces ( const ConnectorProfile &  connector_profile  )  [protected, virtual]

Interface に接続する

このオペレーションは、notify_connect() 処理シーケンスの中間にコール される純粋仮想関数である。 notify_connect() では、

の順に protected 関数がコールされ接続処理が行われる。

引数:
connector_profile 接続に関するプロファイル情報
戻り値:
ReturnCode_t 型のリターンコード

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

virtual void RTC::OutPortBase::unsubscribeInterfaces ( const ConnectorProfile &  connector_profile  )  [protected, virtual]

Interface の接続を解除する

このオペレーションは、notify_disconnect() 処理シーケンスの終わりにコール される純粋仮想関数である。 notify_disconnect() では、

引数:
connector_profile 接続に関するプロファイル情報

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

void RTC::OutPortBase::initProviders (  )  [protected]

OutPort provider の初期化

void RTC::OutPortBase::initConsumers (  )  [protected]

InPort consumer の初期化

bool RTC::OutPortBase::checkEndian ( const coil::Properties prop,
bool &  littleEndian 
) [protected]

OutPortProvider* RTC::OutPortBase::createProvider ( ConnectorProfile &  cprof,
coil::Properties prop 
) [protected]

OutPort provider の生成

InPortConsumer* RTC::OutPortBase::createConsumer ( const ConnectorProfile &  cprof,
coil::Properties prop 
) [protected]

InPort consumer の生成

OutPortConnector* RTC::OutPortBase::createConnector ( const ConnectorProfile &  cprof,
coil::Properties prop,
InPortConsumer consumer 
) [protected]

OutPortConnector* RTC::OutPortBase::createConnector ( const ConnectorProfile &  cprof,
coil::Properties prop,
OutPortProvider provider 
) [protected]


変数

DATAPORTSTATUS_ENUM typedef std::vector<OutPortConnector*> RTC::OutPortBase::ConnectorList

プロパティ

接続リスト

参照元 RTC::OutPort< DataType >::write().

利用可能provider

利用可能consumer

接続エンディアン


OpenRTMに対してThu Jan 28 13:25:27 2010に生成されました。  doxygen 1.5.5