Realm C++ SDKバージョン v 2.2.0

schedule.hpp

1
2//
3// © 2022 Realm Inc.
4//
5// Apache ライセンス、バージョン 2.0(「ライセンス」)に基づいてライセンスされている
6// ライセンス に準拠している場合を除き、このファイルを使用することはできません。
7// ライセンスのコピーは次で取得できます:
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// 該当するルールによって要求されたり、書込み (write) で同意された場合を除き、ソフトウェア
12ライセンスに基づいて配布される // は "AS IS" CRUD で配布されるため、
13// 任意の種類の 保証 または 条件なし(式またはExpressのいずれか)。
14// 特定の言語を使用する権限については、「ライセンス」を参照してください
15ライセンスに基づく // の制限。
16//
18
19#ifndif CPREALM_SCHEDULER_HPP
20CPREALM_SCHEDULER_HPP を定義する
21
22#include <function"><functional>
23#include <feature"<future>
24#include <queue>
25
26名前空間邦土 {
28 仮想 ~schema ()=デフォルト
29
30 // 指定された関数をスケジューラーのスレッドで呼び出します。
31 //
32 // この関数は任意のスレッドから呼び出すことができます。
33 仮想 void invoke(std::function<void()> &&) = 0;
34
35 // 呼び出し元が現在スケジューラのスレッドで実行されているかどうかを確認します。
36 //
37 // この関数は任意のスレッドから呼び出すことができます。
38 [[nodiscard]]仮想ブール値is_on_thread() const noException = 0
39
40 // このスケジューラー インスタンスが同じ基礎インスタンスをラップしているかどうかを確認します。
41 // これは定義するプラットフォームによって異なりますが、このメソッドが true を返す場合、
42 // キャッシュが発生する可能性があります。
43 仮想 ブール値 は _schema_as ( const スケジューラー *その他) : 除く =0 。
44
45 // このスケジューラーが実際に invoice() をサポートできるかどうかを確認します。 呼び出しは次のようになります
46 // 実装されていない、スケジューラの種類に適用されない、または単純に次のいずれか:
47 // 現在可能である(例: 関連するイベント ループが実際には存在しない場合)
48 // 実行中)。
49 //
50 // この関数はスレッドセーフではありません。
51 [[nodiscard]]仮想ブール値は can_invoice() がconst noException = 0の場合
52 };
53 }
54#endif //CPREALM_SCHEDULER_HPP
定義: scheduler.happ: 27