|
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 | 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) |
| 指定のシリアライザが使用可能かを判定する
|
|
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