gpg::SnapshotManager

#include <snapshot_manager.h>

さまざまなスナップショット関連データを取得して設定します。

概要

アプリが認証時にスナップショットを有効にしていない場合(GameServices::Builder::EnableSnapshots を参照)、SnapshotManager のほとんどのメソッドが失敗します。

公開タイプ

CommitCallback typedef
std::function< void(const CommitResponse &)>
CommitResponse を受け取るコールバック タイプを定義します。
FetchAllCallback typedef
std::function< void(const FetchAllResponse &)>
FetchAllResponse を受け取るコールバック タイプを定義します。
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
MaxSizeResponse を受け取るコールバック タイプを定義します。
OpenCallback typedef
std::function< void(const OpenResponse &)>
OpenResponse を受け取るコールバック タイプを定義します。
ReadCallback typedef
std::function< void(const ReadResponse &)>
ReadResponse を受け取るコールバック タイプを定義します。
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
ShowSelectUIOperation から SnapshotSelectUIResponse を受け取れるコールバックを定義します。

パブリック関数

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
スナップショットに提供されたデータを非同期で commit し、提供されたメタデータ オブジェクトを使用してスナップショットのメタデータを更新します。
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
スナップショットに提供されたデータを同期的に commit し、提供されたメタデータ オブジェクトを使用してスナップショットのメタデータを更新します。
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
スナップショットに提供されたデータを同期的に commit し、提供されたメタデータ オブジェクトを使用してスナップショットのメタデータを更新します。
Delete(const SnapshotMetadata & snapshot_metadata)
void
指定したスナップショットを削除します。
FetchAll(FetchAllCallback callback)
void
現在ログインしているプレーヤーのすべてのスナップショット データを非同期的に読み込みます。
FetchAll(DataSource data_source, FetchAllCallback callback)
void
現在ログインしているプレーヤーのすべてのスナップショット データを非同期的に読み込みます。
FetchAllBlocking()
現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。
FetchAllBlocking(DataSource data_source)
現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。
FetchAllBlocking(Timeout timeout)
現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。
FetchAllBlocking(DataSource data_source, Timeout timeout)
現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。
GetMaxSize(MaxSizeCallback callback) const
void
スナップショットごとに最大データサイズと表紙画像サイズの最大値を非同期で取得します。
GetMaxSizeBlocking() const
スナップショットごとに最大データサイズと最大カバー画像サイズ(バイト単位)を同期的に取得し、MaxSizeResponse を直接返します。
GetMaxSizeBlocking(Timeout timeout) const
スナップショットごとに最大データサイズと最大カバー画像サイズ(バイト単位)を同期的に取得し、MaxSizeResponse を直接返します。
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
指定された名前のスナップショットを非同期で開きます。
Open(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
<ph type="x-smartling-placeholder"></ph> 非推奨。で確認できます。 data_source は無視されます。代わりに Open(file_name, conflict_policy, callback) を使用してください。
指定された名前のスナップショットを非同期で開きます。
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
指定した名前のスナップショットを同期的に開きます。
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
指定した名前のスナップショットを同期的に開きます。
OpenBlocking(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy) <ph type="x-smartling-placeholder"></ph> 非推奨。で確認できます。 data_source は無視されます。代わりに OpenBlocking(file_name, conflict_policy) を使用してください。
指定した名前のスナップショットを同期的に開きます。
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy) <ph type="x-smartling-placeholder"></ph> 非推奨。で確認できます。 data_source は無視されます。代わりに OpenBlocking(timeout, file_name, conflict_policy) を使用してください。
指定した名前のスナップショットを同期的に開きます。
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
ディスクからスナップショットを非同期的に読み取り、メモリにコピーします。
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
ディスクからスナップショットを同期的に読み取り、メモリにコピーします。
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
ディスクからスナップショットを同期的に読み取り、メモリにコピーします。
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
指定されたスナップショットのデータを使用して、競合を非同期で解決します。
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents, OpenCallback callback)
void
提供されたデータを使用して、競合を非同期的に解決します。
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
指定されたスナップショットのデータを使用して競合を同期的に解決します。
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
提供されたデータを使用して、競合を同期的に解決します。
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
指定されたスナップショットのデータを使用して競合を同期的に解決します。
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
提供されたデータを使用して、競合を同期的に解決します。
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
void
スナップショットの UI を非同期的に表示し、プレーヤーがスナップショットを選択したり、新しいスナップショットをリクエストしたりできるようにします。
ShowSelectUIOperationBlocking(Timeout timeout, bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
ShowSelectUIOperation のブロック バージョン。
ShowSelectUIOperationBlocking(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
デフォルトのタイムアウト(10 年)を使用する ShowSelectUIOperationBlocking のオーバーロードです。

構造体

gpg::SnapshotManager::CommitResponse

更新されたスナップショットのデータとレスポンス ステータスを保持します。

gpg::SnapshotManager::FetchAllResponse

すべてのスナップショットのすべてのデータとレスポンスのステータスを保持します。

gpg::SnapshotManager::MaxSizeResponse

スナップショット データとスナップショットのカバー画像の最大サイズを保持します。

gpg::SnapshotManager::OpenResponse

リクエストされた特定のスナップショットのデータとレスポンスのステータスを保持します。

gpg::SnapshotManager::ReadResponse

スナップショット読み取りオペレーションから返されたレスポンス ステータスとスナップショット データを読み取ります。

gpg::SnapshotManager::SnapshotSelectUIResponse

ShowSelectUIOperation オペレーションの DataResponseStatus

公開タイプ

CommitCallback

std::function< void(const CommitResponse &)> CommitCallback

CommitResponse を受け取るコールバック タイプを定義します。

このコールバックの型は、以下の Commit(*) 関数と ResolveConflict(*) 関数に提供されます。

FetchAllCallback

std::function< void(const FetchAllResponse &)> FetchAllCallback

FetchAllResponse を受け取るコールバック タイプを定義します。

このコールバックの型は、以下の FetchAll(*) 関数に提供されます。

MaxSizeCallback

std::function< void(const MaxSizeResponse &)> MaxSizeCallback

MaxSizeResponse を受け取るコールバック タイプを定義します。

このコールバックの型は GetMaxSize に提供されます。

OpenCallback

std::function< void(const OpenResponse &)> OpenCallback

OpenResponse を受け取るコールバック タイプを定義します。

このコールバックの型は、以下の Open(*) 関数に提供されます。

ReadCallback

std::function< void(const ReadResponse &)> ReadCallback

ReadResponse を受け取るコールバック タイプを定義します。

このコールバックの型は、以下の Read(*) 関数に提供されます。

SnapshotSelectUICallback

std::function< void(const SnapshotSelectUIResponse &)> SnapshotSelectUICallback

ShowSelectUIOperation から SnapshotSelectUIResponse を受け取れるコールバックを定義します。

パブリック関数

commit

void Commit(
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > data,
  CommitCallback callback
)

スナップショットに提供されたデータを非同期で commit し、提供されたメタデータ オブジェクトを使用してスナップショットのメタデータを更新します。

オペレーションの完了時に、指定された CommitCallback を呼び出します。

CommitBlocking

CommitResponse CommitBlocking(
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

スナップショットに提供されたデータを同期的に commit し、提供されたメタデータ オブジェクトを使用してスナップショットのメタデータを更新します。

CommitBlocking

CommitResponse CommitBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

スナップショットに提供されたデータを同期的に commit し、指定されたメタデータ オブジェクトを使用してスナップショットのメタデータを更新します。

timeout をミリ秒単位で指定します。

削除

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

指定したスナップショットを削除します。

これにより、ローカルとサーバーにあるスナップショットのデータが削除されます。

FetchAll

void FetchAll(
  FetchAllCallback callback
)

現在ログインしているプレーヤーのすべてのスナップショット データを非同期的に読み込みます。

オペレーションの完了時に、指定された FetchAllCallback を呼び出します。data_source を指定しないと、この関数呼び出しは、data_sourceCACHE_OR_NETWORK. として指定して FetchAll(DataSource data_source, FetchAllCallback callback) を呼び出す場合と同じになります。

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

現在ログインしているプレーヤーのすべてのスナップショット データを非同期的に読み込みます。

オペレーションの完了時に、指定された FetchAllCallback を呼び出します。data_sourceCACHE_OR_NETWORK または NETWORK_ONLY として指定します。

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。

data_sourcetimeout のどちらも指定しない場合、この関数呼び出しは、data_sourceCACHE_OR_NETWORKtimeout を 10 年として FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) を呼び出す場合と同じになります。

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。

data_sourceCACHE_OR_NETWORK または NETWORK_ONLY として指定します。timeout を指定しないと、この関数呼び出しは、指定した data_source 値で FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout) を呼び出し、timeout に 10 年を指定するのと同じ結果になります。

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。

timeout をミリ秒単位で指定します。data_source を指定しないと、この関数呼び出しは、data_sourceCACHE_OR_NETWORK に指定し、timeout に指定した値を指定して、FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) を呼び出す場合と同じになります。

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

