|
| 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) |
| | シリアライザのエンディアンをチェックする [詳解]
|
| |
| OutPortProvider * | createProvider (ConnectorProfile &cprof, coil::Properties &prop) |
| | OutPort provider の生成 [詳解]
|
| |
| InPortConsumer * | createConsumer (const ConnectorProfile &cprof, coil::Properties &prop) |
| | InPort consumer の生成 [詳解]
|
| |
| OutPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, InPortConsumer *consumer) |
| | OutPortPushConnector の生成 [詳解]
|
| |
| OutPortConnector * | createConnector (const ConnectorProfile &cprof, coil::Properties &prop, OutPortProvider *provider) |
| | OutPortPullConnector の生成 [詳解]
|
| |
| ReturnCode_t | notify_connect (ConnectorProfile &connector_profile) override |
| |
| InPortBase * | getLocalInPort (const ConnectorInfo &profile) |
| | ローカルのピアInPortを取得 [詳解]
|
| |
| virtual void | initConnectorListeners () |
| | コネクタリスナの初期化 [詳解]
|
| |
| virtual ReturnCode_t | publishInterfaces (ConnectorProfile &connector_profile)=0 |
| | Interface 情報を公開する [詳解]
|
| |
| virtual ReturnCode_t | connectNext (ConnectorProfile &connector_profile) |
| | 次の Port に対して notify_connect() をコールする [詳解]
|
| |
| virtual ReturnCode_t | disconnectNext (ConnectorProfile &cprof) |
| | 次の Port に対して notify_disconnect() をコールする [詳解]
|
| |
| virtual ReturnCode_t | subscribeInterfaces (const ConnectorProfile &connector_profile)=0 |
| | Interface 情報を公開する [詳解]
|
| |
| virtual void | unsubscribeInterfaces (const ConnectorProfile &connector_profile)=0 |
| | Interface の接続を解除する [詳解]
|
| |
| 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) |
| | 指定のシリアライザが使用可能かを判定する [詳解]
|
| |
OutPort 基底クラス
OutPort の基底クラス。
Properties: port.outport プロパティは
- port.outport
- port.outport.[name]
ConnectorProfile.properties の場合は
以下に指定したものが渡される。 (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() では以下のシーケンスで処理が行われる。
- OutPort に関連する connector 情報の生成およびセット
- InPortに関連する connector 情報の取得
- ConnectorProfile::properties["dataport.corba_any.inport_ref"]に OutPortAny のオブジェクトリファレンスが設定されている場合、 リファレンスを取得してConsumerオブジェクトにセットする。 リファレンスがセットされていなければ無視して継続。 (OutPortがconnect() 呼び出しのエントリポイントの場合は、 InPortのオブジェクトリファレンスはセットされていないはずである。)
- PortBase::connect() をコール Portの接続の基本処理が行われる。
- 上記2.でInPortのリファレンスが取得できなければ、再度InPortに 関連する connector 情報を取得する。
- 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の場合周期を設定する。
- 上記の処理のうち一つでもエラーであれば、エラーリターンする。 正常に処理が行われた場合はRTC::RTC_OKでリターンする。
- から
- 0.2.0