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 &)>
กำหนดโค้ดเรียกกลับที่สามารถรับ SnapshotSelectUIResponse จาก ShowSelectUIOperation

ฟังก์ชันสาธารณะ

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
คอมมิตข้อมูลที่ให้ไว้กับสแนปชอตแบบไม่พร้อมกัน และอัปเดตข้อมูลเมตาของสแนปชอตโดยใช้ออบเจ็กต์ข้อมูลเมตาที่ระบุ
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
คอมมิตข้อมูลที่ให้ไว้กับสแนปชอตแบบซิงโครนัสและอัปเดตข้อมูลเมตาของสแนปชอตโดยใช้ออบเจ็กต์ข้อมูลเมตาที่ระบุ
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
คอมมิตข้อมูลที่ให้ไว้กับสแนปชอตแบบซิงโครนัสและอัปเดตข้อมูลเมตาของสแนปชอตโดยใช้ออบเจ็กต์ข้อมูลเมตาที่ให้ไว้
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)
มีการโอเวอร์โหลด ShowSelectUIOperationBlocking ซึ่งใช้ระยะหมดเวลาเริ่มต้น 10 ปี

โครงสร้าง

gpg::SnapshotManager::CommitResponse

เก็บข้อมูลสำหรับสแนปชอตที่อัปเดต พร้อมสถานะการตอบกลับ

gpg::SnapshotManager::FetchAllResponse

เก็บข้อมูลทั้งหมดสำหรับสแนปชอตทั้งหมด รวมถึงสถานะการตอบกลับ

gpg::SnapshotManager::MaxSizeResponse

รักษาขนาดสูงสุดของข้อมูลสแนปชอตและสำหรับภาพหน้าปกของสแนปชอต

gpg::SnapshotManager::OpenResponse

เก็บข้อมูลของสแนปชอตที่ร้องขอบางรายการ รวมถึงสถานะการตอบกลับ

gpg::SnapshotManager::ReadResponse

อ่านสถานะการตอบกลับและข้อมูลสแนปชอตที่ส่งคืนจากการดำเนินการอ่านสแนปชอต

gpg::SnapshotManager::SnapshotSelectUIResponse

Data และ ResponseStatus สำหรับการดำเนินการ ShowSelectUIOperation

ประเภทสาธารณะ

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

กำหนดโค้ดเรียกกลับที่สามารถรับ SnapshotSelectUIResponse จาก ShowSelectUIOperation

ฟังก์ชันสาธารณะ

คอมมิต

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

คอมมิตข้อมูลที่ให้ไว้กับสแนปชอตแบบไม่พร้อมกัน และอัปเดตข้อมูลเมตาของสแนปชอตโดยใช้ออบเจ็กต์ข้อมูลเมตาที่ระบุ

เรียกใช้ CommitCallback ที่ระบุเมื่อการดำเนินการเสร็จสิ้น

CommitBlocking

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

คอมมิตข้อมูลที่ให้ไว้กับสแนปชอตแบบซิงโครนัสและอัปเดตข้อมูลเมตาของสแนปชอตโดยใช้ออบเจ็กต์ข้อมูลเมตาที่ระบุ

CommitBlocking

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

คอมมิตข้อมูลที่ให้ไว้กับสแนปชอตแบบซิงโครนัสและอัปเดตข้อมูลเมตาของสแนปชอตโดยใช้ออบเจ็กต์ข้อมูลเมตาที่ให้ไว้

ระบุ timeout เป็นมิลลิวินาที

ลบ

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

ลบสแนปชอตที่ระบุ

การดำเนินการนี้จะลบข้อมูลของสแนปชอตในเครื่องและบนเซิร์ฟเวอร์

FetchAll

void FetchAll(
  FetchAllCallback callback
)

โหลดข้อมูลสแนปชอตทั้งหมดแบบไม่พร้อมกันสำหรับโปรแกรมเล่นที่ลงชื่อเข้าใช้อยู่ในปัจจุบัน

เรียกใช้ FetchAllCallback ที่ระบุเมื่อการดำเนินการเสร็จสิ้น การไม่ระบุ data_source ทำให้การเรียกใช้ฟังก์ชันนี้เทียบเท่ากับการเรียกใช้ FetchAll(DataSource data_source, FetchAllCallback callback) ที่ระบุ data_source เป็น CACHE_OR_NETWORK.

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

โหลดข้อมูลสแนปชอตทั้งหมดแบบไม่พร้อมกันสำหรับโปรแกรมเล่นที่ลงชื่อเข้าใช้อยู่ในปัจจุบัน

