#include <OutPortBase.h>
Public メソッド | |
OutPortBase (const char *name, const char *data_type) | |
コンストラクタ | |
virtual | ~OutPortBase (void) |
デストラクタ | |
void | init (coil::Properties &prop) |
プロパティの初期化 | |
virtual bool | write ()=0 |
データ書き込み | |
coil::Properties & | properties () |
プロパティを取得する | |
const std::vector < OutPortConnector * > & | connectors () |
Connector を取得. | |
ConnectorInfoList | getConnectorProfiles () |
ConnectorProfile を取得. | |
coil::vstring | getConnectorIds () |
ConnectorId を取得. | |
coil::vstring | getConnectorNames () |
Connectorの名前を取得. | |
OutPortConnector * | getConnectorById (const char *id) |
ConnectorProfileをIDで取得. | |
OutPortConnector * | getConnectorByName (const char *name) |
ConnectorProfileを名前で取得. | |
bool | getConnectorProfileById (const char *id, ConnectorInfo &prof) |
ConnectorProfileをIDで取得. | |
bool | getConnectorProfileByName (const char *name, ConnectorInfo &prof) |
ConnectorProfileを名前で取得. | |
virtual void | activateInterfaces () |
全ての Port のインターフェースを activate する | |
virtual void | deactivateInterfaces () |
全ての Port のインターフェースを deactivate する | |
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) |
シリアライザのエンディアンをチェックする | |
OutPortProvider * | createProvider (ConnectorProfile &cprof, coil::Properties &prop) |
OutPort provider の生成. | |
InPortConsumer * | createConsumer (const ConnectorProfile &cprof, coil::Properties &prop) |
InPort consumer の生成. | |
OutPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer) |
OutPortPushConnector の生成. | |
OutPortConnector * | createConnector (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 プロパティは
ConnectorProfile.properties の場合は
以下に指定したものが渡される。 (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 情報の取得
3. PortBase::connect() をコール Portの接続の基本処理が行われる。
4. 上記2.でInPortのリファレンスが取得できなければ、再度InPortに 関連する connector 情報を取得する。
5. ConnectorProfile::properties で与えられた情報から、 OutPort側の初期化処理を行う。
6. 上記の処理のうち一つでもエラーであれば、エラーリターンする。 正常に処理が行われた場合はRTCRTC_OKでリターンする。
RTC::OutPortBase::OutPortBase | ( | const char * | name, | |
const char * | data_type | |||
) |
コンストラクタ
コンストラクタ。
name | ポート名 | |
data_type | データタイプ |
virtual RTC::OutPortBase::~OutPortBase | ( | void | ) | [virtual] |
デストラクタ
デストラクタ。 登録された全ての Publisher を削除する。
virtual void RTC::OutPortBase::activateInterfaces | ( | ) | [virtual] |
void RTC::OutPortBase::addConnectorDataListener | ( | ConnectorDataListenerType | listener_type, | |
ConnectorDataListener * | listener, | |||
bool | autoclean = true | |||
) |
ConnectorDataListener リスナを追加する.
バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。
設定できるリスナのタイプとコールバックイベントは以下の通り
リスナは ConnectorDataListener を継承し、以下のシグニチャを持つ operator() を実装している必要がある。
ConnectorDataListener:: operator()(const ConnectorProfile&, const cdrStream&)
デフォルトでは、この関数に与えたリスナオブジェクトの所有権は OutPortに移り、OutPort解体時もしくは、 removeConnectorDataListener() により削除時に自動的に解体される。 リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引 数に false を指定し、自動的な解体を抑制することができる。
listener_type | リスナタイプ | |
listener | リスナオブジェクトへのポインタ | |
autoclean | リスナオブジェクトの自動的解体を行うかどうかのフラグ |
void RTC::OutPortBase::addConnectorListener | ( | ConnectorListenerType | callback_type, | |
ConnectorListener * | listener, | |||
bool | autoclean = true | |||
) |
ConnectorListener リスナを追加する.
バッファ書き込みまたは読み出しイベントに関連する各種リスナを設定する。
設定できるリスナのタイプは
リスナは以下のシグニチャを持つ operator() を実装している必要がある。
ConnectorListener::operator()(const ConnectorProfile&)
デフォルトでは、この関数に与えたリスナオブジェクトの所有権は OutPortに移り、OutPort解体時もしくは、 removeConnectorListener() により削除時に自動的に解体される。 リスナオブジェクトの所有権を呼び出し側で維持したい場合は、第3引 数に false を指定し、自動的な解体を抑制することができる。
listener_type | リスナタイプ | |
listener | リスナオブジェクトへのポインタ | |
autoclean | リスナオブジェクトの自動的解体を行うかどうかのフラグ |
bool RTC::OutPortBase::checkEndian | ( | const coil::Properties & | prop, | |
bool & | littleEndian | |||
) | [protected] |
シリアライザのエンディアンをチェックする
与えられたプロパティに設定されている、データのシリアライザのエン ディアン指定をチェックする。正しいエンディアン指定がなされていれ ば、true を返し、引数 littleEndian に、設定値がリトルエンディア ンであれば true が、ビッグエンディアンであれば false が返される。
prop | チェックするプロパティ | |
littleEndian | エンディアン情報(true:little,false:big) |
void RTC::OutPortBase::configure | ( | ) | [protected] |
OutPortの設定を行う.
propertiesの情報に基づきOutPortの各種設定を行う
virtual ReturnCode_t RTC::OutPortBase::connect | ( | ConnectorProfile & | connector_profile | ) | throw (CORBA::SystemException) [virtual] |
[CORBA interface] Port の接続を行う
与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立 する。この関数は主にアプリケーションプログラムやツールから呼び出 すことを前提としている。
connector_profile | ConnectorProfile |
RTC::PortBaseを再定義しています。
const std::vector<OutPortConnector*>& RTC::OutPortBase::connectors | ( | ) |
Connector を取得.
現在所有しているコネクタを取得する。
OutPortConnector* RTC::OutPortBase::createConnector | ( | const ConnectorProfile & | cprof, | |
coil::Properties & | prop, | |||
OutPortProvider * | provider | |||
) | [protected] |
OutPortPullConnector の生成.
OutPortConnector* RTC::OutPortBase::createConnector | ( | const ConnectorProfile & | cprof, | |
coil::Properties & | prop, | |||
InPortConsumer * | consumer | |||
) | [protected] |
OutPortPushConnector の生成.
InPortConsumer* RTC::OutPortBase::createConsumer | ( | const ConnectorProfile & | cprof, | |
coil::Properties & | prop | |||
) | [protected] |
InPort consumer の生成.
OutPortProvider* RTC::OutPortBase::createProvider | ( | ConnectorProfile & | cprof, | |
coil::Properties & | prop | |||
) | [protected] |
OutPort provider の生成.
virtual void RTC::OutPortBase::deactivateInterfaces | ( | ) | [virtual] |
OutPortConnector* RTC::OutPortBase::getConnectorById | ( | const char * | id | ) |
ConnectorProfileをIDで取得.
現在所有しているコネクタをIDで取得する。
id | Connector ID |
OutPortConnector* RTC::OutPortBase::getConnectorByName | ( | const char * | name | ) |
ConnectorProfileを名前で取得.
現在所有しているコネクタを名前で取得する。
name | Connector name |
coil::vstring RTC::OutPortBase::getConnectorIds | ( | ) |
ConnectorId を取得.
現在所有しているコネクタのIDを取得する。
coil::vstring RTC::OutPortBase::getConnectorNames | ( | ) |
Connectorの名前を取得.
現在所有しているコネクタの名前を取得する。
bool RTC::OutPortBase::getConnectorProfileById | ( | const char * | id, | |
ConnectorInfo & | prof | |||
) |
ConnectorProfileをIDで取得.
現在所有しているコネクタをIDで取得する。
id | Connector ID | |
prof | ConnectorProfile |
bool RTC::OutPortBase::getConnectorProfileByName | ( | const char * | name, | |
ConnectorInfo & | prof | |||
) |
ConnectorProfileを名前で取得.
現在所有しているコネクタを名前で取得する。
name | Connector name | |
prof | ConnectorProfile |
ConnectorInfoList RTC::OutPortBase::getConnectorProfiles | ( | ) |
ConnectorProfile を取得.
現在所有しているコネクタのProfileを取得する。
void RTC::OutPortBase::init | ( | coil::Properties & | prop | ) |
プロパティの初期化
OutPortのプロパティを初期化する
prop | 設定するプロパティ |
void RTC::OutPortBase::initConsumers | ( | ) | [protected] |
InPort consumer の初期化.
void RTC::OutPortBase::initProviders | ( | ) | [protected] |
OutPort provider の初期化.
bool RTC::OutPortBase::isLittleEndian | ( | ) |
endian 設定を返す
endian 設定のbool値を返す。
coil::Properties& RTC::OutPortBase::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 | 接続に関するプロファイル情報 |
RTC::PortBaseを実装しています。
void RTC::OutPortBase::removeConnectorDataListener | ( | ConnectorDataListenerType | listener_type, | |
ConnectorDataListener * | listener | |||
) |
void RTC::OutPortBase::removeConnectorListener | ( | ConnectorListenerType | callback_type, | |
ConnectorListener * | listener | |||
) |
virtual ReturnCode_t RTC::OutPortBase::subscribeInterfaces | ( | const ConnectorProfile & | connector_profile | ) | [protected, virtual] |
Interface に接続する.
このオペレーションは、notify_connect() 処理シーケンスの中間にコール される純粋仮想関数である。 notify_connect() では、
の順に protected 関数がコールされ接続処理が行われる。
connector_profile | 接続に関するプロファイル情報 |
RTC::PortBaseを実装しています。
virtual void RTC::OutPortBase::unsubscribeInterfaces | ( | const ConnectorProfile & | connector_profile | ) | [protected, virtual] |
Interface の接続を解除する.
このオペレーションは、notify_disconnect() 処理シーケンスの終わりにコール される純粋仮想関数である。 notify_disconnect() では、
connector_profile | 接続に関するプロファイル情報 |
RTC::PortBaseを実装しています。
virtual bool RTC::OutPortBase::write | ( | ) | [pure virtual] |
データ書き込み
ポートへデータを書き込む。 バインドされた変数に設定された値をポートに書き込む。
RTC::OutPort< DataType >で実装されています。
DATAPORTSTATUS_ENUM typedef std::vector<OutPortConnector*> RTC::OutPortBase::ConnectorList |
std::vector<OutPortConnector*> RTC::OutPortBase::m_connectors [protected] |
接続リスト
coil::vstring RTC::OutPortBase::m_consumerTypes [protected] |
利用可能consumer
ConnectorListeners RTC::OutPortBase::m_listeners [protected] |
bool RTC::OutPortBase::m_littleEndian [protected] |
接続エンディアン
coil::Properties RTC::OutPortBase::m_properties [protected] |
プロパティ
coil::vstring RTC::OutPortBase::m_providerTypes [protected] |
利用可能provider