OpenRTM-aist  1.2.1
公開メンバ関数 | 全メンバ一覧
RTC::OutPort< DataType > クラステンプレート

OutPort テンプレートクラス [詳解]

#include <OutPort.h>

RTC::OutPort< DataType > の継承関係図
Inheritance graph
[凡例]
RTC::OutPort< DataType > 連携図
Collaboration graph
[凡例]

公開メンバ関数

 OutPort (const char *name, DataType &value)
 コンストラクタ [詳解]
 
virtual ~OutPort (void)
 デストラクタ [詳解]
 
virtual bool write (DataType &value)
 データ書き込み [詳解]
 
bool write ()
 データ書き込み [詳解]
 
bool operator<< (DataType &value)
 データ書き込み [詳解]
 
DataPortStatus::Enum getStatus (int index)
 特定のコネクタへの書き込みステータスを得る [詳解]
 
DataPortStatusList getStatusList ()
 特定のコネクタへの書き込みステータスリストを得る [詳解]
 
void setOnWrite (OnWrite< DataType > *on_write)
 OnWrite コールバックの設定 [詳解]
 
void setOnWriteConvert (OnWriteConvert< DataType > *on_wconvert)
 OnWriteConvert コールバックの設定 [詳解]
 
virtual void read (DataType &data)
 データをダイレクトに読み込む [詳解]
 
virtual bool isEmpty ()
 新規データが無いことを確認 [詳解]
 
virtual bool isNew ()
 新規データの存在確認 [詳解]
 
- 基底クラス RTC::OutPortBase に属する継承公開メンバ関数
 OutPortBase (const char *name, const char *data_type)
 コンストラクタ [詳解]
 
virtual ~OutPortBase (void)
 デストラクタ [詳解]
 
void init (coil::Properties &prop)
 プロパティの初期化 [詳解]
 
coil::Propertiesproperties ()
 プロパティを取得する [詳解]
 
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 ()
 全ての 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 の接続を行う [詳解]
 
virtual ConnectorListenersgetListeners ()
 リスナホルダを取得する [詳解]
 
- 基底クラス RTC::PortBase に属する継承公開メンバ関数
 PortBase (const char *name="")
 コンストラクタ [詳解]
 
virtual ~PortBase (void)
 デストラクタ [詳解]
 
virtual PortProfile * get_port_profile () throw (CORBA::SystemException)
 [CORBA interface] PortProfileを取得する [詳解]
 
const PortProfile & getPortProfile () const
 PortProfile を取得する。 [詳解]
 
virtual ConnectorProfileList * get_connector_profiles () throw (CORBA::SystemException)
 [CORBA interface] ConnectorProfileListを取得する [詳解]
 
virtual ConnectorProfile * get_connector_profile (const char *connector_id) throw (CORBA::SystemException)
 [CORBA interface] ConnectorProfile を取得する [詳解]
 
virtual ReturnCode_t disconnect (const char *connector_id) throw (CORBA::SystemException)
 [CORBA interface] Port の接続を解除する [詳解]
 
virtual ReturnCode_t notify_disconnect (const char *connector_id) throw (CORBA::SystemException)
 [CORBA interface] Port の接続解除通知を行う [詳解]
 
virtual ReturnCode_t disconnect_all () throw (CORBA::SystemException)
 [CORBA interface] Port の全接続を解除する [詳解]
 
void setName (const char *name)
 Port の名前を設定する [詳解]
 
const char * getName () const
 Port の名前を取得する [詳解]
 
const PortProfile & getProfile () const
 PortProfileを取得する [詳解]
 
void setPortRef (PortService_ptr port_ref)
 Port のオブジェクト参照を設定する [詳解]
 
PortService_ptr getPortRef () const
 Port のオブジェクト参照を取得する [詳解]
 
void setOwner (RTObject_ptr owner)
 Port の owner の RTObject を指定する [詳解]
 
void setOnPublishInterfaces (ConnectionCallback *on_publish)
 インターフェースを公開する際に呼ばれるコールバックをセットする [詳解]
 
void setOnSubscribeInterfaces (ConnectionCallback *on_subscribe)
 インターフェースを取得する際に呼ばれるコールバックをセットする [詳解]
 
void setOnConnected (ConnectionCallback *on_connected)
 接続完了時に呼ばれるコールバックをセットする [詳解]
 
