gpg::SnapshotManager

#include <snapshot_manager.h>

स्नैपशॉट से जुड़ा कई तरह का डेटा हासिल करता है और उसे सेट करता है.

खास जानकारी

अगर ऐप्लिकेशन पुष्टि के समय स्नैपशॉट लेने की सुविधा चालू नहीं करता (GameServices::Builder::EnableSnapshots देखें), तो SnapshotManager पर मौजूद ज़्यादातर तरीके काम नहीं करेंगे.

सार्वजनिक प्रकार

CommitCallback टाइपडिफ़
std::function< void(const CommitResponse &)>
CommitResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.
FetchAllCallback टाइपडिफ़
std::function< void(const FetchAllResponse &)>
FetchAllResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.
MaxSizeCallback टाइपडिफ़
std::function< void(const MaxSizeResponse &)>
MaxSizeResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.
OpenCallback टाइपडिफ़
std::function< void(const OpenResponse &)>
OpenResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.
ReadCallback टाइपडिफ़
std::function< void(const ReadResponse &)>
ReadResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.
SnapshotSelectUICallback टाइपडिफ़
std::function< void(const SnapshotSelectUIResponse &)>
इस कॉलबैक के बारे में बताता है, जिसे ShowSelectUIOperation से SnapshotSelectUIResponse मिल सकता है.

सार्वजनिक फ़ंक्शन

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
एसिंक्रोनस तरीके से स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) दिखाता है. इससे प्लेयर किसी स्नैपशॉट को चुन सकता है या नए स्नैपशॉट का अनुरोध कर सकता है.
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

ShowSelectUIOperation कार्रवाई के लिए, Data और ResponseStatus.

सार्वजनिक प्रकार

CommitCallback

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

CommitResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.

यह कॉलबैक टाइप नीचे दिए गए Commit(*) और ResolveConflict(*) फ़ंक्शन के लिए दिया गया है.

FetchAllCallback

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

FetchAllResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.

यह कॉलबैक टाइप नीचे दिए गए FetchAll(*) फ़ंक्शन के लिए दिया गया है.

MaxSizeCallback

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

MaxSizeResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.

यह कॉलबैक टाइप GetMaxSize को दिया जाता है.

OpenCallback

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

OpenResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.

यह कॉलबैक टाइप नीचे दिए गए Open(*) फ़ंक्शन के लिए दिया गया है.

ReadCallback

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

ReadResponse पाने वाले कॉलबैक टाइप के बारे में बताता है.

यह कॉलबैक टाइप नीचे दिए गए Read(*) फ़ंक्शन के लिए दिया गया है.

SnapshotSelectUICallback

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

इस कॉलबैक के बारे में बताता है, जिसे ShowSelectUIOperation से SnapshotSelectUIResponse मिल सकता है.

सार्वजनिक फ़ंक्शन

निष्पादित करें

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 तय नहीं करने पर, यह फ़ंक्शन कॉल, आपकी तय की गई data_source वैल्यू के साथ FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout) को कॉल करने के बराबर हो जाएगा. साथ ही, 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 एमबी होना चाहिए. आने वाले समय में यह संख्या बढ़ सकती है.

स्नैपशॉट वाली हर इमेज के लिए डेटा का साइज़, कम से कम 800 केबी होने की गारंटी है. आने वाले समय में यह संख्या बढ़ सकती है.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

सिंक्रोनस की मदद से, हर स्नैपशॉट में ज़्यादा से ज़्यादा डेटा साइज़ और कवर इमेज का ज़्यादा से ज़्यादा साइज़ बाइट में मिलता है. इससे सीधे तौर पर MaxSizeResponse दिखता है.

हर स्नैपशॉट के लिए, डेटा का साइज़ कम से कम 3 एमबी होना चाहिए. आने वाले समय में यह संख्या बढ़ सकती है.

स्नैपशॉट वाली हर इमेज के लिए डेटा का साइज़, कम से कम 800 केबी होने की गारंटी है. आने वाले समय में यह संख्या बढ़ सकती है.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

सिंक्रोनस की मदद से, हर स्नैपशॉट में ज़्यादा से ज़्यादा डेटा साइज़ और कवर इमेज का ज़्यादा से ज़्यादा साइज़, बाइट में मिलता है. इससे सीधे तौर पर MaxSizeResponse दिखता है.

हर स्नैपशॉट के लिए, डेटा का साइज़ कम से कम 3 एमबी होना चाहिए. आने वाले समय में यह संख्या बढ़ सकती है.

