最終更新:ID:HukTMs0QQA 2017年01月15日(日) 13:09:17履歴
ミューテックスはパフォーマンスのためのリードライトミューテックスで、以下のものを保護可能です。
- マップ
- 値
- イベントにおける値の履歴
例えば:
- あらゆるデータブロックの削除
- 既存のデータブロックのみ変更されたデータを格納
- 読み込んだデータの書き込みデータブロックの読み込み
イベントは履歴を全てALMemoryに格納するようなマイクロイベントです。
通常同じように扱われますが、マイクロイベントの方が早いです。
ALMemoryProxy::getEventHistoryを用いることで、イベント履歴にアクセスすることが可能です。
加えて、誰かがイベントにサブスクライブすることで自動起動させることが可能です。
この特徴はALMEmorrProxy::declareEventと2つのパラメータによって動作します。
ALMemoryProxy::getDataPtrを使っていないときに限り、書き込みと読み込みは同時に変数にアクセスできます。
ALMemoryはALValueを格納したり取り出したりできます。:
type | C++ | Python | Java |
---|---|---|---|
integer | int | Python integer | int |
boolean | bool | Python boolean | Boolean |
float | float | Python float | Float |
List | vector<ALValue> | [] | Java array [] |
String | std::string | Python string | String |
Binary | ALValue | String | byte[] |
Variant | ALValue | Use python type | jnaoqi Variant |
! | 注意 ALMemory only stores 4-byte integers and 4-byte floats. This is not a problem for C++ as it uses the same representation, but Python integers and floats are 8 bytes (or more for big ints). This may lead to a loss of precision when storing values. |
関数 ... | 機能 ... |
---|---|
ALMemoryProxy::getDataPtr | 素早い、ポインタへのアクセス 注意: スレッドセーフでもアトミックでもありません |
ALMemoryProxy::getData | スレッドセーフなアクセス モジュールがリモートでもローカルでも使えます |
イベントを監視したい場合
関数 ... | 監視する対象 ... |
---|---|
ALMemoryProxy::subscribeToEvent | イベント |
ALMemoryProxy::subscribeToMicroEvent | マイクロイベント |
詳細は、以下の例を参照してください。Creating events(非推奨)
イベントを発生させるには以下の関数を利用してください。
関数 ... | 利用法 ... |
---|---|
ALMemoryProxy::raiseMicroEvent | 値の格納と通知. |
ALMemoryProxy::raiseEvent | 値の格納と通知、値の履歴とタイムスタンプの格納 |
ALMemoryProxy::declareEvent | モジュールと変数のリンク モジュールが変数を監視している場合、モジュールはプロセスを一度だけ実行します。 例えば、FaceDetectedを監視すると、自動的にALFaceDetectionモジュールを実行します。監視を止めるとモジュールは止まります。 |
コメントをかく