現在ログインしているプレーヤーのすべてのスナップショット データを同期的に読み込み、FetchAllResponse を直接返します。

data_sourceCACHE_OR_NETWORK または NETWORK_ONLY として指定します。timeout をミリ秒単位で指定します。

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

スナップショットごとに最大データサイズと表紙画像サイズの最大値を非同期で取得します。

オペレーションの完了時に、指定された MaxSizeCallback を呼び出します。

スナップショットあたりの最大データサイズは 3 MB 以上であることが保証されます。今後増加する可能性があります。

スナップショット カバー画像あたりの最大データサイズは 800 KB 以上であることが保証されています。今後増加する可能性があります。

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

スナップショットごとに最大データサイズと最大カバー画像サイズ(バイト単位)を同期的に取得し、MaxSizeResponse を直接返します。

スナップショットあたりの最大データサイズは 3 MB 以上であることが保証されます。今後増加する可能性があります。

スナップショット カバー画像あたりの最大データサイズは 800 KB 以上であることが保証されています。今後増加する可能性があります。

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

スナップショットごとに最大データサイズと最大カバー画像サイズ(バイト単位)を同期的に取得し、MaxSizeResponse を直接返します。

スナップショットあたりの最大データサイズは 3 MB 以上であることが保証されます。今後増加する可能性があります。

