OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
RTC::OutPortBase クラスabstract

OutPort 基底クラス [詳解]

#include <OutPortBase.h>

RTC::OutPortBase の継承関係図
RTC::OutPortBase 連携図

公開型

using ConnectorList = std::vector<OutPortConnector*>
 

公開メンバ関数

 OutPortBase (const char *name, const char *data_type)
 コンストラクタ
 
 ~OutPortBase () override
 デストラクタ
 
void init (coil::Properties &prop)
 プロパティの初期化
 
virtual bool write ()=0
 データ書き込み
 
coil::Properties & properties ()
 プロパティを取得する
 
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を名前で取得
 
void activateInterfaces () override
 全ての Port のインターフェースを activate する
 
void deactivateInterfaces () override
 全ての Port のインターフェースを deactivate する
 
void addConnectorDataListener (ConnectorDataListenerType type, ConnectorDataListener *listener, bool autoclean=true)
 ConnectorDataListener リスナを追加する
 
void removeConnectorDataListener (ConnectorDataListenerType type, ConnectorDataListener *listener)
 ConnectorDataListener リスナを削除する
 
void addConnectorListener (ConnectorListenerType type, ConnectorListener *listener, bool autoclean=true)
 ConnectorListener リスナを追加する
 
void removeConnectorListener (ConnectorListenerType type, ConnectorListener *listener)
 ConnectorDataListener リスナを削除する
 
bool isLittleEndian ()
 endian 設定を返す
 
ReturnCode_t connect (ConnectorProfile &connector_profile) override
 [CORBA interface] Port の接続を行う
 
virtual ConnectorListenersBasegetListeners ()
 リスナホルダを取得する
 
- 基底クラス RTC::PortBase に属する継承公開メンバ関数
 PortBase (const char *name="")
 コンストラクタ
 
 ~PortBase () override
 デストラクタ
 
PortProfile * get_port_profile () override
 [CORBA interface] PortProfileを取得する
 
const PortProfile & getPortProfile () const
 PortProfile を取得する。
 
ConnectorProfileList * get_connector_profiles () override
 [CORBA interface] ConnectorProfileListを取得する
 
ConnectorProfile * get_connector_profile (const char *connector_id) override
 [CORBA interface] ConnectorProfile を取得する
 
ReturnCode_t connect (ConnectorProfile &connector_profile) override
 [CORBA interface] Port の接続を行う
 
ReturnCode_t notify_connect (ConnectorProfile &connector_profile) override
 [CORBA interface] Port の接続通知を行う
 
ReturnCode_t disconnect (const char *connector_id) override
 [CORBA interface] Port の接続を解除する
 
ReturnCode_t notify_disconnect (const char *connector_id) override
 [CORBA interface] Port の接続解除通知を行う
 
ReturnCode_t disconnect_all () override
 [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_unsubscribe)
 インターフェースを解放する際に呼ばれるコールバックをセットする
 
void setOnDisconnected (ConnectionCallback *on_disconnected)
 接続解除に呼ばれるコールバックをセットする
 
void setOnConnectionLost (ConnectionCallback *on_connection_lost)
 ポートの接続がロストした場合に呼び出されるコールバックをセットする
 
void setPortConnectListenerHolder (PortConnectListeners *portconnListeners)
 PortConnectListeners のホルダをセットする
 
virtual DirectPortBasegetDirectPort ()
 direct通信用ポートオブジェクト取得
 

限定公開メンバ関数

void configure ()
 OutPortの設定を行う
 
ReturnCode_t publishInterfaces (ConnectorProfile &cprof) override
 Interface 情報を公開する
 
ReturnCode_t subscribeInterfaces (const ConnectorProfile &cprof) override
 Interface に接続する
 
void unsubscribeInterfaces (const ConnectorProfile &connector_profile) override
 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 の生成
 
ReturnCode_t notify_connect (ConnectorProfile &connector_profile) override
 
InPortBasegetLocalInPort (const ConnectorInfo &profile)
 ローカルのピアInPortを取得
 
virtual void initConnectorListeners ()
 コネクタリスナの初期化
 
