gpg::SnapshotManager

#include <snapshot_manager.h>

Mendapatkan 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
Meng-commit data yang diberikan ke snapshot secara asinkron, dan mengupdate 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 mengupdate 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 mengupdate 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 pemutar yang saat ini login.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
Memuat semua data snapshot secara asinkron untuk pemutar yang saat ini login.
FetchAllBlocking()
Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga langsung menampilkan FetchAllResponse.
FetchAllBlocking(DataSource data_source)
Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga langsung menampilkan FetchAllResponse.
FetchAllBlocking(Timeout timeout)
Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga langsung menampilkan FetchAllResponse.
FetchAllBlocking(DataSource data_source, Timeout timeout)
Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga langsung menampilkan FetchAllResponse.
GetMaxSize(MaxSizeCallback callback) const
void
Mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte secara asinkron.
GetMaxSizeBlocking() const
Mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte secara bersamaan, yang langsung menampilkan MaxSizeResponse.
GetMaxSizeBlocking(Timeout timeout) const
Mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte secara bersamaan, yang langsung menampilkan MaxSizeResponse.
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Membuka snapshot dengan nama yang diberikan 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 yang diberikan secara asinkron.
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Membuka snapshot dengan nama yang diberikan secara bersamaan.
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Membuka snapshot dengan nama yang diberikan secara bersamaan.
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 yang diberikan secara bersamaan.
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 yang diberikan secara bersamaan.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
Membaca snapshot dari disk secara asinkron, dan menyalinnya ke dalam memori.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
Membaca snapshot dari disk secara sinkron 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
Me-resolve 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, yang memungkinkan pemutar memilih snapshot atau meminta snapshot baru.
ShowSelectUIOperationBlocking(Timeout timeout, bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Memblokir versi ShowSelectUIOperation.
ShowSelectUIOperationBlocking(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Kelebihan 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, bersama dengan status respons.

gpg::SnapshotManager::MaxSizeResponse

Menyimpan ukuran maksimum untuk data snapshot dan untuk gambar sampul snapshot.

gpg::SnapshotManager::OpenResponse

Menyimpan data untuk snapshot tertentu yang diminta beserta 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 disediakan ke 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
)

Meng-commit data yang diberikan ke snapshot secara asinkron, dan mengupdate 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 mengupdate 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 mengupdate 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 pemutar 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 pemutar yang saat ini login.

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

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga langsung menampilkan FetchAllResponse.

Menentukan data_source atau timeout membuat panggilan fungsi ini setara dengan memanggil 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
)

Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga 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 yang ditetapkan sebagai 10 tahun.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga 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 yang berisi nilai yang Anda tentukan.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

Secara sinkron memuat semua data snapshot untuk pemutar yang sedang login, sehingga langsung menampilkan FetchAllResponse.

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

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

Mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte secara asinkron.

Memanggil MaxSizeCallback yang disediakan setelah operasi selesai.

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

Ukuran data maksimum per gambar sampul snapshot dijamin minimal 800 KB. Dapat meningkat di masa mendatang.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

Mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte secara bersamaan, yang langsung menampilkan MaxSizeResponse.

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

Ukuran data maksimum per gambar sampul snapshot dijamin minimal 800 KB. Dapat meningkat di masa mendatang.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

Mendapatkan ukuran data maksimum dan ukuran gambar sampul maksimum per snapshot dalam byte secara bersamaan, yang langsung menampilkan MaxSizeResponse.

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

Ukuran data maksimum per gambar sampul snapshot dijamin minimal 800 KB. Dapat meningkat di masa mendatang.

Tentukan timeout dalam milidetik.

Terbuka

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

Membuka snapshot dengan nama yang diberikan 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 bukan merupakan URL yang dicadangkan (a-z, A-Z, 0-9, atau simbol "-", ".", "_", atau "~").

Konflik dapat terjadi jika perangkat lain meng-commit snapshot antara memuat dan menyimpan 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. Ada kemungkinan untuk melihat beberapa konflik berturut-turut, jadi periksa setiap kali Anda memanggil Open. Ini adalah satu-satunya kebijakan yang akan mengakibatkan konflik. Resolusi handle lainnya untuk Anda. Kebijakan ini memastikan bahwa tidak ada perubahan yang oleh pengguna pada status game yang disimpan akan hilang.

