OpenRTM  1.0.0
Public メソッド | Public 変数 | Protected メソッド | Protected 変数
クラス RTC::InPortBase

InPort 用 Port. [詳細]

#include <InPortBase.h>

RTC::InPortBaseに対する継承グラフ
RTC::PortBase RTC::DataPortStatus RTC::InPort< DataType >

すべてのメンバ一覧

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::Propertiesproperties ()
 プロパティを取得する
const std::vector
< InPortConnector * > & 
connectors ()
 Connector を取得
ConnectorInfoList getConnectorProfiles ()
 ConnectorProfile を取得
coil::vstring getConnectorIds ()
 ConnectorId を取得
coil::vstring getConnectorNames ()
 Connectorの名前を取得
InPortConnectorgetConnectorById (const char *id)
 ConnectorProfileをIDで取得
InPortConnectorgetConnectorByName (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)
 シリアライザのエンディアンをチェックする
InPortProvidercreateProvider (ConnectorProfile &cprof, coil::Properties &prop)
 InPort provider の生成
OutPortConsumercreateConsumer (const ConnectorProfile &cprof, coil::Properties &prop)
 OutPort consumer の生成
InPortConnectorcreateConnector (ConnectorProfile &cprof, coil::Properties &prop, InPortProvider *provider)
 InPortPushConnector の生成
InPortConnectorcreateConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortConsumer *consumer)
 InPortPullConnector の生成

Protected 変数

bool m_singlebuffer
 バッファモード
CdrBufferBasem_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.

データ入力ポートの実装クラス。

から:
0.4.0

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

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]

InPortを activates する

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

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

void RTC::InPortBase::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::InPortBase::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リスナオブジェクトの自動的解体を行うかどうかのフラグ
bool RTC::InPortBase::checkEndian ( const coil::Properties prop,
bool &  littleEndian 
) [protected]

シリアライザのエンディアンをチェックする

与えられたプロパティに設定されている、データのシリアライザのエン ディアン指定をチェックする。正しいエンディアン指定がなされていれ ば、true を返し、引数 littleEndian に、設定値がリトルエンディア ンであれば true が、ビッグエンディアンであれば false が返される。

引数:
propチェックするプロパティ
littleEndianエンディアン情報(true:little,false:big)
戻り値:
true:"serializer"キーが存在しない または 存在していて内容がある。 ,false:"serializer"キーが存在しているが内容が空 または 存在しているが内容が"little","big" 以外。
virtual ReturnCode_t RTC::InPortBase::connect ( ConnectorProfile &  connector_profile) throw (CORBA::SystemException) [virtual]

[CORBA interface] Port の接続を行う

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

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

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

const std::vector<InPortConnector*>& RTC::InPortBase::connectors ( )

Connector を取得

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

戻り値:
connector のリスト
InPortConnector* RTC::InPortBase::createConnector ( ConnectorProfile &  cprof,
coil::Properties prop,
InPortProvider provider 
) [protected]

InPortPushConnector の生成

Connector を生成し、生成が成功すれば m_connectors に保存する。 生成に失敗した場合 0 を返す。

InPortConnector* RTC::InPortBase::createConnector ( const ConnectorProfile &  cprof,
coil::Properties prop,
OutPortConsumer consumer 
) [protected]

InPortPullConnector の生成

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]

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

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

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

ConnectorProfileをIDで取得

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

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

ConnectorProfileを名前で取得

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

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

ConnectorId を取得

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

戻り値:
ConnectorId のリスト

Connectorの名前を取得

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

戻り値:
Connector名のリスト
bool RTC::InPortBase::getConnectorProfileById ( const char *  id,
ConnectorInfo prof 
)

ConnectorProfileをIDで取得

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

引数:
idConnector ID
profConnectorProfile
戻り値:
false 指定したIDがない
bool RTC::InPortBase::getConnectorProfileByName ( const char *  name,
ConnectorInfo prof 
)

ConnectorProfileを名前で取得

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

引数:
nameConnector name
profConnectorProfile
戻り値:
false 指定した名前がない

ConnectorProfile を取得

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

戻り値:
ConnectorProfile のリスト

プロパティの初期化

指定されたプロパティで初期化する。

引数:
prop設定するプロパティ
void RTC::InPortBase::initConsumers ( ) [protected]

OutPort consumer の初期化

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

InPort provider の初期化

endian 設定を返す

endian 設定のbool値を返す。

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

プロパティを取得する

ポートのプロパティを取得する。

戻り値:
プロパティ
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コネクタプロファイル
戻り値:
ReturnCode_t 型のリターンコード

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

virtual bool RTC::InPortBase::read ( ) [pure virtual]

RTObject_impl::readAll()から呼ばれる仮想関数

DataPort からデータを読み出す

戻り値:
true:成功,false:失敗

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

ConnectorDataListener リスナを削除する

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

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

ConnectorDataListener リスナを削除する

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

引数:
listener_typeリスナタイプ
listenerリスナオブジェクトへのポインタ
virtual ReturnCode_t RTC::InPortBase::subscribeInterfaces ( const ConnectorProfile &  connector_profile) [protected, virtual]

Interfaceに接続する

Interfaceに接続する。 Portが所有するConsumerに適合するProviderに関する情報を ConnectorProfile::properties から抽出し、 ConsumerにCORBAオブジェクト参照を設定する。

引数:
connector_profileコネクタ・プロファイル
戻り値:
ReturnCode_t 型のリターンコード

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

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

Interfaceへの接続を解除する

Interfaceへの接続を解除する。 与えられたConnectorProfileに関連するConsumerに設定された全てのObjectを 解放し接続を解除する。

引数:
connector_profileコネクタ・プロファイル

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


変数

利用可能consumer

接続エンディアン

プロパティ

利用可能provider

バッファモード

true:single buffer mode. false:multi buffer mode.

バッファ