เรียกใช้ FetchAllCallback ที่ระบุเมื่อการดำเนินการเสร็จสิ้น ระบุ data_source เป็น CACHE_OR_NETWORK หรือ NETWORK_ONLY

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

โหลดข้อมูลสแนปชอตทั้งหมดแบบพร้อมกันสำหรับโปรแกรมเล่นที่ลงชื่อเข้าใช้ในปัจจุบัน โดยส่งคืน FetchAllResponse โดยตรง

การระบุทั้ง data_source และ timeout จะทำให้การเรียกใช้ฟังก์ชันนี้เทียบเท่ากับการเรียกใช้ FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) ซึ่ง data_source ระบุเป็น CACHE_OR_NETWORK และ timeout ระบุเป็น 10 ปี

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

โหลดข้อมูลสแนปชอตทั้งหมดแบบพร้อมกันสำหรับโปรแกรมเล่นที่ลงชื่อเข้าใช้ในปัจจุบัน โดยส่งคืน FetchAllResponse โดยตรง

ระบุ data_source เป็น CACHE_OR_NETWORK หรือ NETWORK_ONLY การไม่ระบุ timeout จะทำให้การเรียกใช้ฟังก์ชันนี้เทียบเท่ากับการเรียกใช้ FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout) ซึ่งมีค่า data_source ที่คุณระบุและ timeout ระบุเป็น 10 ปี

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

โหลดข้อมูลสแนปชอตทั้งหมดแบบพร้อมกันสำหรับโปรแกรมเล่นที่ลงชื่อเข้าใช้ในปัจจุบัน โดยส่งคืน FetchAllResponse โดยตรง

ระบุ timeout เป็นมิลลิวินาที การไม่ระบุ data_source จะทำให้การเรียกใช้ฟังก์ชันนี้เทียบเท่ากับการเรียกใช้ FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) โดยที่ data_source ระบุเป็น CACHE_OR_NETWORK และ timeout มีค่าที่คุณระบุ

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

โหลดข้อมูลสแนปชอตทั้งหมดแบบพร้อมกันสำหรับโปรแกรมเล่นที่ลงชื่อเข้าใช้ในปัจจุบัน โดยส่งคืน FetchAllResponse โดยตรง

ระบุ data_source เป็น CACHE_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 ไว้ระหว่าง 1 ถึง 100 ตัว (a-z, A-Z, 0-9 หรือสัญลักษณ์ "-", ".", "_" หรือ "~")

ข้อขัดแย้งอาจเกิดขึ้นหากอุปกรณ์อื่นสร้างสแนปชอตระหว่างการโหลดและคอมมิตสแนปชอตในอุปกรณ์ปัจจุบัน คุณต้องแก้ไขความขัดแย้งเหล่านี้ โปรดดู 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) แทน

OpenBlocking

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

เปิดสแนปชอตที่มีชื่อดังกล่าวแบบซิงโครนัส

ระบบจะสร้างสแนปชอตที่ระบุหากยังไม่มี

ดูรายละเอียดเพิ่มเติมได้ที่เปิด

OpenBlocking

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

เปิดสแนปชอตที่มีชื่อดังกล่าวแบบซิงโครนัส

ระบบจะสร้างสแนปชอตที่ระบุหากยังไม่มี

ระบุ timeout เป็นมิลลิวินาที

ดูรายละเอียดเพิ่มเติมได้ที่เปิด

OpenBlocking

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

เปิดสแนปชอตที่มีชื่อดังกล่าวแบบซิงโครนัส

เลิกใช้งานแล้ว data_source จะถูกละเว้น โปรดใช้ OpenBlocking(file_name, conflict_policy) แทน

OpenBlocking

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
)

อ่านสแนปชอตจากดิสก์แบบไม่พร้อมกันและคัดลอกไว้ในหน่วยความจำ

ข้อมูลจะถูกส่งกลับมาด้วยค่าเพื่อให้แก้ไขได้ง่ายขึ้น การเรียกใช้ฟังก์ชันนี้แต่ละครั้งจะแสดงผลเป็นการอ่านแบบเต็ม ซึ่งหมายความว่าโดยทั่วไปแล้ววิธีที่ดีที่สุดคือการอ่านสแนปชอตเพียงครั้งเดียว เรียกใช้ ReadCallback ที่ระบุเมื่อการดำเนินการเสร็จสิ้น

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

อ่านสแนปชอตจากดิสก์แบบซิงโครนัสและคัดลอกลงในหน่วยความจำ