- 基底クラス RTC::PortBase に属する継承限定公開メンバ関数
virtual ReturnCode_t connectNext (ConnectorProfile &connector_profile)
 次の Port に対して notify_connect() をコールする
 
virtual ReturnCode_t disconnectNext (ConnectorProfile &cprof)
 次の Port に対して notify_disconnect() をコールする
 
virtual void setConnectionLimit (int limit_value)
 接続の最大数を設定する。
 
virtual ReturnCode_t _publishInterfaces ()
 Interface情報を公開する
 
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 *instance_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 isExistingMarshalingType (coil::Properties &con_prop)
 指定のシリアライザが使用可能かを判定する
 

限定公開変数類

std::vector< OutPortConnector * > m_connectors
 接続リスト
 
coil::vstring m_providerTypes
 利用可能provider
 
coil::vstring m_consumerTypes
 利用可能consumer
 
bool m_littleEndian
 接続エンディアン
 
ConnectorListenersBasem_listeners
 ConnectorDataListener リスナ
 
- 基底クラス RTC::PortBase に属する継承限定公開変数類
coil::Properties m_properties
 プロパティ
 
Logger rtclog
 ロガーストリーム
 
PortProfile m_profile
 Port の PortProfile
 
RTC::PortService_var m_objref
 Port の オブジェクト参照
 
std::mutex m_profile_mutex
 PortProfile の mutex
 
std::mutex m_connectorsMutex
 
std::string m_ownerInstanceName = "unknown"
 インスタンス名
 
int m_connectionLimit {-1}
 Port の接続の最大数
 
ConnectionCallbackm_onPublishInterfaces {nullptr}
 Callback functor オブジェクト
 
ConnectionCallbackm_onSubscribeInterfaces {nullptr}
 Callback functor オブジェクト
 
ConnectionCallbackm_onConnected {nullptr}
 Callback functor オブジェクト
 
ConnectionCallbackm_onUnsubscribeInterfaces {nullptr}
 Callback functor オブジェクト
 
ConnectionCallbackm_onDisconnected {nullptr}
 Callback functor オブジェクト
 
ConnectionCallbackm_onConnectionLost {nullptr}
 Callback functor オブジェクト
 
PortConnectListenersm_portconnListeners {nullptr}
 PortConnectListenerホルダ
 
DirectPortBasem_directport {nullptr}
 

その他の継承メンバ

- 基底クラス RTC::PortBase に属する継承静的限定公開メンバ関数
static bool isEmptyId (const ConnectorProfile &connector_profile)
 ConnectorProfile の connector_id フィールドが空かどうか判定
 
static std::string getUUID ()
 UUIDを生成する
 
static void setUUID (ConnectorProfile &connector_profile)
 UUIDを生成し ConnectorProfile にセットする
 

詳解

OutPort 基底クラス

OutPort の基底クラス。

Properties: port.outport プロパティは

  • port.outport
  • port.outport.[name]

ConnectorProfile.properties の場合は

  • dataport.outport

以下に指定したものが渡される。 (port.outport.[name]が優先される) さらに、一部のプロパティは接続時に ConnectorProfile により 渡される場合があり、その場合は ConnectorProfile が優先される。

  • input.throughput.profile: enable
  • input.throughput.update_rate: count [n/count]
  • input.throughput.total_bytes: [bytes]
  • input.throughput.total_count: [n]
  • input.throughput.max_size: [bytes]
  • input.throughput.min_size: [bytes]
  • input.throughput.avg_size: [bytes]
  • input.throughput.byte_sec: [bytes/sec]
  • output.throughput.profile: enable
  • output.throughput.update_rate: count [n/count]
  • output.throughput.total_bytes: [bytes]
  • output.throughput.total_count:[n]
  • output.throughput.max_size: [bytes]
  • output.throughput.min_size: [bytes]
  • output.throughput.avg_size: [bytes]
  • output.throughput.max_sendtime: [sec]
  • output.throughput.min_sendtime: [sec]
  • output.throughput.avg_sendtime: [sec]
  • output.throughput.byte_sec: [bytes/sec]

dataport.dataflow_type
dataport.interface_type
dataport.subscription_type