スナップショット カバー画像あたりの最大データサイズは 800 KB 以上であることが保証されています。今後増加する可能性があります。

timeout をミリ秒単位で指定します。

開く

void Open(
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy,
  OpenCallback callback
)

指定した名前のスナップショットを非同期で開きます。

指定したスナップショットが存在しない場合は作成されます。オペレーションの完了時に、指定された OpenCallback を呼び出します。

スナップショット名は、URL 予約されていない文字(a ~ z、A ~ Z、0 ~ 9、または記号「-」、「.」、「_」、「~」)で 1 ~ 100 文字にする必要があります。

現在のデバイスへのスナップショットの読み込みと commit の間に別のデバイスがスナップショットを commit すると、競合が発生することがあります。これらの競合を解決する必要があります。競合について詳しくは、上記の OpenResponse をご覧ください。

conflict_policy は、次のいずれかの値です。

SnapshotConflictPolicy::MANUAL - 競合が発生した場合、レスポンスの状態は OpenResponse::VALID_WITH_CONFLICT です。この競合は、SnapshotManager::ResolveConflict を使用して解決する必要があります。複数の競合が連続して表示される可能性があるため、Open を呼び出すたびに確認します。競合が発生する唯一のポリシーです。残りの処理が解決します。このポリシーにより、ユーザーが保存済みゲームの状態に加えた変更が失われないようにすることができます。

SnapshotConflictPolicy::LONGEST_PLAYTIME - 競合が発生した場合、再生時間の値が最も大きいスナップショットが使用されます。このポリシーは、再生時間を「最高」の再生時間の代替として妥当な場合に適しています。保存します。このポリシーを有意義なものにするには、ゲームを保存するときに SnapshotMetadataChange::Builder::SetPlayedTime() を使用する必要があります。

