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
非推奨。 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) 非推奨。 data_source は無視されます。代わりに OpenBlocking(file_name, conflict_policy) を使用してください。
指定された名前のスナップショットを同期的に開きます。
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy) 非推奨。 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 年)を使用する ShowSelectUIOperationBlocked のオーバーロード。

構造体

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 を呼び出します。

CommitBlock

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

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

CommitBlock

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
)

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

ローカルとサーバーのスナップショットのデータが削除されます。

取得

void FetchAll(
  FetchAllCallback callback
)

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

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

取得

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

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

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

FetchAllBlock

FetchAllResponse FetchAllBlocking()

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

data_sourcetimeout も指定しなかった場合、この関数の呼び出しは、data_sourceCACHE_OR_NETWORKtimeout を 1 年として指定する FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) を呼び出すのと同じ結果になります。

FetchAllBlock

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

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

data_sourceCACHE_OR_NETWORK または NETWORK_ONLY として指定します。timeout を指定しなかった場合、この関数呼び出しは、指定された data_source 値と timeout を 10 年として指定した FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout) を呼び出した場合と同等になります。

FetchAllBlock

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

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

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

FetchAllBlock

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 以上であることが保証されています。今後増加する可能性があります。

GetMaxSizeBlock

MaxSizeResponse GetMaxSizeBlocking() const 

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

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

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

GetMaxSizeBlock

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

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

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

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

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

開く

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

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

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

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

別のデバイスで現在のスナップショットの読み込みと 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
)

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

非推奨。 data_source は無視されます。代わりに Open(file_name, conflict_policy, callback) を使用してください。

OpenBlock

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

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

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

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

OpenBlock

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

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

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

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

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

OpenBlock

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

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

非推奨。 data_source は無視されます。代わりに OpenBlocking(file_name, conflict_policy) を使用してください。

OpenBlock

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

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

非推奨。 data_source は無視されます。代わりに OpenBlocking(timeout, file_name, conflict_policy) を使用してください。

読む

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

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

修正しやすいように、値は値によって返されます。この関数が呼び出されるたびに、完全な読み取りが行われます。通常は、スナップショットの読み取りは 1 回だけ行うことをおすすめします。オペレーションの完了時に、指定された ReadCallback を呼び出します。

読み取りブロック

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

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

修正しやすいように、値は値によって返されます。この関数が呼び出されるたびに、完全な読み取りが行われます。通常は、スナップショットの読み取りは 1 回だけ行うことをおすすめします。timeout を指定しないと、この関数の呼び出しは、ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata) と指定することと同様となり、timeout は 10 年間と指定されます。

読み取りブロック

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

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

修正しやすいように、値は値によって返されます。この呼び出しごとにすべて読み取りが行われるため、通常はスナップショットは 1 回だけ読み取られます。timeout をミリ秒単位で指定します。

解決の競合

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

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

これにより、サーバー上のデータが指定したスナップショットに置き換えられます。このオペレーションによって競合が生じる可能性があり、その場合は解決を繰り返し行う必要があります。

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

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

解決の競合

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 を呼び出します。

ResolveConflictBlocked

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

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

これにより、サーバー上のデータが指定したスナップショットに置き換えられます。このオペレーションによって競合が生じる可能性があり、その場合は解決を繰り返し行う必要があります。

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

ResolveConflictBlocked

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 ステータスで失敗します。

ResolveConflictBlocked

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

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

これにより、サーバー上のデータが指定したスナップショットに置き換えられます。このオペレーションによって競合が生じる可能性があり、その場合は解決を繰り返し行う必要があります。

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

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

ResolveConflictBlocked

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 を介して返されます。

ShowSelectUIOperationBlock

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

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

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

ShowSelectUIOperationBlock

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

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