[buffer]

  • buffer.type:
    利用可能なバッファのタイプ
    ConnectorProfile の場合は利用するバッファのタイプ 無指定の場合はデフォルトの ringbuffer が使用される。
    ex. ringbuffer, shmbuffer, doublebuffer, etc. 正し、Consumer, Publisher のタイプによっては特定のバッファ型を 要求するものがあるための、その場合は指定は無効となる。
  • buffer.length:
    バッファの長さ
  • buffer.write.full_policy:
    上書きするかどうかのポリシー
    overwrite (上書き), do_nothing (何もしない), block (ブロックする) block を指定した場合、次の timeout 値を指定すれば、指定時間後 書き込み不可能であればタイムアウトする。
  • buffer.write.timeout:
    タイムアウト時間を [sec] で指定する。 1 sec -> 1.0, 1 ms -> 0.001, タイムアウトしない -> 0.0
  • buffer.read.empty_policy:
    バッファが空のときの読み出しポリシー
    last (最後の要素), do_nothing (何もしない), block (ブロックする) block を指定した場合、次の timeout 値を指定すれば、指定時間後 読み出し不可能であればタイムアウトする。
  • buffer.read.timeout:
    タイムアウト時間 [sec] で指定する。 1sec -> 1.0, 1ms -> 0.001, タイムアウトしない -> 0.0
  • その他バッファ毎に固有なオプション

[publihser]

  • publisher.types:
    利用可能な Publisher のタイプ
    new, periodic, flush, etc..
  • publisher.push_policy:
    InPortへデータを送信するポリシー
    • all: バッファにたまっているデータをすべて送信
    • fifo: バッファをFIFOとみなして送信
    • skip: 古いデータから一定数を間引いて送信
    • new: 常に新しいデータのみを送信
  • publisher.skip_count:
    publisher.skip_count = n
    n: n要素毎にひとつ送信
  • publisher.push_rate:
  • publisher.thread.type:
    Publisher のスレッドのタイプ
  • publisher.thread.measurement.exec_time: yes/no
  • publisher.thread.measurement.exec_count: number
  • publisher.thread.measurement.period_time: yes/no
  • publisher.thread.measurement.period_count: number

[interface]

  • interface.types:
    OutPort interfaceのタイプ
    ex. corba_cdr, corba_any, raw_tcp などカンマ区切りで指定。何も 指定しなければ利用可能なすべてのプロバイダが使用される

OutPort 側の connect() では以下のシーケンスで処理が行われる。

  1. OutPort に関連する connector 情報の生成およびセット
  2. InPortに関連する connector 情報の取得
    • ConnectorProfile::properties["dataport.corba_any.inport_ref"]に OutPortAny のオブジェクトリファレンスが設定されている場合、 リファレンスを取得してConsumerオブジェクトにセットする。 リファレンスがセットされていなければ無視して継続。 (OutPortがconnect() 呼び出しのエントリポイントの場合は、 InPortのオブジェクトリファレンスはセットされていないはずである。)
  3. PortBase::connect() をコール Portの接続の基本処理が行われる。
  4. 上記2.でInPortのリファレンスが取得できなければ、再度InPortに 関連する connector 情報を取得する。
  5. ConnectorProfile::properties で与えられた情報から、 OutPort側の初期化処理を行う。
  • [dataport.interface_type]
    • CORBA_Any の場合: InPortAny を通してデータ交換される。 ConnectorProfile::properties["dataport.corba_any.inport_ref"]に InPortAny のオブジェクトリファレンスをセットする。
    • RawTCP の場合: Raw TCP socket を通してデータ交換される。 ConnectorProfile::properties["dataport.raw_tcp.server_addr"] にInPort側のサーバアドレスをセットする。
  • [dataport.dataflow_type]
    • Pushの場合: Subscriberを生成する。Subscriberのタイプは、 dataport.subscription_type に設定されている。
    • Pullの場合: InPort側がデータをPull型で取得するため、 特に何もする必要が無い。
  • [dataport.subscription_type]
    • Onceの場合: SubscriberOnceを生成する。
    • Newの場合: SubscriberNewを生成する。
    • Periodicの場合: SubscriberPeriodicを生成する。
  • [dataport.publisher.push_rate]
    • dataport.subscription_type=Periodicの場合周期を設定する。
  1. 上記の処理のうち一つでもエラーであれば、エラーリターンする。 正常に処理が行われた場合はRTC::RTC_OKでリターンする。
