gpg::SnapshotManager

#include <snapshot_manager.h>

Mengambil dan menetapkan berbagai data terkait snapshot.

Ringkasan

Jika aplikasi tidak mengaktifkan snapshot pada waktu autentikasi (lihat GameServices::Builder::EnableSnapshots), sebagian besar metode di SnapshotManager akan gagal.

Jenis publik

CommitCallback typedef
std::function< void(const CommitResponse &)>
Menentukan jenis callback yang menerima CommitResponse.
FetchAllCallback typedef
std::function< void(const FetchAllResponse &)>
Menentukan jenis callback yang menerima FetchAllResponse.
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
Menentukan jenis callback yang menerima MaxSizeResponse.
OpenCallback typedef
std::function< void(const OpenResponse &)>
Menentukan jenis callback yang menerima OpenResponse.
ReadCallback typedef
std::function< void(const ReadResponse &)>
Menentukan jenis callback yang menerima ReadResponse.
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
Menentukan callback yang dapat menerima SnapshotSelectUIResponse dari ShowSelectUIOperation.

Fungsi publik

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
Lakukan commit data yang diberikan ke snapshot secara asinkron, dan memperbarui metadata snapshot menggunakan objek metadata yang disediakan.
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Meng-commit data yang diberikan ke snapshot secara sinkron, dan memperbarui metadata snapshot menggunakan objek metadata yang disediakan.
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Meng-commit data yang diberikan ke snapshot secara sinkron dan memperbarui metadata snapshot menggunakan objek metadata yang disediakan.
Delete(const SnapshotMetadata & snapshot_metadata)
void
Menghapus snapshot yang ditentukan.
FetchAll(FetchAllCallback callback)
void
Memuat semua data snapshot secara asinkron untuk pemain yang saat ini login.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
Memuat semua data snapshot secara asinkron untuk pemain yang saat ini login.
FetchAllBlocking()
Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.
FetchAllBlocking(DataSource data_source)
Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.
FetchAllBlocking(Timeout timeout)
Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.
FetchAllBlocking(DataSource data_source, Timeout timeout)
Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.
GetMaxSize(MaxSizeCallback callback) const
void
Secara asinkron mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte.
GetMaxSizeBlocking() const
Secara sinkron mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte, langsung menampilkan MaxSizeResponse.
GetMaxSizeBlocking(Timeout timeout) const
Secara sinkron mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte, langsung menampilkan MaxSizeResponse.
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Membuka snapshot dengan nama tertentu secara asinkron.
Open(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Tidak digunakan lagi. data_source diabaikan. Sebagai gantinya, gunakan Open(file_name, conflict_policy, callback).
Membuka snapshot dengan nama tertentu secara asinkron.
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Membuka snapshot dengan nama tertentu secara sinkron.
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Membuka snapshot dengan nama tertentu secara sinkron.
OpenBlocking(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy) Tidak digunakan lagi. data_source diabaikan. Sebagai gantinya, gunakan OpenBlocking(file_name, conflict_policy).
Membuka snapshot dengan nama tertentu secara sinkron.
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy) Tidak digunakan lagi. data_source diabaikan. Sebagai gantinya, gunakan OpenBlocking(timeout, file_name, conflict_policy).
Membuka snapshot dengan nama tertentu secara sinkron.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
Membaca snapshot secara asinkron dari disk, dan menyalinnya ke dalam memori.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
Membaca snapshot secara sinkron dari disk, dan menyalinnya ke dalam memori.
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
Membaca snapshot dari disk secara sinkron dan menyalinnya ke dalam memori.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
Menyelesaikan konflik secara asinkron menggunakan data dari snapshot yang disediakan.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents, OpenCallback callback)
void
Menyelesaikan konflik secara asinkron menggunakan data yang disediakan.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Menyelesaikan konflik secara sinkron menggunakan data dari snapshot yang disediakan.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Menyelesaikan konflik secara sinkron menggunakan data yang disediakan.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Menyelesaikan konflik secara sinkron menggunakan data dari snapshot yang disediakan.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Menyelesaikan konflik secara sinkron menggunakan data yang disediakan.
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
void
Menampilkan UI snapshot secara asinkron, sehingga pemain dapat memilih snapshot atau meminta snapshot baru.
ShowSelectUIOperationBlocking(Timeout timeout, bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Versi pemblokiran ShowSelectUIOperation.
ShowSelectUIOperationBlocking(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Kelebihan beban ShowSelectUIOperationBlocking, yang menggunakan waktu tunggu default selama 10 tahun.

Struct

gpg::SnapshotManager::CommitResponse

Menyimpan data untuk snapshot yang diperbarui, bersama dengan status respons.

gpg::SnapshotManager::FetchAllResponse

Menyimpan semua data untuk semua snapshot, beserta status respons.

gpg::SnapshotManager::MaxSizeResponse

Mempertahankan ukuran maksimum untuk data snapshot dan gambar sampul snapshot.

gpg::SnapshotManager::OpenResponse

Menyimpan data untuk snapshot yang diminta tertentu bersama dengan status respons.

gpg::SnapshotManager::ReadResponse

Membaca status respons dan data snapshot yang ditampilkan dari operasi baca snapshot.

gpg::SnapshotManager::SnapshotSelectUIResponse

Data dan ResponseStatus untuk operasi ShowSelectUIOperation.

Jenis publik

CommitCallback

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

Menentukan jenis callback yang menerima CommitResponse.

Jenis callback ini disediakan untuk fungsi Commit(*) dan ResolveConflict(*) di bawah.

FetchAllCallback

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

Menentukan jenis callback yang menerima FetchAllResponse.

Jenis callback ini disediakan untuk fungsi FetchAll(*) di bawah.

MaxSizeCallback

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

Menentukan jenis callback yang menerima MaxSizeResponse.

Jenis callback ini diberikan untuk GetMaxSize.

OpenCallback

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

Menentukan jenis callback yang menerima OpenResponse.

Jenis callback ini disediakan untuk fungsi Open(*) di bawah.

ReadCallback

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

Menentukan jenis callback yang menerima ReadResponse.

Jenis callback ini disediakan untuk fungsi Read(*) di bawah.

SnapshotSelectUICallback

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

Menentukan callback yang dapat menerima SnapshotSelectUIResponse dari ShowSelectUIOperation.

Fungsi publik

Commit

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

Lakukan commit data yang diberikan ke snapshot secara asinkron, dan memperbarui metadata snapshot menggunakan objek metadata yang disediakan.

Memanggil CommitCallback yang disediakan setelah operasi selesai.

CommitBlocking

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

Meng-commit data yang diberikan ke snapshot secara sinkron, dan memperbarui metadata snapshot menggunakan objek metadata yang disediakan.

CommitBlocking

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

Meng-commit data yang diberikan ke snapshot secara sinkron dan memperbarui metadata snapshot menggunakan objek metadata yang disediakan.

Tentukan timeout dalam milidetik.

Hapus

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

Menghapus snapshot yang ditentukan.

Tindakan ini akan menghapus data snapshot secara lokal dan di server.

FetchAll

void FetchAll(
  FetchAllCallback callback
)

Memuat semua data snapshot secara asinkron untuk pemain yang saat ini login.

Memanggil FetchAllCallback yang disediakan setelah operasi selesai. Tidak menentukan data_source membuat panggilan fungsi ini setara dengan memanggil FetchAll(DataSource data_source, FetchAllCallback callback), dengan data_source ditetapkan sebagai CACHE_OR_NETWORK.

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

Memuat semua data snapshot secara asinkron untuk pemain yang saat ini login.

Memanggil FetchAllCallback yang disediakan setelah operasi selesai. Tentukan data_source sebagai CACHE_OR_NETWORK atau NETWORK_ONLY.

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.

Menentukan data_source atau timeout membuat panggilan fungsi ini setara dengan panggilan FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout), dengan data_source ditetapkan sebagai CACHE_OR_NETWORK, dan timeout ditetapkan sebagai 10 tahun.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.

Tentukan data_source sebagai CACHE_OR_NETWORK atau NETWORK_ONLY. Tidak menentukan timeout membuat panggilan fungsi ini setara dengan memanggil FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout), dengan nilai data_source yang Anda tentukan, dan timeout ditetapkan sebagai 10 tahun.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.