void setOnUnsubscribeInterfaces (ConnectionCallback *on_subscribe)
 インターフェースを解放する際に呼ばれるコールバックをセットする [詳解]
 
void setOnDisconnected (ConnectionCallback *on_disconnected)
 接続解除に呼ばれるコールバックをセットする [詳解]
 
void setOnConnectionLost (ConnectionCallback *on_connection_lost)
 ポートの接続がロストした場合に呼び出されるコールバックをセットする [詳解]
 
void setPortConnectListenerHolder (PortConnectListeners *portconnListeners)
 PortConnectListeners のホルダをセットする [詳解]
 
virtual DirectPortBasegetDirectPort ()
 direct通信用ポートオブジェクト取得 [詳解]
 

その他の継承メンバ

- 基底クラス RTC::DataPortStatus に属する継承公開型
enum  Enum {
  PORT_OK = 0, PORT_ERROR, BUFFER_ERROR, BUFFER_FULL,
  BUFFER_EMPTY, BUFFER_TIMEOUT, SEND_FULL, SEND_TIMEOUT,
  RECV_EMPTY, RECV_TIMEOUT, INVALID_ARGS, PRECONDITION_NOT_MET,
  CONNECTION_LOST, UNKNOWN_ERROR
}
 
- 基底クラス RTC::DataPortStatus に属する継承静的公開メンバ関数
static const char * toString (DataPortStatus::Enum status)
 DataPortStatus リターンコードを文字列に変換 [詳解]
 
- 基底クラス RTC::OutPortBase に属する継承公開変数類
DATAPORTSTATUS_ENUM typedef std::vector< OutPortConnector * > ConnectorList
 
- 基底クラス RTC::PortBase に属する継承限定公開型
typedef coil::Guard< coil::MutexGuard
 
- 基底クラス RTC::OutPortBase に属する継承限定公開メンバ関数
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 の生成 [詳解]
 
virtual ReturnCode_t notify_connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException)
 [CORBA interface] Port の接続通知を行う [詳解]
 
InPortBasegetLocalInPort (const ConnectorInfo &profile)
 ローカルのピアInPortを取得 [詳解]
 
- 基底クラス RTC::PortBase に属する継承限定公開メンバ関数
virtual ReturnCode_t connectNext (ConnectorProfile &connector_profile)
 次の Port に対して notify_connect() をコールする [詳解]
 
virtual ReturnCode_t disconnectNext (ConnectorProfile &connector_profile)
 次の Port に対して notify_disconnect() をコールする [詳解]
 
virtual void setConnectionLimit (int limit_value)
 接続の最大数を設定する。 [詳解]
 
virtual ReturnCode_t _publishInterfaces (void)
 Interface情報を公開する [詳解]
 
bool isEmptyId (const ConnectorProfile &connector_profile) const
 ConnectorProfile の connector_id フィールドが空かどうか判定 [詳解]
 
const std::string getUUID () const
 UUIDを生成する [詳解]
 
void setUUID (ConnectorProfile &connector_profile) const
 UUIDを生成し ConnectorProfile にセットする [詳解]
 
bool isExistingConnId (const char *id)
 id が既存の ConnectorProfile のものかどうか判定する [詳解]
 
ConnectorProfile findConnProfile (const char *id)
 id を持つ ConnectorProfile を探す [詳解]
 
CORBA::Long findConnProfileIndex (const char *id)
 id を持つ ConnectorProfile を探す [詳解]
 
void updateConnectorProfile (const ConnectorProfile &connector_profile)
 ConnectorProfile の追加もしくは更新 [詳解]
 
bool eraseConnectorProfile (const char *id)
 ConnectorProfile を削除する [詳解]
 
bool appendInterface (const char *name, const char *type_name, PortInterfacePolarity pol)
 PortInterfaceProfile に インターフェースを登録する [詳解]
 
bool deleteInterface (const char *name, PortInterfacePolarity pol)
 PortInterfaceProfile からインターフェース登録を削除する [詳解]
 
template<class ValueType >
void addProperty (const char *key, ValueType value)
 PortProfile の properties に NameValue 値を追加する [詳解]
 
void appendProperty (const char *key, const char *value)
 PortProfile の properties に NameValue 値を要素に追加する [詳解]
 
void updateConnectors ()
 存在しないポートをdisconnectする。 [詳解]
 
