クラスの同期
- java.lang.Object
-
- io.realm.mongodb.sync.SyncSession
-
public class SyncSession extends Object
セッションは、デバイス上の単一の Realm と Realm オブジェクト サーバー上のサーバー Realm との間でデータを同期する方法を制御します。セッションは、
SyncConfiguration
を使用して Realm インスタンスを開くことで作成されます。 セッションが作成されると、アプリが閉じられるか、このSyncConfiguration
を使用するすべてのスレッドがそれぞれのRealm
を閉じるまで、そのセッションは存在し続けます。セッションは Realm によって制御されますが、エラーが発生した場合に追加情報を提供できます。 これらのエラーは
SyncSession.ErrorHandler
に渡されます。セッションを作成する際、Realm はサーバーへの接続を確立します。 この接続は Realm によって制御され、複数のセッション間で共有される場合があります。
addConnectionChangeListener(ConnectionListener)
とisConnected()
を使用して接続のインサイトを得ることが可能です。セッション自体のライフサイクルは、基礎となる接続とは異なります。 セッションの状態は、
getState()
を使用して見つけることができます。SyncSession
オブジェクトはスレッドセーフです。
-
-
ネストされたクラスの概要
ネストされたクラス 修飾子と型 クラス 説明 static interface
SyncSession.ClientResetHandler
非推奨。static interface
SyncSession.ErrorHandler
セッション エラーを報告するために使用されるインターフェース。static class
SyncSession.State
SyncSession が利用できる状態を説明する列挙型。
-
メソッドの概要
すべてのメソッド インスタンス メソッド 具象メソッド 修飾子と型 方式 説明 void
addConnectionChangeListener(ConnectionListener listener)
このセッションをサポートする接続への変更を追跡するリスナーを追加します。void
addDownloadProgressListener(ProgressMode mode, ProgressListener listener)
Realm Object Server からダウンロードする必要がある変更を追跡する進行状況リスナーを追加します。void
addUploadProgressListener(ProgressMode mode, ProgressListener listener)
デバイスから Realm オブジェクト サーバーにアップロードする必要がある変更を追跡する進行状況リスナーを追加します。void
downloadAllServerChanges()
このメソッドを呼び出すと、既知のリモート変更がすべてダウンロードされ、Realm に適用されるまでブロックされます。boolean
downloadAllServerChanges(long timeout, TimeUnit unit)
このメソッドを呼び出すと、既知のリモート変更がすべてダウンロードされ Realm に適用されるか、指定されたタイムアウトに達するまでブロックされます。SyncConfiguration
getConfiguration()
セッションを制御する役割のSyncConfiguration
を返します。ConnectionState
getConnectionState()
ConnectionState
で定義されている、セッションで使用される接続の現在の状態を取得します。URI
getServerUrl()
このセッションが接続して変更を同期するリモート Realm を説明するURI
を返します。SyncSession.State
getState()
SyncSession.State
で定義されている現在のセッションの状態を取得します。User
getUser()
User
SyncConfiguration
MongoDB Realm への接続に使用される によって定義された を返します。boolean
isConnected()
セッションがサーバーに接続され、データを同期できるかどうかを確認します。void
removeConnectionChangeListener(ConnectionListener listener)
以前に登録されたConnectionListener
を削除します。void
removeProgressListener(ProgressListener listener)
進行状況リスナーを削除します。void
start()
セッションを開始し、Realm Object Server との同期を有効にしようとします。void
stop()
Realm が完全に閉じられた後、再度開かれるまで、Realm オブジェクト サーバーとの同期を停止します。void
uploadAllLocalChanges()
このメソッドを呼び出すと、既知のローカル変更がすべてサーバーにアップロードされるまでブロックされます。boolean
uploadAllLocalChanges(long timeout, TimeUnit unit)
このメソッドを呼び出すと、既知のローカル変更がすべてサーバーにアップロードされるか、指定されたタイムアウトに達するまでブロックされます。
-
-
-
メソッドの詳細
-
getConfiguration
public SyncConfiguration getConfiguration()
セッションを制御する役割のSyncConfiguration
を返します。- 次の値を返します。
- このセッションを定義および制御する SyncConfiguration。
-
getUser
publicユーザーgetUser()
User
SyncConfiguration
MongoDB Realm への接続に使用される によって定義された を返します。- 次の値を返します。
User
MongoDB Realm でセッションを認証するために使用されます。
-
getServerUrl
public URI getServerUrl()
このセッションが接続して変更を同期するリモート Realm を説明するURI
を返します。- 次の値を返します。
URI
リモート Realm を説明します。
-
getState
public SyncSession.State getState()
SyncSession.State
で定義されている現在のセッションの状態を取得します。このメソッドが返した後に状態が変化する可能性があることに注意してください。
- 次の値を返します。
- セッションの状態
- 以下も参照してください。
SyncSession.State
-
getConnectionState
public ConnectionState getConnectionState()
ConnectionState
で定義されている、セッションで使用される接続の現在の状態を取得します。- 次の値を返します。
- セッションで使用される接続の状態
- 以下も参照してください。
ConnectionState
-
isConnected
公開ブール値 isConnected()
セッションがサーバーに接続され、データを同期できるかどうかを確認します。 これは推測的結果です。 消費量を節約するために、基礎の実装はハートビートを使用して接続がまだ利用可能かどうかを検出します。 したがって、アクティブに同期されているデータがなく、最後のハートビートから時間が経過した場合、接続は切断された可能性がありますが、このメソッドは引き続きtrue
を返します。- 次の値を返します。
true
セッションが接続され、データを同期する準備ができている場合は 、未接続の場合はfalse
、接続プロセス中の場合は 0}。
-
addProgressLister
public void addDownloadProgressListener(ProgressMode mode, ProgressListener listener)
Realm Object Server からダウンロードする必要がある変更を追跡する進行状況リスナーを追加します。ProgressListener
は、登録されるとすぐにトリガーされ、その後は定期的にトリガーされます。- パラメーター:
mode
- 使用されるモードのタイプ。 詳しくは、ProgressMode
を参照してください。listener
- 登録するリスナー。
-
addUploadProgressLister
public void addUploadProgressListener(ProgressMode mode, ProgressListener listener)
デバイスから Realm オブジェクト サーバーにアップロードする必要がある変更を追跡する進行状況リスナーを追加します。ProgressListener
は、登録されるとすぐにトリガーされ、その後は定期的にトリガーされます。- パラメーター:
mode
- 使用されるモードのタイプ。 詳しくは、ProgressMode
を参照してください。listener
- 登録するリスナー。
-
deleteProgressLister
public void removeProgressListener(ProgressListener listener)
進行状況リスナーを削除します。 リスナーが登録されていない場合、このメソッドは何も実行しません。- パラメーター:
listener
- 削除するリスナー。
-
addConnection ChangeLister
public void addConnectionChangeListener(ConnectionListener listener)
このセッションをサポートする接続への変更を追跡するリスナーを追加します。 詳細については、ConnectionState
を参照してください。- パラメーター:
listener
- 登録するリスナー。- 次の例外がスローされます。
IllegalArgumentException
- リスナーがnull
の場合。- 以下も参照してください。
ConnectionState
-
deleteConnection存在の変更リスナー
public void removeConnectionChangeListener(ConnectionListener listener)
以前に登録されたConnectionListener
を削除します。- パラメーター:
listener
- 削除するリスナー- 次の例外がスローされます。
IllegalArgumentException
- リスナーがnull
の場合。
-
ダウンロードAllServerChecks
public void downloadAllServerChanges() throws InterruptedException
このメソッドを呼び出すと、既知のリモート変更がすべてダウンロードされ、Realm に適用されるまでブロックされます。 これにはネットワーク アクセスが含まれるため、このメソッドを呼び出す場合は UI 以外のスレッドからのみ実行する必要があります。デバイスがオフラインの場合、このメソッドは返されない可能性があります。
このメソッドは、セッションが開始される前に呼び出すことができません。
- 次の例外がスローされます。
IllegalStateException
- Android のメイン スレッドで呼び出された場合InterruptedException
- ダウンロードの進行中にスレッドが中断された場合。
-
ダウンロードAllServerChecks
公開ブール値をダウンロードAllServerchanges(長いタイムアウト、 TimeUnit単位)がInterruptedExceptionをスローします
このメソッドを呼び出すと、既知のリモート変更がすべてダウンロードされ Realm に適用されるか、指定されたタイムアウトに達するまでブロックされます。 これにはネットワーク アクセスが含まれるため、このメソッドを呼び出す場合は UI 以外のスレッドからのみ実行する必要があります。このメソッドは、Realm が開かれる前に呼び出すことができません。
- 次の値を返します。
true
タイムアウト前にデータがダウンロードされた場合。 操作がタイムアウトしたなどして失敗した場合は、false
。- 次の例外がスローされます。
IllegalStateException
- Android のメイン スレッドで呼び出された場合InterruptedException
- 指定されたタイムアウトよりもダウンロードに時間がかかった場合、またはダウンロードの進行中にスレッドが中断された場合。 この例外がスローされた後でも、バックグラウンドでダウンロードは続行されます。IllegalArgumentException
-timeout
が0
以下の場合、またはunit
がnull
の場合。
-
アップロードAllLocalchanges
public void uploadAllLocalChanges() throws InterruptedException
このメソッドを呼び出すと、既知のローカル変更がすべてサーバーにアップロードされるまでブロックされます。 これにはネットワーク アクセスが含まれるため、このメソッドを呼び出す場合は UI 以外のスレッドからのみ実行する必要があります。デバイスがオフラインの場合、このメソッドは返されない可能性があります。
このメソッドは、Realm が開かれる前に呼び出すことができません。
- 次の例外がスローされます。
IllegalStateException
- Android のメイン スレッドで呼び出された場合InterruptedException
- ダウンロードの進行中にスレッドが中断された場合。
-
アップロードAllLocalchanges
公開ブール値アップロードAllLocalchanges(長いタイムアウト、 TimeUnit単位)はInterruptedExceptionをスローします
このメソッドを呼び出すと、既知のローカル変更がすべてサーバーにアップロードされるか、指定されたタイムアウトに達するまでブロックされます。 これにはネットワーク アクセスが含まれるため、このメソッドを呼び出す場合は UI 以外のスレッドからのみ実行する必要があります。このメソッドは、Realm が開かれる前に呼び出すことができません。
- 次の値を返します。
true
タイムアウト前にデータがアップロードされた場合。 操作がタイムアウトしたなどして失敗した場合は、false
。- 次の例外がスローされます。
IllegalStateException
- Android のメイン スレッドで呼び出された場合InterruptedException
- アップロードに指定されたタイムアウトよりも長い時間がかかる場合、またはアップロードの進行中にスレッドが中断された場合。 この例外がスローされた後でも、バックグラウンドでアップロードは続行されます。IllegalArgumentException
-timeout
が0
以下の場合、またはunit
がnull
の場合。
-
始める
public void start()
セッションを開始し、Realm Object Server との同期を有効にしようとします。これは Realm インスタンスを開くときに自動的に行われるため、手動で実行する必要があるのは、
stop()
を使用してセッションが停止された場合のみです。セッションがすでに開始されている場合は、このメソッドを呼び出しても何も行われません。
getState()
がSyncSession.State.ACTIVE
を返す場合、セッションは開始されたと見なされます。 セッションがSyncSession.State.DYING
の場合、セッションはSyncSession.State.ACTIVE
に戻されます。- 以下も参照してください。
getState()
,stop()
-
停止
public void stop()
Realm が完全に閉じられた後、再度開かれるまで、Realm オブジェクト サーバーとの同期を停止します。同期は、
start()
を再度呼び出すことで再度有効にできます。セッションがすでに停止している場合は、このメソッドを呼び出しても何も行われません。
-
-