Tentukan timeout dalam milidetik. Tidak menentukan data_source membuat panggilan fungsi ini setara dengan memanggil FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout), dengan data_source ditetapkan sebagai CACHE_OR_NETWORK, dan timeout berisi nilai yang Anda tentukan.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

Memuat semua data snapshot secara sinkron untuk pemutar yang saat ini login, langsung menampilkan FetchAllResponse.

Tentukan data_source sebagai CACHE_OR_NETWORK atau NETWORK_ONLY. Tentukan timeout dalam milidetik.

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

Secara asinkron mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte.

Memanggil MaxSizeCallback yang disediakan setelah operasi selesai.

Ukuran data maksimum per snapshot dijamin setidaknya sebesar 3 MB. Dapat meningkat pada masa mendatang.

Ukuran data maksimum per gambar sampul snapshot dijamin setidaknya sebesar 800 KB. Dapat meningkat pada masa mendatang.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

Secara sinkron mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte, langsung menampilkan MaxSizeResponse.

Ukuran data maksimum per snapshot dijamin setidaknya sebesar 3 MB. Dapat meningkat pada masa mendatang.

Ukuran data maksimum per gambar sampul snapshot dijamin setidaknya sebesar 800 KB. Dapat meningkat pada masa mendatang.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

Secara sinkron mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte, langsung menampilkan MaxSizeResponse.