bool checkPorts (::RTC::PortServiceList &ports)
 ポートの存在を確認する。 [詳解]
 
void onNotifyConnect (const char *portname, RTC::ConnectorProfile &profile)
 
void onNotifyDisconnect (const char *portname, RTC::ConnectorProfile &profile)
 
void onUnsubscribeInterfaces (const char *portname, RTC::ConnectorProfile &profile)
 
void onPublishInterfaces (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onConnectNextport (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onSubscribeInterfaces (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onConnected (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onDisconnectNextport (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
void onDisconnected (const char *portname, RTC::ConnectorProfile &profile, ReturnCode_t ret)
 
- 基底クラス RTC::OutPortBase に属する継承限定公開変数類
std::vector< OutPortConnector * > m_connectors
 接続リスト [詳解]
 
coil::vstring m_providerTypes
 利用可能provider [詳解]
 
coil::vstring m_consumerTypes
 利用可能consumer [詳解]
 
bool m_littleEndian
 接続エンディアン [詳解]
 
ConnectorListeners m_listeners
 ConnectorDataListener リスナ [詳解]
 
- 基底クラス RTC::PortBase に属する継承限定公開変数類
coil::Properties m_properties
 プロパティ [詳解]
 
Logger rtclog
 ロガーストリーム [詳解]
 
PortProfile m_profile
 Port の PortProfile. [詳解]
 
RTC::PortService_var m_objref
 Port の オブジェクト参照 [詳解]
 
coil::Mutex m_profile_mutex
 PortProfile の mutex. [詳解]
 
coil::Mutex m_connectorsMutex
 
std::string m_ownerInstanceName
 インスタンス名 [詳解]
 
int m_connectionLimit
 Port の接続の最大数 [詳解]
 
ConnectionCallbackm_onPublishInterfaces
 Callback functor オブジェクト [詳解]
 
ConnectionCallbackm_onSubscribeInterfaces
 Callback functor オブジェクト [詳解]
 
ConnectionCallbackm_onConnected
 Callback functor オブジェクト [詳解]
 
ConnectionCallbackm_onUnsubscribeInterfaces
 Callback functor オブジェクト [詳解]
 
ConnectionCallbackm_onDisconnected
 Callback functor オブジェクト [詳解]
 
ConnectionCallbackm_onConnectionLost
 Callback functor オブジェクト [詳解]
 
PortConnectListenersm_portconnListeners
 PortConnectListenerホルダ [詳解]
 
DirectPortBasem_directport
 

詳解

template<class DataType>
class RTC::OutPort< DataType >

OutPort テンプレートクラス

OutPort テンプレートクラス、テンプレートの引数として、OutPortが 扱うデータ型 DataType をとる。

OnWrite系コールバック (書込みに起因するイベントによりコールされる)

から
0.2.0

構築子と解体子

template<class DataType >
RTC::OutPort< DataType >::OutPort ( const char *  name,
DataType &  value 
)
inline

コンストラクタ

コンストラクタ

引数
nameポート名
valueこのポートにバインドされるデータ変数
lengthバッファ長(デフォルト値:8)

参照先 RTC::OutPortBase::addConnectorDataListener(), RTC::PortBase::m_directport, RTC::ON_BUFFER_WRITE, RTC::ON_SEND.

template<class DataType >
virtual RTC::OutPort< DataType >::~OutPort ( void  )
inlinevirtual

デストラクタ

デストラクタ

関数詳解

template<class DataType >
DataPortStatus::Enum RTC::OutPort< DataType >::getStatus ( int  index)
inline

特定のコネクタへの書き込みステータスを得る

OutPort は接続ごとに Connector と呼ばれる仮想データチャネルを持 つ。write() 関数はこれら Connector に対してデータを書き込むが、 各 Connector は書き込みごとにステータスを返す。write() 関数では、 すべての Connector が正常終了したときのみ true を返し、それ以外 では false を返却する。この関数は write() が false の場合ステー タスを調べるのに使用することができる。

引数
indexConnector の index
戻り値
ステータス
template<class DataType >
DataPortStatusList RTC::OutPort< DataType >::getStatusList ( )
inline

特定のコネクタへの書き込みステータスリストを得る

OutPort は接続ごとに Connector と呼ばれる仮想データチャネルを持 つ。write() 関数はこれら Connector に対してデータを書き込むが、 各 Connector は書き込みごとにステータスを返す。write() 関数では、 すべての Connector が正常終了したときのみ true を返し、それ以外 では false を返却する。この関数は write() が false の場合ステー タスを調べるのに使用することができる。

戻り値
ステータスリスト
template<class DataType >
virtual bool RTC::OutPort< DataType >::isEmpty ( void  )
inlinevirtual

新規データが無いことを確認

戻り値
true:新規データなし

RTC::DirectOutPortBase< DataType >を再実装しています。

template<class DataType >
virtual bool RTC::OutPort< DataType >::isNew ( )
inlinevirtual

新規データの存在確認

戻り値
true:新規データあり

RTC::DirectOutPortBase< DataType >を再実装しています。

template<class DataType >
bool RTC::OutPort< DataType >::operator<< ( DataType &  value)
inline

データ書き込み

ポートへデータを書き込む。 設定された値をポートに書き込む。

引数
value書き込み対象データ
戻り値
書き込み処理結果(書き込み成功:true、書き込み失敗:false)

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

template<class DataType >
virtual void RTC::OutPort< DataType >::read ( DataType &  data)
inlinevirtual

データをダイレクトに読み込む

引数
data読み込むデータ

RTC::DirectOutPortBase< DataType >を再実装しています。

template<class DataType >
void RTC::OutPort< DataType >::setOnWrite ( OnWrite< DataType > *  on_write)
inline

OnWrite コールバックの設定

write() 呼び出し時に、各コネクタに対してデータを書き込む直前に呼 ばれる OnWrite コールバックファンクタを設定する。この関数により 設定されたファンクタオブジェクトの所有権は、呼び出し側が持つ。し たがっ const て、このファンクタオブジェクトの解体責任は呼び出し側にある。 ファンクタの設定を解除する場合には引数に 0 を渡すことで、コール バックが無効となる。

引数
on_writeOnWrite コールバックファンクタ
template<class DataType >
void RTC::OutPort< DataType >::setOnWriteConvert ( OnWriteConvert< DataType > *  on_wconvert)
inline

OnWriteConvert コールバックの設定

write() 呼び出し時に、各コネクタに対してデータを書き込み直前に呼 ばれ、データ変換を行う OnWriteConvert コールバックファンクタを設 定する。引数に直近で書き込まれたデータが与えられ、戻り値に実際に コネクタまたはバッファに書き込まれるデータを返すファンクタを設定 する。この関数により設定されたファンクタオブジェクトの所有権は、 呼び出し側が持つ。したがっ const て、このファンクタオブジェクト の解体責任は呼び出し側にある。ファンクタの設定を解除する場合には 引数に 0 を渡すことで、コールバックが無効となる。 データ書き込み 時に呼ばれる OnWriteConvert コールバックファンクタを設定する。こ のコールバック関数の処理結果が書き込まれる。このため書き込みデー タのフィルタリングが可能となる。

引数
on_wconvertOnWriteConvert コールバックファンクタ
template<class DataType >
virtual bool RTC::OutPort< DataType >::write ( DataType &  value)
inlinevirtual

データ書き込み

ポートへデータを書き込む。

  • コールバックファンクタ OnWrite がセットされている場合、 OutPort が保持するバッファに書き込む前に OnWrite が呼ばれる。
  • OutPort が保持するバッファがオーバーフローを検出できるバッファであり、 かつ、書き込む際にバッファがオーバーフローを検出した場合、 コールバックファンクタ OnOverflow が呼ばれる。
  • コールバックファンクタ OnWriteConvert がセットされている場合、 バッファ書き込み時に、 OnWriteConvert の operator() の戻り値が バッファに書き込まれる。
引数
value書き込み対象データ
戻り値
書き込み処理結果(書き込み成功:true、書き込み失敗:false)

参照先 RTC::DataPortStatus::CONNECTION_LOST, RTC::PortBase::disconnect(), RTC::PortBase::findConnProfile(), CORBA_SeqUtil::for_each(), RTC::OutPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC::PortBase::m_onConnectionLost, RTC::DataPortStatus::PORT_OK, RTC_DEBUG, RTC_TRACE, RTC_WARN.

template<class DataType >
bool RTC::OutPort< DataType >::write ( )
inlinevirtual

データ書き込み

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

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

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

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


このクラス詳解は次のファイルから抽出されました: