#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 () |
OutPort名称の取得 | |
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 () |
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) |
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 の基底クラス。
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でリターンする。
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] |
データ書き込み
ポートへデータを書き込む。 バインドされた変数に設定された値をポートに書き込む。
RTC::OutPort< DataType >で実装されています。
coil::Properties& RTC::OutPortBase::properties | ( | ) |
OutPort名称の取得
OutPortの名称を取得する。
const std::vector<OutPortConnector*>& RTC::OutPortBase::connectors | ( | ) |
Connector を取得
現在所有しているコネクタを取得する。
ConnectorInfoList RTC::OutPortBase::getConnectorProfiles | ( | ) |
ConnectorProfile を取得
現在所有しているコネクタのProfileを取得する。
coil::vstring RTC::OutPortBase::getConnectorIds | ( | ) |
ConnectorId を取得
現在所有しているコネクタのIDを取得する。
coil::vstring RTC::OutPortBase::getConnectorNames | ( | ) |
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 |
bool RTC::OutPortBase::getConnectorProfileByName | ( | const char * | name, | |
ConnectorInfo & | prof | |||
) |
ConnectorProfileを名前で取得
現在所有しているコネクタを名前で取得する。
name | Connector name | |
prof | ConnectorProfile |
virtual void RTC::OutPortBase::activateInterfaces | ( | ) | [virtual] |
virtual void RTC::OutPortBase::deactivateInterfaces | ( | ) | [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::removeConnectorDataListener | ( | ConnectorDataListenerType | listener_type, | |
ConnectorDataListener * | listener | |||
) |
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 | リスナオブジェクトの自動的解体を行うかどうかのフラグ |
void RTC::OutPortBase::removeConnectorListener | ( | ConnectorListenerType | callback_type, | |
ConnectorListener * | listener | |||
) |
bool RTC::OutPortBase::isLittleEndian | ( | ) |
endian 設定を返す
endian 設定のbool値を返す。
virtual ReturnCode_t RTC::OutPortBase::connect | ( | ConnectorProfile & | connector_profile | ) | throw (CORBA::SystemException) [virtual] |
[CORBA interface] Port の接続を行う
与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立 する。この関数は主にアプリケーションプログラムやツールから呼び出 すことを前提としている。
connector_profile | ConnectorProfile |
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 | 接続に関するプロファイル情報 |
RTC::PortBaseを実装しています。
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を実装しています。
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 |
coil::Properties RTC::OutPortBase::m_properties [protected] |
プロパティ
std::vector<OutPortConnector*> RTC::OutPortBase::m_connectors [protected] |
coil::vstring RTC::OutPortBase::m_providerTypes [protected] |
利用可能provider
coil::vstring RTC::OutPortBase::m_consumerTypes [protected] |
利用可能consumer
bool RTC::OutPortBase::m_littleEndian [protected] |
接続エンディアン
ConnectorListeners RTC::OutPortBase::m_listeners [protected] |