Ukuran data maksimum per snapshot dijamin setidaknya sebesar 3 MB. Dapat meningkat pada masa mendatang.

Ukuran data maksimum per gambar sampul snapshot dijamin setidaknya sebesar 800 KB. Dapat meningkat pada masa mendatang.

Tentukan timeout dalam milidetik.

Buka

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

Membuka snapshot dengan nama tertentu secara asinkron.

Snapshot yang ditentukan akan dibuat jika belum ada. Memanggil OpenCallback yang disediakan setelah operasi selesai.

Nama snapshot harus antara 1 hingga 100 karakter yang tidak dicadangkan untuk URL (a-z, A-Z, 0-9, atau simbol "-", ".", "_", atau "~").

Konflik dapat terjadi jika perangkat lain meng-commit snapshot antara memuat dan melakukan snapshot pada perangkat saat ini. Anda harus menyelesaikan konflik ini. Lihat OpenResponse di atas untuk detail selengkapnya tentang konflik.

conflict_policy dapat berupa salah satu dari nilai berikut ini:

SnapshotConflictPolicy::MANUAL - Jika terjadi konflik, respons akan memiliki status OpenResponse::VALID_WITH_CONFLICT. Anda harus menyelesaikan konflik menggunakan SnapshotManager::ResolveConflict. Anda dapat melihat beberapa konflik berturut-turut, jadi periksa setiap kali Anda memanggil Open. Ini adalah satu-satunya kebijakan yang memicu konflik tersebut. Selebihnya dari nama sebutan channel. Kebijakan ini memastikan bahwa tidak ada perubahan yang akan hilang dari pengguna pada status game tersimpan.

SnapshotConflictPolicy::LONGEST_PLAYTIME - Jika terjadi konflik, snapshot dengan nilai waktu bermain terbesar akan digunakan. Kebijakan ini adalah pilihan yang bagus jika durasi waktu pemutaran merupakan proxy yang wajar untuk "terbaik" simpan game. Perlu diperhatikan bahwa Anda harus menggunakan SnapshotMetadataChange::Builder::SetPlayedTime() saat menyimpan game agar kebijakan ini bermanfaat.