स्नैपशॉट वाली हर इमेज के लिए डेटा का साइज़, कम से कम 800 केबी होने की गारंटी है. आने वाले समय में यह संख्या बढ़ सकती है.

timeout को मिलीसेकंड में तय करें.

खोलें

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

एसिंक्रोनस रूप से दिए गए नाम के साथ एक स्नैपशॉट खोलता है.

अगर दिया गया स्नैपशॉट पहले से मौजूद नहीं है, तो उसे बनाया जाएगा. कार्रवाई पूरी होने पर, दिए गए OpenCallback को कॉल करता है.

स्नैपशॉट के नाम बिना यूआरएल वाले रिज़र्व किए गए 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
)

दिए गए स्नैपशॉट के डेटा का इस्तेमाल करके, एसिंक्रोनस तरीके से विवाद को हल करता है.

इससे सर्वर पर मौजूद डेटा, दिए गए स्नैपशॉट से बदल जाएगा. ध्यान दें कि इस कार्रवाई के कारण कोई विवाद हो सकता है, जिस स्थिति में समाधान को दोहराया जाना चाहिए.

इस तरीके को ऐसे स्नैपशॉट के साथ कॉल करने से जो पहले से जनरेट किया जा चुका है या खुला है के ज़रिए नहीं खोला गया है, 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 का कुल साइज़, GetMaxSize से मिले maxDataSize से ज़्यादा नहीं हो सकता.

इस तरीके को ऐसे स्नैपशॉट के साथ कॉल करने से जो पहले से जनरेट किया जा चुका है या खुला है के ज़रिए नहीं खोला गया है, BaseStatus::ERROR_INTERNAL स्थिति नहीं होगी.

कार्रवाई पूरी होने पर, दिए गए OpenCallback को कॉल करता है.

ResolveConflictBlocking

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

दिए गए स्नैपशॉट के डेटा का इस्तेमाल करके किसी विरोधाभास को सिंक्रोनस रूप से हल करता है.

इससे सर्वर पर मौजूद डेटा, दिए गए स्नैपशॉट से बदल जाएगा. ध्यान दें कि इस कार्रवाई के कारण कोई विवाद हो सकता है, जिस स्थिति में समाधान को दोहराया जाना चाहिए.

इस तरीके को ऐसे स्नैपशॉट के साथ कॉल करने से जो पहले से जनरेट किया जा चुका है या खुला है के ज़रिए नहीं खोला गया है, 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 का कुल साइज़, GetMaxSize से मिले maxDataSize से ज़्यादा नहीं हो सकता.

इस तरीके को ऐसे स्नैपशॉट के साथ कॉल करने से जो पहले से जनरेट किया जा चुका है या खुला है के ज़रिए नहीं खोला गया है, BaseStatus::ERROR_INTERNAL स्थिति नहीं होगी.

ResolveConflictBlocking

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

दिए गए स्नैपशॉट के डेटा का इस्तेमाल करके किसी विरोधाभास को सिंक्रोनस रूप से हल करता है.

इससे सर्वर पर मौजूद डेटा, दिए गए स्नैपशॉट से बदल जाएगा. ध्यान दें कि इस कार्रवाई के कारण कोई विवाद हो सकता है, जिस स्थिति में समाधान को दोहराया जाना चाहिए.

इस तरीके को ऐसे स्नैपशॉट के साथ कॉल करने से जो पहले से जनरेट किया जा चुका है या खुला है के ज़रिए नहीं खोला गया है, 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 का कुल साइज़, GetMaxSize से मिले maxDataSize से ज़्यादा नहीं हो सकता.

इस तरीके को ऐसे स्नैपशॉट के साथ कॉल करने से जो पहले से जनरेट किया जा चुका है या खुला है के ज़रिए नहीं खोला गया है, BaseStatus::ERROR_INTERNAL स्थिति नहीं होगी.

timeout को मिलीसेकंड में तय करें.

ShowSelectUIOperation

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

एसिंक्रोनस तरीके से स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) दिखाता है. इससे प्लेयर किसी स्नैपशॉट को चुन सकता है या नए स्नैपशॉट का अनुरोध कर सकता है.

पूरा होने के बाद, चुने गए स्नैपशॉट या नए स्नैपशॉट के अनुरोध को 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 साल के डिफ़ॉल्ट टाइम आउट का इस्तेमाल करता है.