SnapshotConflictPolicy::LAST_KNOWN_GOOD - 競合が発生した場合、ベース スナップショットが使用されます。このポリシーは、ゲームがスナップショット データからの安定性を必要とする場合に適しています。このポリシーにより、競合していない書き込みのみがプレーヤーに表示されるため、すべてのクライアントが収束することが保証されます。注: 以前は SnapshotManager::BASE_WINS

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED - 競合が発生した場合、リモコンが使用されます。このポリシーは、プレーヤーが複数のデバイスで自らの変更内容を許容できるのであれば、妥当な選択です。このポリシーではやみくもに最新のデータが選択されるため、プレーヤーが行った変更が失われる可能性があります。注: 以前は SnapshotManager::REMOTE_WINS

SnapshotConflictPolicy::HIGHEST_PROGRESS競合が発生した場合、進行状況の値が最も高いスナップショットが使用されます。同じ場合は、最後に確認された正常なスナップショットが選択されます。このポリシーは、スナップショットの進捗状況の値を使用して最適な保存済みゲームを決定する場合に適しています。このポリシーを有意義なものにするには、ゲームを保存するときに SnapshotMetadataChange::Builder::SetPlayedTime() を使用する必要があります。

開く

void Open(
  DataSource data_source,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy,
  OpenCallback callback
)

指定した名前のスナップショットを非同期で開きます。

<ph type="x-smartling-placeholder"></ph> 非推奨。で確認できます。 data_source は無視されます。代わりに Open(file_name, conflict_policy, callback) を使用してください。

OpenBlocking

