OpenRTM-aist
1.2.1
|
#include <InPort.h>
公開メンバ関数 | |
DATAPORTSTATUS_ENUM | InPort (const char *name, DataType &value, int bufsize=64, bool read_block=false, bool write_block=false, int read_timeout=0, int write_timeout=0) |
コンストラクタ [詳解] | |
virtual | ~InPort (void) |
デストラクタ [詳解] | |
virtual const char * | name () |
ポート名称を取得する。 [詳解] | |
virtual bool | isNew () |
最新データが存在するか確認する [詳解] | |
virtual bool | isEmpty () |
バッファが空かどうか確認する [詳解] | |
virtual void | write (const DataType &data) |
データの書き込み [詳解] | |
bool | read () |
DataPort から値を読み出す [詳解] | |
virtual void | update () |
バインドされた T 型の変数に InPort バッファの最新値を読み込む [詳解] | |
void | operator>> (DataType &rhs) |
T 型のデータへ InPort の最新値データを読み込む [詳解] | |
DataPortStatus::Enum | getStatus (int index) |
特定のコネクタへの書き込みステータスを得る [詳解] | |
DataPortStatusList | getStatusList () |
特定のコネクタへの書き込みステータスリストを得る [詳解] | |
void | setOnRead (OnRead< DataType > *on_read) |
InPort バッファへデータ読み込み時のコールバックの設定 [詳解] | |
void | setOnReadConvert (OnReadConvert< DataType > *on_rconvert) |
InPort バッファへデータ読み出し時のコールバックの設定 [詳解] | |
![]() | |
InPortBase (const char *name, const char *data_type) | |
コンストラクタ [詳解] | |
virtual | ~InPortBase (void) |
デストラクタ [詳解] | |
void | init (coil::Properties &prop) |
プロパティの初期化 [詳解] | |
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 の接続を行う [詳解] | |
virtual ConnectorListeners & | getListeners () |
リスナホルダを取得する [詳解] | |
virtual ReturnCode_t | notify_connect (ConnectorProfile &connector_profile) throw (CORBA::SystemException) |
[CORBA interface] Port の接続通知を行う [詳解] | |
![]() | |
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 DirectPortBase * | getDirectPort () |
direct通信用ポートオブジェクト取得 [詳解] | |
その他の継承メンバ | |
![]() | |
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 } |
![]() | |
static const char * | toString (DataPortStatus::Enum status) |
DataPortStatus リターンコードを文字列に変換 [詳解] | |
![]() | |
DATAPORTSTATUS_ENUM typedef std::vector< InPortConnector * > | ConnectorList |
![]() | |
typedef coil::Guard< coil::Mutex > | Guard |
![]() | |
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 の生成 [詳解] | |
OutPortBase * | getLocalOutPort (const ConnectorInfo &profile) |
ローカルのピアOutPortを取得 [詳解] | |
![]() | |
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) |
![]() | |
bool | m_singlebuffer |
バッファモード [詳解] | |
CdrBufferBase * | m_thebuffer |
バッファ [詳解] | |
coil::vstring | m_providerTypes |
利用可能provider [詳解] | |
coil::vstring | m_consumerTypes |
利用可能consumer [詳解] | |
ConnectorList | m_connectors |
接続リスト [詳解] | |
bool | m_littleEndian |
接続エンディアン [詳解] | |
ConnectorListeners | m_listeners |
ConnectorDataListener リスナ [詳解] | |
![]() | |
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 の接続の最大数 [詳解] | |
ConnectionCallback * | m_onPublishInterfaces |
Callback functor オブジェクト [詳解] | |
ConnectionCallback * | m_onSubscribeInterfaces |
Callback functor オブジェクト [詳解] | |
ConnectionCallback * | m_onConnected |
Callback functor オブジェクト [詳解] | |
ConnectionCallback * | m_onUnsubscribeInterfaces |
Callback functor オブジェクト [詳解] | |
ConnectionCallback * | m_onDisconnected |
Callback functor オブジェクト [詳解] | |
ConnectionCallback * | m_onConnectionLost |
Callback functor オブジェクト [詳解] | |
PortConnectListeners * | m_portconnListeners |
PortConnectListenerホルダ [詳解] | |
DirectPortBase * | m_directport |
InPort テンプレートクラス
InPort の実装である InPort<T> のテンプレートクラス。 <T> はBasicDataType.idl にて定義されている型で、メンバとして Time 型の tm , および T型の data を持つ構造体でなくてはならない。 InPort は内部にリングバッファを持ち、外部から送信されたデータを順次 このリングバッファに格納する。リングバッファのサイズはデフォルトで64と なっているが、コンストラクタ引数によりサイズを指定することができる。 データはフラグによって未読、既読状態が管理され、isNew(), write(), read(), isFull(), isEmpty() 等のメソッドによりハンドリングすることができる。
OnRead系コールバック (読み出しに起因するイベントによりコールされる)
|
inline |
コンストラクタ
コンストラクタ。 パラメータとして与えられる T 型の変数にバインドされる。
name | InPort 名。InPortBase:name() により参照される。 |
value | この InPort にバインドされる T 型の変数 |
bufsize | InPort 内部のリングバッファのバッファ長(デフォルト値:64) |
read_block | 読込ブロックフラグ。 データ読込時に未読データがない場合、次のデータ受信までブロックする かどうかを設定(デフォルト値:false) |
write_block | 書込ブロックフラグ。 データ書込時にバッファがフルであった場合、バッファに空きができる までブロックするかどうかを設定(デフォルト値:false) |
read_timeout | 読込ブロックを指定していない場合の、データ読取タイム アウト時間(ミリ秒)(デフォルト値:0) |
write_timeout | 書込ブロックを指定していない場合の、データ書込タイム アウト時間(ミリ秒)(デフォルト値:0) |
参照先 RTC::InPortBase::addConnectorDataListener(), RTC::PortBase::m_directport, RTC::ON_BUFFER_READ, RTC::ON_RECEIVED.
|
inlinevirtual |
デストラクタ
デストラクタ。
|
inline |
|
inline |
|
inlinevirtual |
バッファが空かどうか確認する
InPortのバッファが空かどうかを bool 値で返す。 空の場合は true, 未読データがある場合は false を返す。
RTC::DirectInPortBase< DataType >を再実装しています。
参照先 RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC_DEBUG, RTC_TRACE.
|
inlinevirtual |
最新データが存在するか確認する
InPortに未読の最新データが到着しているかをbool値で返す。 InPortが未接続の場合、および接続コネクタのバッファがEmpty の場合にはfalseを返す。
RTC::DirectInPortBase< DataType >を再実装しています。
参照先 RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC_DEBUG, RTC_TRACE.
|
inlinevirtual |
ポート名称を取得する。
ポート名称を取得する。
|
inline |
|
inlinevirtual |
DataPort から値を読み出す
InPortに書き込まれたデータを読みだす。接続数が0、またはバッファに データが書き込まれていない状態で読みだした場合の戻り値は不定である。 バッファが空の状態のとき、 事前に設定されたモード (readback, do_nothing, block) に応じて、 以下のような動作をする。
バッファが空の状態では、InPortにバインドされた変数の値が返される。 したがって、初回読み出し時には不定値を返す可能性がある。 この関数を利用する際には、
ことが望ましい。
各コールバック関数は以下のように呼び出される。
RTC::InPortBaseを実装しています。
参照先 RTC::DataPortStatus::BUFFER_EMPTY, RTC::DataPortStatus::BUFFER_TIMEOUT, RTC::InPortBase::m_connectors, RTC::PortBase::m_connectorsMutex, RTC::DataPortStatus::PORT_OK, RTC_DEBUG, RTC_ERROR, RTC_TRACE, RTC_WARN.
参照元 RTC::InPort< DataType >::operator>>(), RTC::InPort< DataType >::update().
|
inline |
|
inline |
InPort バッファへデータ読み出し時のコールバックの設定
InPort が持つバッファからデータが読み出される際に呼ばれるコールバック オブジェクトを設定する。コールバックオブジェクトの戻り値がread()メソッド の呼出結果となる。
on_rconvert | OnReadConvert<DataType>型のオブジェクト |
|
inlinevirtual |
|
inlinevirtual |