クラスセッション
同期セッションをカプセル化するオブジェクト。 セッションは、クライアント(およびディスク上のローカル Realm ファイル)と MongoDB Atlas との間の通信を表します。 セッションは常に SDK によって作成され、さまざまな API を通じて販売されます。 Realm に関連付けられたセッションの有効期限は自動的に管理されます。
名前空間: Realm 。同期
組み立て: Realm.dll
構文
public class Session : INotifyPropertyChanged
プロパティ
| このページを編集 ソースを表示ConnectionState
セッションの現在の接続状態を取得します。
宣言
public ConnectionState ConnectionState { get; }
プロパティ値
タイプ | 説明 |
---|---|
ConnectionState | セッションの接続状態を示す列挙値。 |
パス
このセッションが表すRealmをバックアップする Realm ファイルのディスク上のパスを取得します。
宣言
public string Path { get; }
プロパティ値
タイプ | 説明 |
---|---|
string | ファイルパス。 |
状態
セッションの現在の状態を取得します。
宣言
public SessionState State { get; }
プロパティ値
タイプ | 説明 |
---|---|
SessionState | セッションの状態を示す列挙値。 |
user
MongoDB Atlas への接続に使用される SyncConfigurationBase によって定義された ユーザー を取得します。
宣言
public User User { get; }
プロパティ値
タイプ | 説明 |
---|---|
user |
メソッド
| このページを編集 ソースを表示GetProgressObservable(Progress Direction、ProgressMode)
アップロードまたはダウンロードの進行状況を追跡するために使用できるIOservable<T>を取得します。
宣言
public IObservable<SyncProgress> GetProgressObservable(ProgressDirection direction, ProgressMode mode)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
プログレス ディレクティブ | 方向 | サブスクリプション コールバックで追跡する転送方向(アップロードまたはダウンロード)。 |
gressMode | モード | この進行状況通知ブロックの必要な動作。 |
戻り値
タイプ | 説明 |
---|---|
IOservable < SyncProgress > | サブスクライブして進行状況の更新を受け取ることができる観察可能なもの。 |
コメント
通知の受信を開始するには、返されたオブジェクトで Subscribe(IObserver[T])<T> を呼び出す必要があります。Subscribe(IObserver<T>)から返されたトークンは、進行状況通知が必要な限り保持する必要があります。 通知の受信を停止するには、トークンでDispose()を呼び出します。 Observable 自体への参照を保持する必要はありません。 利用可能な最新のステータス情報を提供するために、サブスクライブ後すぐに進行状況コールバックが常に 1 回呼び出されます。
例
class ProgressNotifyingViewModel
{
private IDisposable notificationToken;
public void ShowProgress()
{
var observable = session.GetProgressObservable(ProgressDirection.Upload, ProgressMode.ReportIndefinitely);
notificationToken = observable.Subscribe(progress =>
{
// Update relevant properties by accessing progress.ProgressEstimate
});
}
public void HideProgress()
{
notificationToken?.Dispose();
notificationToken = null;
}
}
この例では、 Reactive 拡張機能 クラス ライブラリにある ObservableExtentions.Subscribe を使用しています。依存関係を取得したくない場合は、 IObserver<T>を実装するクラスを作成し、それを使用してサブスクライブできます。
| このページを編集 ソースを表示Start()
セッションを再開し、サーバーとの同期を有効にしようとします。
宣言
public void Start()
コメント
すべてのセッションはデフォルトでアクティブになり、このメソッドを呼び出すのは、その前にstop()が呼び出された場合のみ意味があります。
stop()
Realm が完全に閉じられた後、再度開かれるまで、サーバーとの同期を停止します。
同期は、 Start()を再度呼び出すことで再度有効にできます。
宣言
public void Stop()
コメント
セッションがすでに停止している場合は、このメソッドを呼び出しても何も行われません。
WaitForDownloadAsync(CancelToken?)
セッションがすべての保留中のダウンロードを完了するのを待ちます。
宣言
public Task WaitForDownloadAsync(CancellationToken? cancellationToken = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
CancelTokenか。 | completedToken | 待機操作をキャンセルするために使用できる任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
タスク |
例外
タイプ | 条件 |
---|---|
InvalidOperationException | 障害が発生したセッションが待機している場合にスローされます。 |
WaitForUploadAsync(CancelToken?)
セッションが保留中のアップロードをすべて完了するのを待ちます。
宣言
public Task WaitForUploadAsync(CancellationToken? cancellationToken = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
CancelTokenか。 | completedToken | 待機操作をキャンセルするために使用できる任意のキャンセル トークン。 |
戻り値
タイプ | 説明 |
---|---|
タスク |
例外
タイプ | 条件 |
---|---|
InvalidOperationException | 障害が発生したセッションが待機している場合にスローされます。 |
イベント
| このページを編集 ソースを表示Property Changed
プロパティ値が変更されたときに発生します。
宣言
public event PropertyChangedEventHandler? PropertyChanged
eventType
タイプ | 説明 |
---|---|
PropertychangedEventHandler |