から
0.2.0

型定義メンバ詳解

◆ ConnectorList

構築子と解体子

◆ OutPortBase()

RTC::OutPortBase::OutPortBase ( const char * name,
const char * data_type )

コンストラクタ

コンストラクタ。

引数
nameポート名
data_typeデータタイプ

◆ ~OutPortBase()

RTC::OutPortBase::~OutPortBase ( )
override

デストラクタ

デストラクタ。 登録された全ての Publisher を削除する。

関数詳解

◆ activateInterfaces()

void RTC::OutPortBase::activateInterfaces ( )
overridevirtual

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

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

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

◆ addConnectorDataListener()

void RTC::OutPortBase::addConnectorDataListener ( ConnectorDataListenerType 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リスナオブジェクトの自動的解体を行うかどうかのフラグ

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

◆ addConnectorListener()

void RTC::OutPortBase::addConnectorListener ( ConnectorListenerType 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リスナオブジェクトの自動的解体を行うかどうかのフラグ

◆ checkEndian()

bool RTC::OutPortBase::checkEndian ( const coil::Properties & prop,
bool & littleEndian )
protected

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

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

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

◆ configure()

void RTC::OutPortBase::configure ( )
protected

OutPortの設定を行う

propertiesの情報に基づきOutPortの各種設定を行う

◆ connect()

ReturnCode_t RTC::OutPortBase::connect ( ConnectorProfile & connector_profile)
override

[CORBA interface] Port の接続を行う

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

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

◆ connectors()

const std::vector< OutPortConnector * > & RTC::OutPortBase::connectors ( )

Connector を取得

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

戻り値
connector のリスト

◆ createConnector() [1/2]

OutPortConnector * RTC::OutPortBase::createConnector ( const ConnectorProfile & cprof,
coil::Properties & prop,
InPortConsumer * consumer )
protected

◆ createConnector() [2/2]

OutPortConnector * RTC::OutPortBase::createConnector ( const ConnectorProfile & cprof,
coil::Properties & prop,
OutPortProvider * provider )
protected

◆ createConsumer()

InPortConsumer * RTC::OutPortBase::createConsumer ( const ConnectorProfile & cprof,
coil::Properties & prop )
protected

InPort consumer の生成

◆ createProvider()

OutPortProvider * RTC::OutPortBase::createProvider ( ConnectorProfile & cprof,
coil::Properties & prop )
protected

OutPort provider の生成

◆ deactivateInterfaces()

void RTC::OutPortBase::deactivateInterfaces ( )
overridevirtual

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

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

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

◆ getConnectorById()

OutPortConnector * RTC::OutPortBase::getConnectorById ( const char * id)

ConnectorProfileをIDで取得

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

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

◆ getConnectorByName()

OutPortConnector * RTC::OutPortBase::getConnectorByName ( const char * name)

ConnectorProfileを名前で取得

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

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

◆ getConnectorIds()

coil::vstring RTC::OutPortBase::getConnectorIds ( )

ConnectorId を取得

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

戻り値
ConnectorId のリスト

◆ getConnectorNames()

coil::vstring RTC::OutPortBase::getConnectorNames ( )

Connectorの名前を取得

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

戻り値
Connector名のリスト

◆ getConnectorProfileById()

bool RTC::OutPortBase::getConnectorProfileById ( const char * id,
ConnectorInfo & prof )

ConnectorProfileをIDで取得

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

引数
idConnector ID
profConnectorProfile
戻り値
false 指定したIDがない

◆ getConnectorProfileByName()

bool RTC::OutPortBase::getConnectorProfileByName ( const char * name,
ConnectorInfo & prof )

ConnectorProfileを名前で取得

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

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

◆ getConnectorProfiles()

ConnectorInfoList RTC::OutPortBase::getConnectorProfiles ( )

ConnectorProfile を取得

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

戻り値
ConnectorProfile のリスト

◆ getListeners()

virtual ConnectorListenersBase * RTC::OutPortBase::getListeners ( )
virtual

リスナホルダを取得する

InPortBaseが保持するリスナホルダを返す。

戻り値
ConnectorListeners

◆ getLocalInPort()

InPortBase * RTC::OutPortBase::getLocalInPort ( const ConnectorInfo & profile)
protected

ローカルのピアInPortを取得

◆ init()

void RTC::OutPortBase::init ( coil::Properties & prop)

プロパティの初期化

OutPortのプロパティを初期化する

引数
prop設定するプロパティ

◆ initConnectorListeners()

virtual void RTC::OutPortBase::initConnectorListeners ( )
protectedvirtual

コネクタリスナの初期化

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

◆ initConsumers()

void RTC::OutPortBase::initConsumers ( )
protected

InPort consumer の初期化

◆ initProviders()

void RTC::OutPortBase::initProviders ( )
protected

OutPort provider の初期化

◆ isLittleEndian()

bool RTC::OutPortBase::isLittleEndian ( )

endian 設定を返す

endian 設定のbool値を返す。

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

◆ notify_connect()

ReturnCode_t RTC::OutPortBase::notify_connect ( ConnectorProfile & connector_profile)
overrideprotected

◆ properties()

coil::Properties & RTC::OutPortBase::properties ( )

プロパティを取得する

OutPortのプロパティを取得する。

戻り値
プロパティ

◆ publishInterfaces()

ReturnCode_t RTC::OutPortBase::publishInterfaces ( ConnectorProfile & cprof)
overrideprotectedvirtual

Interface 情報を公開する

このオペレーションは、notify_connect() 処理シーケンスの始めにコール される純粋仮想関数である。 notify_connect() では、

の順に protected 関数がコールされ接続処理が行われる。
このオペレーションは、新規の connector_id に対しては接続の生成、 既存の connector_id に対しては更新が適切に行われる必要がある。

引数
connector_profile接続に関するプロファイル情報
戻り値
ReturnCode_t 型のリターンコード

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

◆ removeConnectorDataListener()

void RTC::OutPortBase::removeConnectorDataListener ( ConnectorDataListenerType type,
ConnectorDataListener * listener )

ConnectorDataListener リスナを削除する

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

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

◆ removeConnectorListener()

void RTC::OutPortBase::removeConnectorListener ( ConnectorListenerType type,
ConnectorListener * listener )

ConnectorDataListener リスナを削除する

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

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

◆ subscribeInterfaces()

ReturnCode_t RTC::OutPortBase::subscribeInterfaces ( const ConnectorProfile & cprof)
overrideprotectedvirtual

Interface に接続する

このオペレーションは、notify_connect() 処理シーケンスの中間にコール される純粋仮想関数である。 notify_connect() では、

の順に protected 関数がコールされ接続処理が行われる。

引数
connector_profile接続に関するプロファイル情報
戻り値
ReturnCode_t 型のリターンコード

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

◆ unsubscribeInterfaces()

void RTC::OutPortBase::unsubscribeInterfaces ( const ConnectorProfile & connector_profile)
overrideprotectedvirtual

Interface の接続を解除する

このオペレーションは、notify_disconnect() 処理シーケンスの終わりにコール される純粋仮想関数である。 notify_disconnect() では、

引数
connector_profile接続に関するプロファイル情報

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

◆ write()

virtual bool RTC::OutPortBase::write ( )
pure virtual

データ書き込み

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

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

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

メンバ詳解

◆ m_connectors

std::vector<OutPortConnector*> RTC::OutPortBase::m_connectors
protected

接続リスト

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

◆ m_consumerTypes

coil::vstring RTC::OutPortBase::m_consumerTypes
protected

利用可能consumer

◆ m_listeners

ConnectorListenersBase* RTC::OutPortBase::m_listeners
protected

◆ m_littleEndian

bool RTC::OutPortBase::m_littleEndian
protected

接続エンディアン

◆ m_providerTypes

coil::vstring RTC::OutPortBase::m_providerTypes
protected

利用可能provider


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