#include <InPortBase.h>
Public メソッド | |
InPortBase (const char *name, const char *data_type) | |
コンストラクタ | |
virtual | ~InPortBase (void) |
void | init (coil::Properties &prop) |
プロパティの初期化 | |
virtual bool | read ()=0 |
RTObject_impl::readAll()から呼ばれる仮想関数. | |
coil::Properties & | properties () |
プロパティを取得する | |
const std::vector < InPortConnector * > & | connectors () |
Connector を取得. | |
ConnectorInfoList | getConnectorProfiles () |
ConnectorProfile を取得. | |
coil::vstring | getConnectorIds () |
ConnectorId を取得. | |
coil::vstring | getConnectorNames () |
Connectorの名前を取得. | |
InPortConnector * | getConnectorById (const char *id) |
ConnectorProfileをIDで取得. | |
InPortConnector * | 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< InPortConnector * > | ConnectorList |
Protected メソッド | |
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 () |
InPort provider の初期化. | |
void | initConsumers () |
OutPort consumer の初期化. | |
bool | checkEndian (const coil::Properties &prop, bool &littleEndian) |
シリアライザのエンディアンをチェックする | |
InPortProvider * | createProvider (ConnectorProfile &cprof, coil::Properties &prop) |
InPort provider の生成. | |
OutPortConsumer * | createConsumer (const ConnectorProfile &cprof, coil::Properties &prop) |
OutPort consumer の生成. | |
InPortConnector * | createConnector (ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider) |
InPortPushConnector の生成. | |
InPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer) |
InPortPullConnector の生成. | |
Protected 変数 | |
bool | m_singlebuffer |
バッファモード | |
CdrBufferBase * | m_thebuffer |
バッファ | |
coil::Properties | m_properties |
プロパティ | |
coil::vstring | m_providerTypes |
利用可能provider | |
coil::vstring | m_consumerTypes |
利用可能consumer | |
ConnectorList | m_connectors |
接続リスト | |
bool | m_littleEndian |
接続エンディアン | |
ConnectorListeners | m_listeners |
ConnectorDataListener リスナ. |
InPort 用 Port.
データ入力ポートの実装クラス。
RTC::InPortBase::InPortBase | ( | const char * | name, | |
const char * | data_type | |||
) |
コンストラクタ
コンストラクタ
name | ポート名称 | |
data_type | データタイプ |
virtual RTC::InPortBase::~InPortBase | ( | void | ) | [virtual] |
デストラクタ
virtual void RTC::InPortBase::activateInterfaces | ( | ) | [virtual] |
void RTC::InPortBase::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::InPortBase::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::InPortBase::checkEndian | ( | const coil::Properties & | prop, | |
bool & | littleEndian | |||
) | [protected] |
シリアライザのエンディアンをチェックする
与えられたプロパティに設定されている、データのシリアライザのエン ディアン指定をチェックする。正しいエンディアン指定がなされていれ ば、true を返し、引数 littleEndian に、設定値がリトルエンディア ンであれば true が、ビッグエンディアンであれば false が返される。
prop | チェックするプロパティ | |
littleEndian | エンディアン情報(true:little,false:big) |
virtual ReturnCode_t RTC::InPortBase::connect | ( | ConnectorProfile & | connector_profile | ) | throw (CORBA::SystemException) [virtual] |
[CORBA interface] Port の接続を行う
与えられた ConnectoionProfile の情報に基づき、Port間の接続を確立 する。この関数は主にアプリケーションプログラムやツールから呼び出 すことを前提としている。
connector_profile | ConnectorProfile |
RTC::PortBaseを再定義しています。
const std::vector<InPortConnector*>& RTC::InPortBase::connectors | ( | ) |
Connector を取得.
現在所有しているコネクタを取得する。
InPortConnector* RTC::InPortBase::createConnector | ( | const ConnectorProfile & | cprof, | |
coil::Properties & | prop, | |||
OutPortConsumer * | consumer | |||
) | [protected] |
InPortPullConnector の生成.
Connector を生成し、生成が成功すれば m_connectors に保存する。 生成に失敗した場合 0 を返す。
InPortConnector* RTC::InPortBase::createConnector | ( | ConnectorProfile & | cprof, | |
coil::Properties & | prop, | |||
InPortProvider * | provider | |||
) | [protected] |
InPortPushConnector の生成.
Connector を生成し、生成が成功すれば m_connectors に保存する。 生成に失敗した場合 0 を返す。
OutPortConsumer* RTC::InPortBase::createConsumer | ( | const ConnectorProfile & | cprof, | |
coil::Properties & | prop | |||
) | [protected] |
OutPort consumer の生成.
OutPortConsumer を生成する。 生成に失敗した場合 0 を返す。
InPortProvider* RTC::InPortBase::createProvider | ( | ConnectorProfile & | cprof, | |
coil::Properties & | prop | |||
) | [protected] |
InPort provider の生成.
InPortProvider を生成し、情報を ConnectorProfile に公開する。 生成に失敗した場合 0 を返す。
virtual void RTC::InPortBase::deactivateInterfaces | ( | ) | [virtual] |
InPortConnector* RTC::InPortBase::getConnectorById | ( | const char * | id | ) |
ConnectorProfileをIDで取得.
現在所有しているコネクタをIDで取得する。
id | Connector ID |
InPortConnector* RTC::InPortBase::getConnectorByName | ( | const char * | name | ) |
ConnectorProfileを名前で取得.
現在所有しているコネクタを名前で取得する。
name | Connector name |
coil::vstring RTC::InPortBase::getConnectorIds | ( | ) |
ConnectorId を取得.
現在所有しているコネクタのIDを取得する。
coil::vstring RTC::InPortBase::getConnectorNames | ( | ) |
Connectorの名前を取得.
現在所有しているコネクタの名前を取得する。
bool RTC::InPortBase::getConnectorProfileById | ( | const char * | id, | |
ConnectorInfo & | prof | |||
) |
ConnectorProfileをIDで取得.
現在所有しているコネクタをIDで取得する。
id | Connector ID | |
prof | ConnectorProfile |
bool RTC::InPortBase::getConnectorProfileByName | ( | const char * | name, | |
ConnectorInfo & | prof | |||
) |
ConnectorProfileを名前で取得.
現在所有しているコネクタを名前で取得する。
name | Connector name | |
prof | ConnectorProfile |
ConnectorInfoList RTC::InPortBase::getConnectorProfiles | ( | ) |
ConnectorProfile を取得.
現在所有しているコネクタのProfileを取得する。
void RTC::InPortBase::init | ( | coil::Properties & | prop | ) |
プロパティの初期化
指定されたプロパティで初期化する。
prop | 設定するプロパティ |
void RTC::InPortBase::initConsumers | ( | ) | [protected] |
OutPort consumer の初期化.
void RTC::InPortBase::initProviders | ( | ) | [protected] |
InPort provider の初期化.
bool RTC::InPortBase::isLittleEndian | ( | ) |
endian 設定を返す
endian 設定のbool値を返す。
coil::Properties& RTC::InPortBase::properties | ( | ) |
プロパティを取得する
ポートのプロパティを取得する。
virtual ReturnCode_t RTC::InPortBase::publishInterfaces | ( | ConnectorProfile & | connector_profile | ) | [protected, virtual] |
Interface情報を公開する.
Interface情報を公開する。 引数の ConnectorProfile に格納されている dataflow_type が push 型 の場合は、指定された interface_type の InPortProvider に関する情報 を ConnectorProfile::properties に書込み呼び出し側に戻す。
dataport.dataflow_type
connector_profile | コネクタプロファイル |
RTC::PortBaseを実装しています。
virtual bool RTC::InPortBase::read | ( | ) | [pure virtual] |
RTObject_impl::readAll()から呼ばれる仮想関数.
DataPort からデータを読み出す
RTC::InPort< DataType >で実装されています。
void RTC::InPortBase::removeConnectorDataListener | ( | ConnectorDataListenerType | listener_type, | |
ConnectorDataListener * | listener | |||
) |
void RTC::InPortBase::removeConnectorListener | ( | ConnectorListenerType | callback_type, | |
ConnectorListener * | listener | |||
) |
virtual ReturnCode_t RTC::InPortBase::subscribeInterfaces | ( | const ConnectorProfile & | connector_profile | ) | [protected, virtual] |
Interfaceに接続する.
Interfaceに接続する。 Portが所有するConsumerに適合するProviderに関する情報を ConnectorProfile::properties から抽出し、 ConsumerにCORBAオブジェクト参照を設定する。
connector_profile | コネクタ・プロファイル |
RTC::PortBaseを実装しています。
virtual void RTC::InPortBase::unsubscribeInterfaces | ( | const ConnectorProfile & | connector_profile | ) | [protected, virtual] |
Interfaceへの接続を解除する.
Interfaceへの接続を解除する。 与えられたConnectorProfileに関連するConsumerに設定された全てのObjectを 解放し接続を解除する。
connector_profile | コネクタ・プロファイル |
RTC::PortBaseを実装しています。
DATAPORTSTATUS_ENUM typedef std::vector<InPortConnector*> RTC::InPortBase::ConnectorList |
ConnectorList RTC::InPortBase::m_connectors [protected] |
coil::vstring RTC::InPortBase::m_consumerTypes [protected] |
利用可能consumer
ConnectorListeners RTC::InPortBase::m_listeners [protected] |
bool RTC::InPortBase::m_littleEndian [protected] |
接続エンディアン
coil::Properties RTC::InPortBase::m_properties [protected] |
プロパティ
coil::vstring RTC::InPortBase::m_providerTypes [protected] |
利用可能provider
bool RTC::InPortBase::m_singlebuffer [protected] |
バッファモード
true:single buffer mode. false:multi buffer mode.
CdrBufferBase* RTC::InPortBase::m_thebuffer [protected] |
バッファ