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 &)>
यह ऐसे कॉलबैक को तय करता है जिसे 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 तय नहीं करने पर, यह फ़ंक्शन कॉल 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 एमबी होना चाहिए. आने वाले समय में बढ़ सकता है.

हर स्नैपशॉट कवर इमेज का ज़्यादा से ज़्यादा डेटा साइज़, कम से कम 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 साल के डिफ़ॉल्ट टाइम आउट का इस्तेमाल करता है.