gpg:: SnapshotManager
#include <snapshot_manager.h>
รับและตั้งค่าข้อมูลต่างๆ ที่เกี่ยวข้องกับสแนปชอต
สรุป
หากแอปไม่ได้เปิดใช้สแนปชอตขณะตรวจสอบสิทธิ์ (โปรดดู GameServices::Builder::EnableSnapshots) เมธอดส่วนใหญ่ใน SnapshotManager
จะล้มเหลว
ประเภทสาธารณะ |
|
---|---|
CommitCallback
|
typedefstd::function< void(const CommitResponse &)>
กำหนดประเภทโค้ดเรียกกลับที่ได้รับ CommitResponse |
FetchAllCallback
|
typedefstd::function< void(const FetchAllResponse &)>
กำหนดประเภทโค้ดเรียกกลับที่ได้รับ FetchAllResponse |
MaxSizeCallback
|
typedefstd::function< void(const MaxSizeResponse &)>
กำหนดประเภทโค้ดเรียกกลับที่ได้รับ MaxSizeResponse |
OpenCallback
|
typedefstd::function< void(const OpenResponse &)>
กำหนดประเภทโค้ดเรียกกลับที่ได้รับ OpenResponse |
ReadCallback
|
typedefstd::function< void(const ReadResponse &)>
กำหนดประเภทโค้ดเรียกกลับที่ได้รับ ReadResponse |
SnapshotSelectUICallback
|
typedefstd::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:: |
เก็บข้อมูลสำหรับสแนปชอตที่อัปเดต พร้อมสถานะการตอบกลับ |
gpg:: |
เก็บข้อมูลทั้งหมดสำหรับสแนปชอตทั้งหมด รวมถึงสถานะการตอบกลับ |
gpg:: |
รักษาขนาดสูงสุดของข้อมูลสแนปชอตและสำหรับภาพหน้าปกของสแนปชอต |
gpg:: |
เก็บข้อมูลของสแนปชอตที่ร้องขอบางรายการ รวมถึงสถานะการตอบกลับ |
gpg:: |
อ่านสถานะการตอบกลับและข้อมูลสแนปชอตที่ส่งคืนจากการดำเนินการอ่านสแนปชอต |
gpg:: |
|
ประเภทสาธารณะ
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 ปี