SnapshotConflictPolicy::LONGEST_PLAYTIME - Jika terjadi konflik, snapshot dengan nilai waktu bermain terbesar akan digunakan. Kebijakan ini merupakan pilihan yang bagus jika durasi waktu bermain merupakan nilai pengganti yang wajar untuk game tersimpan "terbaik". Perhatikan bahwa Anda harus menggunakan SnapshotMetadataChange::Builder::SetPlayedTime() saat menyimpan game agar kebijakan ini bermakna.

SnapshotConflictPolicy::LAST_KNOWN_GOOD - Jika terjadi konflik, snapshot dasar akan digunakan. Kebijakan ini adalah pilihan yang wajar jika game Anda membutuhkan stabilitas dari data snapshot. Kebijakan ini memastikan bahwa pemutar hanya akan melihat tulisan yang tidak diperebutkan, yang menjamin bahwa semua klien akan bertemu. Catatan: sebelumnya SnapshotManager::BASE_WINS

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

SnapshotConflictPolicy::HIGHEST_PROGRESSJika terjadi konflik, snapshot dengan nilai progres tertinggi akan digunakan. Dalam kasus seri, snapshot bagus terakhir yang diketahui akan dipilih. Kebijakan ini adalah pilihan yang bagus jika game Anda menggunakan nilai progres snapshot untuk menentukan game tersimpan terbaik. Perhatikan bahwa Anda harus menggunakan SnapshotMetadataChange::Builder::SetPlayedTime() saat menyimpan game agar kebijakan ini bermakna.

Terbuka

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

Membuka snapshot dengan nama yang diberikan 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 yang diberikan secara bersamaan.

Snapshot yang ditentukan akan dibuat jika belum ada.

Lihat Membuka untuk detail selengkapnya.

OpenBlocking

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

Membuka snapshot dengan nama yang diberikan secara bersamaan.

Snapshot yang ditentukan akan dibuat jika belum ada.

Tentukan timeout dalam milidetik.

Lihat Membuka untuk detail selengkapnya.

OpenBlocking

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

Membuka snapshot dengan nama yang diberikan secara bersamaan.

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 yang diberikan secara bersamaan.

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

Dibaca

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

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

Data tersebut diteruskan kembali berdasarkan nilai untuk memudahkan modifikasi. Setiap panggilan ke fungsi ini menghasilkan pembacaan penuh. Artinya, biasanya yang terbaik adalah membaca snapshot satu kali saja. Memanggil ReadCallback yang disediakan setelah operasi selesai.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

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

Data tersebut diteruskan kembali berdasarkan nilai untuk memudahkan modifikasi. Setiap panggilan ke fungsi ini menghasilkan pembacaan penuh. Artinya, biasanya yang terbaik adalah membaca snapshot satu kali saja. 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 tersebut diteruskan kembali berdasarkan nilai untuk memudahkan modifikasi. Setiap panggilan ke metode ini melakukan pembacaan penuh, sehingga biasanya hanya membaca snapshot sekali. Tentukan timeout dalam milidetik.

ResolveConflict

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

Me-resolve 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, yang dalam hal ini resolusi harus diulang.

Memanggil metode ini dengan snapshot yang telah di-commit atau tidak 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, yang dalam hal ini resolusi harus diulang.

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

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

Memanggil metode ini dengan snapshot yang telah di-commit atau tidak 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, yang dalam hal ini resolusi harus diulang.

Memanggil metode ini dengan snapshot yang telah di-commit atau tidak 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, yang dalam hal ini resolusi harus diulang.

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

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

Memanggil metode ini dengan snapshot yang telah di-commit atau tidak 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, yang dalam hal ini resolusi harus diulang.

Memanggil metode ini dengan snapshot yang telah di-commit atau tidak 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, yang dalam hal ini resolusi harus diulang.

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

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

Memanggil metode ini dengan snapshot yang telah di-commit atau tidak 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, yang memungkinkan pemutar 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
)

Memblokir versi 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 ShowSelectUIOperationBlocking, yang menggunakan waktu tunggu default selama 10 tahun.