ข้อมูลจะถูกส่งกลับมาด้วยค่าเพื่อให้แก้ไขได้ง่ายขึ้น การเรียกใช้ฟังก์ชันนี้แต่ละครั้งจะแสดงผลเป็นการอ่านแบบเต็ม ซึ่งหมายความว่าโดยทั่วไปแล้ววิธีที่ดีที่สุดคือการอ่านสแนปชอตเพียงครั้งเดียว การไม่ระบุ timeout จะทำให้การเรียกใช้ฟังก์ชันนี้เทียบเท่ากับการเรียกใช้ ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata) ซึ่งมีการระบุ timeout เป็น 10 ปี

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

อ่านสแนปชอตจากดิสก์แบบซิงโครนัสและคัดลอกลงในหน่วยความจำ

ข้อมูลจะถูกส่งกลับมาด้วยค่าเพื่อให้แก้ไขได้ง่ายขึ้น การเรียกแต่ละครั้งจะมีการอ่านแบบเต็ม ดังนั้นโดยทั่วไปจะอ่านสแนปชอตเพียงครั้งเดียว ระบุ timeout เป็นมิลลิวินาที

ResolveConflict

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

แก้ไขความขัดแย้งแบบไม่พร้อมกันโดยใช้ข้อมูลจากสแนปชอตที่ให้ไว้

การดำเนินการนี้จะแทนที่ข้อมูลในเซิร์ฟเวอร์ด้วยสแนปชอตที่ระบุ โปรดทราบว่าการดำเนินการนี้อาจส่งผลให้เกิดความขัดแย้งในกรณีดังกล่าว ในกรณีนี้การแก้ไขจะต้องทำซ้ำ

การเรียกใช้เมธอดนี้ด้วยสแนปชอตที่คอมมิตแล้วหรือที่ไม่ได้เปิดผ่าน 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 ต้องไม่เกิน maxDataSize ซึ่งระบุโดย GetMaxSize

การเรียกใช้เมธอดนี้ด้วยสแนปชอตที่คอมมิตแล้วหรือที่ไม่ได้เปิดผ่าน Open จะล้มเหลวโดยมีสถานะ BaseStatus::ERROR_INTERNAL

เรียกใช้ OpenCallback ที่ระบุเมื่อการดำเนินการเสร็จสิ้น

ResolveConflictBlocking

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

แก้ไขข้อขัดแย้งแบบพร้อมกันโดยใช้ข้อมูลจากสแนปชอตที่ให้ไว้

การดำเนินการนี้จะแทนที่ข้อมูลในเซิร์ฟเวอร์ด้วยสแนปชอตที่ระบุ โปรดทราบว่าการดำเนินการนี้อาจส่งผลให้เกิดความขัดแย้งในกรณีดังกล่าว ในกรณีนี้การแก้ไขจะต้องทำซ้ำ

การเรียกใช้เมธอดนี้ด้วยสแนปชอตที่คอมมิตแล้วหรือที่ไม่ได้เปิดผ่าน 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 ต้องไม่เกิน maxDataSize ซึ่งระบุโดย GetMaxSize

การเรียกใช้เมธอดนี้ด้วยสแนปชอตที่คอมมิตแล้วหรือที่ไม่ได้เปิดผ่าน Open จะล้มเหลวโดยมีสถานะ BaseStatus::ERROR_INTERNAL

ResolveConflictBlocking

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

แก้ไขข้อขัดแย้งแบบพร้อมกันโดยใช้ข้อมูลจากสแนปชอตที่ให้ไว้

การดำเนินการนี้จะแทนที่ข้อมูลในเซิร์ฟเวอร์ด้วยสแนปชอตที่ระบุ โปรดทราบว่าการดำเนินการนี้อาจส่งผลให้เกิดความขัดแย้งในกรณีดังกล่าว ในกรณีนี้การแก้ไขจะต้องทำซ้ำ

การเรียกใช้เมธอดนี้ด้วยสแนปชอตที่คอมมิตแล้วหรือที่ไม่ได้เปิดผ่าน 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 ต้องไม่เกิน maxDataSize ซึ่งระบุโดย GetMaxSize

การเรียกใช้เมธอดนี้ด้วยสแนปชอตที่คอมมิตแล้วหรือที่ไม่ได้เปิดผ่าน 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
)

มีการโอเวอร์โหลด ShowSelectUIOperationBlocking ซึ่งใช้ระยะหมดเวลาเริ่มต้น 10 ปี