操作
バグ #4399
未完了preconnectで接続した場合、ON_BUFFER_WRITEコールバックが呼び出されない。
ステータス:
担当
優先度:
通常
担当者:
katami
対象バージョン:
-
開始日:
2017/12/26
期日:
進捗率:
100%
予定工数:
説明
preconnectを使わず、システムエディタやrtconで接続した場合は、コールバックは呼び出される。
katami さんがほぼ7年前に更新
ConnectorDataListenerT<DataType> リスナクラス(ジェネリクス)で、以下のように指定してpreconnectで接続した場合、不具合が発生する。
manager.components.preconnect: Throughput0.out^Throughput0.in(dataflow_type=push&interface_type=corba_cdr)
上記の設定でpreconnect接続した場合、ConnectorProfileのdataport.data_typeが設定されない。
パラメータの指定により型が決まる(addInPort/addOutPort/InPort::addConnectorDataListener)仕様。
ConnectorDataListenerTは、実行時に型が指定できる。
ConnectorDataListenerTコールバック呼び出しの際に、ConnectorProfileのdataport.data_typeとポートのdataport.data_typeを比較している。
これは、コールバック関数内でデータを扱う際に、データ型不一致による例外発生を防ぐため。
ConnectorProfileのdataport.data_typeが未設定の場合は、データ型が不一致として、コールバックが呼び出されなかった。
ConnectorProfileのdataport.data_typeが未設定の場合は、コールバックするように修正。
操作