SnapshotConflictPolicy::LAST_KNOWN_GOOD - Jika terjadi konflik, snapshot dasar akan digunakan. Kebijakan ini adalah pilihan yang wajar jika game Anda memerlukan stabilitas dari data snapshot. Kebijakan ini memastikan bahwa hanya operasi tulis yang tidak disengketakan yang dilihat oleh pemain, dan menjamin bahwa semua klien akan dikonvergensi. Catatan: sebelumnya SnapshotManager::BASE_WINS

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED - Jika terjadi konflik, remote akan digunakan. Kebijakan ini adalah pilihan yang wajar jika game Anda dapat menoleransi pemain di beberapa perangkat yang meng-clone perubahan mereka sendiri. Karena kebijakan ini secara membabi buta memilih data terbaru, perubahan yang dilakukan pemain mungkin akan hilang. Catatan: sebelumnya SnapshotManager::REMOTE_WINS

SnapshotConflictPolicy::HIGHEST_PROGRESSJika terjadi konflik, snapshot dengan nilai progres tertinggi akan digunakan. Jika ada seri, snapshot terakhir yang diketahui akan dipilih sebagai gantinya. Kebijakan ini adalah pilihan yang baik jika game Anda menggunakan nilai progres ringkasan untuk menentukan game tersimpan terbaik. Perlu diperhatikan bahwa Anda harus menggunakan SnapshotMetadataChange::Builder::SetPlayedTime() saat menyimpan game agar kebijakan ini bermanfaat.

Buka

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

Membuka snapshot dengan nama tertentu secara asinkron.

Tidak digunakan lagi. data_source diabaikan. Sebagai gantinya, gunakan Open(file_name, conflict_policy, callback).

OpenBlocking

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

Membuka snapshot dengan nama tertentu secara sinkron.

Snapshot yang ditentukan akan dibuat jika belum ada.

Lihat Buka untuk mengetahui detail selengkapnya.

OpenBlocking

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

Membuka snapshot dengan nama tertentu secara sinkron.

Snapshot yang ditentukan akan dibuat jika belum ada.

Tentukan timeout dalam milidetik.

Lihat Buka untuk mengetahui detail selengkapnya.

OpenBlocking

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

Membuka snapshot dengan nama tertentu secara sinkron.

Tidak digunakan lagi. data_source diabaikan. Sebagai gantinya, gunakan OpenBlocking(file_name, conflict_policy).

OpenBlocking

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

Membuka snapshot dengan nama tertentu secara sinkron.

Tidak digunakan lagi. data_source diabaikan. Sebagai gantinya, gunakan OpenBlocking(timeout, file_name, conflict_policy).

Baca

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

Membaca snapshot secara asinkron dari disk, dan menyalinnya ke dalam memori.

Data diteruskan kembali oleh nilai agar lebih mudah dimodifikasi. Setiap panggilan ke fungsi ini akan menghasilkan operasi baca secara menyeluruh. Artinya, snapshot biasanya hanya perlu dibaca satu kali. Memanggil ReadCallback yang disediakan setelah operasi selesai.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

Membaca snapshot secara sinkron dari disk, dan menyalinnya ke dalam memori.

Data diteruskan kembali oleh nilai agar lebih mudah dimodifikasi. Setiap panggilan ke fungsi ini akan menghasilkan operasi baca secara menyeluruh. Artinya, snapshot biasanya hanya perlu dibaca satu kali. Tidak menentukan timeout membuat panggilan fungsi ini setara dengan memanggil ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata), dengan timeout ditetapkan sebagai 10 tahun.

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

Membaca snapshot dari disk secara sinkron dan menyalinnya ke dalam memori.

Data diteruskan kembali oleh nilai agar lebih mudah dimodifikasi. Setiap panggilan ke ini melakukan pembacaan penuh sehingga biasanya hanya membaca snapshot satu kali. Tentukan timeout dalam milidetik.

ResolveConflict

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

Menyelesaikan konflik secara asinkron menggunakan data dari snapshot yang disediakan.

Tindakan ini akan mengganti data di server dengan snapshot yang ditentukan. Perhatikan bahwa operasi ini mungkin saja mengakibatkan konflik itu sendiri, dalam hal ini resolusi harus diulang.

Memanggil metode ini dengan snapshot yang telah di-commit atau yang belum dibuka melalui Open akan gagal dengan status BaseStatus::ERROR_INTERNAL.

Memanggil OpenCallback yang disediakan setelah operasi selesai.