OpenResponse OpenBlocking(
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

指定した名前のスナップショットを同期的に開きます。

指定したスナップショットが存在しない場合は作成されます。

詳しくは、Open をご覧ください。

OpenBlocking

OpenResponse OpenBlocking(
  Timeout timeout,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

指定した名前のスナップショットを同期的に開きます。

指定したスナップショットが存在しない場合は作成されます。

timeout をミリ秒単位で指定します。

詳しくは、Open をご覧ください。

OpenBlocking

OpenResponse OpenBlocking(
  DataSource data_source,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

指定した名前のスナップショットを同期的に開きます。

<ph type="x-smartling-placeholder"></ph> 非推奨。で確認できます。 data_source は無視されます。代わりに OpenBlocking(file_name, conflict_policy) を使用してください。

OpenBlocking

OpenResponse OpenBlocking(
  DataSource data_source,
  Timeout timeout,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

指定した名前のスナップショットを同期的に開きます。

<ph type="x-smartling-placeholder"></ph> 非推奨。で確認できます。 data_source は無視されます。代わりに OpenBlocking(timeout, file_name, conflict_policy) を使用してください。

読み取り

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

ディスクからスナップショットを非同期的に読み取り、メモリにコピーします。

データは値により渡され、簡単に変更できるようになっています。この関数を呼び出すたびに、完全な読み取りが行われます。つまり、通常はスナップショットを 1 回だけ読み取るのが最善です。オペレーションの完了時に、指定された ReadCallback を呼び出します。

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

ディスクからスナップショットを同期的に読み取り、メモリにコピーします。

データは値により渡され、簡単に変更できるようになっています。この関数を呼び出すたびに、完全な読み取りが行われます。つまり、通常はスナップショットを 1 回だけ読み取るのが最善です。timeout を指定しないと、この関数呼び出しは、timeout に 10 年を指定して ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata) を呼び出す場合と同じになります。

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

ディスクからスナップショットを同期的に読み取り、メモリにコピーします。

データは値により渡され、簡単に変更できるようになっています。これに対する各呼び出しは完全な読み取りを行うため、通常はスナップショットを 1 回だけ読み取ります。timeout をミリ秒単位で指定します。

ResolveConflict

void ResolveConflict(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  OpenCallback callback
)

指定されたスナップショットのデータを使用して、競合を非同期で解決します。

これにより、サーバー上のデータが指定したスナップショットに置き換えられます。この操作自体が競合を引き起こす可能性があるため、解決を繰り返す必要があります。

すでに commit されているスナップショットまたは Open で開かれていないスナップショットを使用してこのメソッドを呼び出すと、BaseStatus::ERROR_INTERNAL ステータスで失敗します。

オペレーションの完了時に、指定された OpenCallback を呼び出します。

ResolveConflict

void ResolveConflict(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents,
  OpenCallback callback
)

提供されたデータを使用して、競合を非同期的に解決します。

これにより、サーバー上のデータが、指定したメタデータの変更と contents に置き換えられます。この操作自体が競合を引き起こす可能性があるため、解決を繰り返す必要があります。

メタデータの変更に含まれていない値は、現在サーバー上にあるバージョンに解決されます。

contents の合計サイズは、GetMaxSize によって提供される maxDataSize を超えることはできません。

すでに commit されているスナップショットまたは Open で開かれていないスナップショットを使用してこのメソッドを呼び出すと、BaseStatus::ERROR_INTERNAL ステータスで失敗します。

オペレーションの完了時に、指定された OpenCallback を呼び出します。

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata
)

指定されたスナップショットのデータを使用して競合を同期的に解決します。

これにより、サーバー上のデータが指定したスナップショットに置き換えられます。この操作自体が競合を引き起こす可能性があるため、解決を繰り返す必要があります。

すでに commit されているスナップショットまたは Open で開かれていないスナップショットを使用してこのメソッドを呼び出すと、BaseStatus::ERROR_INTERNAL ステータスで失敗します。

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

提供されたデータを使用して、競合を同期的に解決します。

これにより、サーバー上のデータが、指定したメタデータの変更と contents に置き換えられます。この操作自体が競合を引き起こす可能性があるため、解決を繰り返す必要があります。

メタデータの変更に含まれていない値は、現在サーバー上にあるバージョンに解決されます。

contents の合計サイズは、GetMaxSize によって提供される maxDataSize を超えることはできません。

すでに commit されているスナップショットまたは Open で開かれていないスナップショットを使用してこのメソッドを呼び出すと、BaseStatus::ERROR_INTERNAL ステータスで失敗します。

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  Timeout timeout,
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata
)

指定されたスナップショットのデータを使用して競合を同期的に解決します。

これにより、サーバー上のデータが指定したスナップショットに置き換えられます。この操作自体が競合を引き起こす可能性があるため、解決を繰り返す必要があります。

すでに commit されているスナップショットまたは Open で開かれていないスナップショットを使用してこのメソッドを呼び出すと、BaseStatus::ERROR_INTERNAL ステータスで失敗します。

timeout をミリ秒単位で指定します。

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  Timeout timeout,
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

提供されたデータを使用して、競合を同期的に解決します。

これにより、サーバー上のデータが、指定したメタデータの変更と contents に置き換えられます。この操作自体が競合を引き起こす可能性があるため、解決を繰り返す必要があります。

メタデータの変更に含まれていない値は、現在サーバー上にあるバージョンに解決されます。

contents の合計サイズは、GetMaxSize によって提供される maxDataSize を超えることはできません。

すでに commit されているスナップショットまたは Open で開かれていないスナップショットを使用してこのメソッドを呼び出すと、BaseStatus::ERROR_INTERNAL ステータスで失敗します。

timeout をミリ秒単位で指定します。

ShowSelectUIOperation

void ShowSelectUIOperation(
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title,
  SnapshotSelectUICallback callback
)

スナップショットの UI を非同期的に表示し、プレーヤーがスナップショットを選択したり、新しいスナップショットをリクエストしたりできるようにします。

完了すると、選択したスナップショットまたは新しいスナップショット リクエストが SnapshotSelectUICallback を介して返されます。

ShowSelectUIOperationBlocking

SnapshotSelectUIResponse ShowSelectUIOperationBlocking(
  Timeout timeout,
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title
)

ShowSelectUIOperation のブロック バージョン。

呼び出し元がタイムアウトをミリ秒単位で指定できるようにします。指定された時間が経過すると、関数は ERROR_TIMEOUT を返します。

ShowSelectUIOperationBlocking

SnapshotSelectUIResponse ShowSelectUIOperationBlocking(
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title
)

デフォルトのタイムアウト(10 年)を使用する ShowSelectUIOperationBlocking のオーバーロードです。