ResolveConflict

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

Menyelesaikan konflik secara asinkron menggunakan data yang disediakan.

Tindakan ini akan mengganti data di server dengan perubahan metadata yang ditentukan dan contents. Perhatikan bahwa operasi ini mungkin saja mengakibatkan konflik itu sendiri, dalam hal ini resolusi harus diulang.

Nilai yang tidak disertakan dalam perubahan metadata akan diubah ke versi yang saat ini ada di server.

Perhatikan bahwa ukuran total contents tidak boleh melebihi maxDataSize yang diberikan oleh GetMaxSize.

Memanggil metode ini dengan snapshot yang telah di-commit atau yang belum dibuka melalui Open akan gagal dengan status BaseStatus::ERROR_INTERNAL.

Memanggil OpenCallback yang disediakan setelah operasi selesai.

ResolveConflictBlocking

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

Menyelesaikan konflik secara sinkron menggunakan data dari snapshot yang disediakan.

Tindakan ini akan mengganti data di server dengan snapshot yang ditentukan. Perhatikan bahwa operasi ini mungkin saja mengakibatkan konflik itu sendiri, dalam hal ini resolusi harus diulang.

Memanggil metode ini dengan snapshot yang telah di-commit atau yang belum dibuka melalui Open akan gagal dengan status BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

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

Menyelesaikan konflik secara sinkron menggunakan data yang disediakan.

Tindakan ini akan mengganti data di server dengan perubahan metadata yang ditentukan dan contents. Perhatikan bahwa operasi ini mungkin saja mengakibatkan konflik itu sendiri, dalam hal ini resolusi harus diulang.

Nilai yang tidak disertakan dalam perubahan metadata akan diubah ke versi yang saat ini ada di server.

Perhatikan bahwa ukuran total contents tidak boleh melebihi maxDataSize yang diberikan oleh GetMaxSize.

Memanggil metode ini dengan snapshot yang telah di-commit atau yang belum dibuka melalui Open akan gagal dengan status BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

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

Menyelesaikan konflik secara sinkron menggunakan data dari snapshot yang disediakan.

Tindakan ini akan mengganti data di server dengan snapshot yang ditentukan. Perhatikan bahwa operasi ini mungkin saja mengakibatkan konflik itu sendiri, dalam hal ini resolusi harus diulang.

Memanggil metode ini dengan snapshot yang telah di-commit atau yang belum dibuka melalui Open akan gagal dengan status BaseStatus::ERROR_INTERNAL.

Tentukan timeout dalam milidetik.

ResolveConflictBlocking

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

Menyelesaikan konflik secara sinkron menggunakan data yang disediakan.

Tindakan ini akan mengganti data di server dengan perubahan metadata yang ditentukan dan contents. Perhatikan bahwa operasi ini mungkin saja mengakibatkan konflik itu sendiri, dalam hal ini resolusi harus diulang.

Nilai yang tidak disertakan dalam perubahan metadata akan diubah ke versi yang saat ini ada di server.

Perhatikan bahwa ukuran total contents tidak boleh melebihi maxDataSize yang diberikan oleh GetMaxSize.

Memanggil metode ini dengan snapshot yang telah di-commit atau yang belum dibuka melalui Open akan gagal dengan status BaseStatus::ERROR_INTERNAL.

Tentukan timeout dalam milidetik.

ShowSelectUIOperation

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

Menampilkan UI snapshot secara asinkron, sehingga pemain dapat memilih snapshot atau meminta snapshot baru.

Setelah selesai, snapshot yang dipilih atau permintaan snapshot baru akan ditampilkan melalui SnapshotSelectUICallback.

ShowSelectUIOperationBlocking

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

Versi pemblokiran ShowSelectUIOperation.

Memungkinkan pemanggil menentukan waktu tunggu dalam md. Setelah waktu yang ditentukan berlalu, fungsi akan menampilkan ERROR_TIMEOUT.

ShowSelectUIOperationBlocking

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

Kelebihan beban ShowSelectUIOperationBlocking, yang menggunakan waktu tunggu default selama 10 tahun.