gpg:: স্ন্যাপশট ম্যানেজার

#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
অ্যাসিঙ্ক্রোনাসভাবে স্ন্যাপশট 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

ShowSelectUIOperation অপারেশনের জন্য Data এবং ResponseStatus

পাবলিক প্রকার

কমিট কলব্যাক

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

একটি কলব্যাক প্রকার সংজ্ঞায়িত করে যা একটি CommitResponse গ্রহণ করে।

এই কলব্যাক টাইপটি নিচের Commit(*) এবং ResolveConflict(*) ফাংশনে প্রদান করা হয়েছে।

অলকলব্যাক আনুন

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

একটি কলব্যাক প্রকার সংজ্ঞায়িত করে যা একটি FetchAllResponse গ্রহণ করে।

এই কলব্যাকের ধরনটি নীচের FetchAll(*) ফাংশনে প্রদান করা হয়েছে।

MaxSizeCallback

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

একটি কলব্যাক প্রকার সংজ্ঞায়িত করে যা একটি MaxSizeResponse পায়।

এই কলব্যাক প্রকারটি GetMaxSize- এ প্রদান করা হয়েছে।

কলব্যাক খুলুন

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

একটি কলব্যাক প্রকার সংজ্ঞায়িত করে যা একটি OpenResponse গ্রহণ করে।

এই কলব্যাক টাইপটি নিচের Open(*) ফাংশনে প্রদান করা হয়েছে।

কলব্যাক পড়ুন

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

একটি কলব্যাক প্রকার সংজ্ঞায়িত করে যা একটি ReadResponse গ্রহণ করে।

এই কলব্যাক টাইপটি নীচের Read(*) ফাংশনে প্রদান করা হয়েছে।

স্ন্যাপশট সিলেক্টইউআইকলব্যাক

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 কল করে।

কমিটব্লকিং

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

স্ন্যাপশটে প্রদত্ত ডেটা সিঙ্ক্রোনাস করে, এবং প্রদত্ত মেটাডেটা অবজেক্ট ব্যবহার করে স্ন্যাপশটের মেটাডেটা আপডেট করে।

কমিটব্লকিং

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

স্ন্যাপশটে প্রদত্ত ডেটা সিঙ্ক্রোনাস করে এবং প্রদত্ত মেটাডেটা অবজেক্ট ব্যবহার করে স্ন্যাপশটের মেটাডেটা আপডেট করে।

মিলিসেকেন্ডে timeout নির্দিষ্ট করুন।

মুছে ফেলা

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

নির্দিষ্ট স্ন্যাপশট মুছে দেয়।

এটি স্থানীয়ভাবে এবং সার্ভারে স্ন্যাপশটের ডেটা মুছে ফেলবে।

সমস্ত আনুন

void FetchAll(
  FetchAllCallback callback
)

বর্তমানে সাইন-ইন করা প্লেয়ারের জন্য অ্যাসিঙ্ক্রোনাসভাবে সমস্ত স্ন্যাপশট ডেটা লোড করে।

অপারেশন শেষ হওয়ার পরে প্রদত্ত FetchAllCallback কল করে। data_source নির্দিষ্ট না করা এই ফাংশনটিকে CACHE_OR_NETWORK. হিসাবে নির্দিষ্ট data_source সহ FetchAll(DataSource data_source, FetchAllCallback callback) কল করার সমতুল্য করে তোলে।

সমস্ত আনুন

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

বর্তমানে সাইন-ইন করা প্লেয়ারের জন্য অ্যাসিঙ্ক্রোনাসভাবে সমস্ত স্ন্যাপশট ডেটা লোড করে।

অপারেশন শেষ হওয়ার পরে প্রদত্ত FetchAllCallback কল করে। CACHE_OR_NETWORK বা NETWORK_ONLY হিসাবে data_source নির্দিষ্ট করুন।

ফেচঅলব্লকিং

FetchAllResponse FetchAllBlocking()

বর্তমানে সাইন-ইন করা প্লেয়ারের জন্য সিঙ্ক্রোনাসভাবে সমস্ত স্ন্যাপশট ডেটা লোড করে, সরাসরি FetchAllResponse ফেরত দেয়।

data_source বা timeout কোনটিই নির্দিষ্ট করা এই ফাংশনটিকে কল করার সমতুল্য করে তোলে FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) , সাথে data_source CACHE_OR_NETWORK হিসাবে নির্দিষ্ট করা হয়েছে এবং 10 বছর হিসাবে নির্দিষ্ট করা timeout

ফেচঅলব্লকিং

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

বর্তমানে সাইন-ইন করা প্লেয়ারের জন্য সিঙ্ক্রোনাসভাবে সমস্ত স্ন্যাপশট ডেটা লোড করে, সরাসরি FetchAllResponse ফেরত দেয়।

CACHE_OR_NETWORK বা NETWORK_ONLY হিসাবে data_source নির্দিষ্ট করুন। timeout নির্দিষ্ট না করা এই ফাংশন কলটিকে FetchAllBlocking FetchAllResponse (DataSource data_source, Timeout timeout) কল করার সমতুল্য করে, আপনার নির্দিষ্ট data_source মান এবং 10 বছর হিসাবে নির্দিষ্ট করা timeout

ফেচঅলব্লকিং

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

বর্তমানে সাইন-ইন করা প্লেয়ারের জন্য সিঙ্ক্রোনাসভাবে সমস্ত স্ন্যাপশট ডেটা লোড করে, সরাসরি FetchAllResponse ফেরত দেয়।

মিলিসেকেন্ডে timeout নির্দিষ্ট করুন। data_source নির্দিষ্ট না করা এই ফাংশনটিকে কল করার সমতুল্য করে তোলে FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout) , CACHE_OR_NETWORK হিসাবে নির্দিষ্ট data_source সহ, এবং আপনার নির্দিষ্ট মান ধারণকারী timeout

ফেচঅলব্লকিং

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

বর্তমানে সাইন-ইন করা প্লেয়ারের জন্য সিঙ্ক্রোনাসভাবে সমস্ত স্ন্যাপশট ডেটা লোড করে, সরাসরি FetchAllResponse ফেরত দেয়।

CACHE_OR_NETWORK বা NETWORK_ONLY হিসাবে data_source নির্দিষ্ট করুন। মিলিসেকেন্ডে 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 কল করে।

স্ন্যাপশটের নামগুলি অবশ্যই 1 থেকে 100 নন-ইউআরএল-সংরক্ষিত অক্ষরের মধ্যে হতে হবে (az, AZ, 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) ব্যবহার করুন।

ওপেনব্লকিং

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

সিঙ্ক্রোনাসভাবে প্রদত্ত নামের সাথে একটি স্ন্যাপশট খোলে।

নির্দিষ্ট স্ন্যাপশট তৈরি করা হবে যদি এটি ইতিমধ্যে বিদ্যমান না থাকে।

আরও বিস্তারিত জানার জন্য খুলুন দেখুন।

ওপেনব্লকিং

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

সিঙ্ক্রোনাসভাবে প্রদত্ত নামের সাথে একটি স্ন্যাপশট খোলে।

নির্দিষ্ট স্ন্যাপশট তৈরি করা হবে যদি এটি ইতিমধ্যে বিদ্যমান না থাকে।

মিলিসেকেন্ডে timeout নির্দিষ্ট করুন।

আরও বিস্তারিত জানার জন্য খুলুন দেখুন।

ওপেনব্লকিং

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

সিঙ্ক্রোনাসভাবে প্রদত্ত নামের সাথে একটি স্ন্যাপশট খোলে।

অবচয়। data_source উপেক্ষা করা হয়। পরিবর্তে OpenBlocking(file_name, conflict_policy) ব্যবহার করুন।

ওপেনব্লকিং

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 কল করে।

রিডব্লকিং

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

সিঙ্ক্রোনাসভাবে ডিস্ক থেকে একটি স্ন্যাপশট পড়ে, এবং এটি মেমরিতে অনুলিপি করে।

তথ্য সহজ পরিবর্তনের জন্য মান দ্বারা ফিরে পাস করা হয়. এই ফাংশনের প্রতিটি কল একটি সম্পূর্ণ রিড ফলাফল. এর মানে হল যে এটি সাধারণত শুধুমাত্র একবার একটি স্ন্যাপশট পড়া ভাল। timeout নির্দিষ্ট না করা এই ফাংশন কলটিকে ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata) কল করার সমতুল্য করে তোলে, 10 বছর হিসাবে নির্দিষ্ট timeout সাথে।

রিডব্লকিং

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

সিঙ্ক্রোনাসভাবে ডিস্কের একটি স্ন্যাপশট পড়ে এবং এটি মেমরিতে অনুলিপি করে।

তথ্য সহজ পরিবর্তনের জন্য মান দ্বারা ফিরে পাস করা হয়. এটিতে প্রতিটি কল একটি সম্পূর্ণ পঠিত হয় তাই সাধারণত শুধুমাত্র একবার একটি স্ন্যাপশট পড়ুন। মিলিসেকেন্ডে timeout নির্দিষ্ট করুন।

দ্বন্দ্ব সমাধান করুন

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

অ্যাসিঙ্ক্রোনাসভাবে প্রদত্ত স্ন্যাপশট থেকে ডেটা ব্যবহার করে একটি দ্বন্দ্ব সমাধান করে।

এটি নির্দিষ্ট স্ন্যাপশট দিয়ে সার্ভারের ডেটা প্রতিস্থাপন করবে। মনে রাখবেন যে এই অপারেশনের ফলে নিজেই একটি দ্বন্দ্ব তৈরি করা সম্ভব, এই ক্ষেত্রে সমাধান পুনরাবৃত্তি করা উচিত।

একটি স্ন্যাপশট সহ এই পদ্ধতিতে কল করা যা ইতিমধ্যেই প্রতিশ্রুতিবদ্ধ হয়েছে বা যা Open এর মাধ্যমে খোলা হয়নি তা BaseStatus::ERROR_INTERNAL অবস্থার সাথে ব্যর্থ হবে৷

অপারেশন সমাপ্তির পরে প্রদত্ত OpenCallback কল করে।

দ্বন্দ্ব সমাধান করুন

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 বেশি নাও হতে পারে।

একটি স্ন্যাপশট সহ এই পদ্ধতিতে কল করা যা ইতিমধ্যেই প্রতিশ্রুতিবদ্ধ হয়েছে বা যা Open এর মাধ্যমে খোলা হয়নি তা BaseStatus::ERROR_INTERNAL অবস্থার সাথে ব্যর্থ হবে৷

অপারেশন সমাপ্তির পরে প্রদত্ত OpenCallback কল করে।

মীমাংসা দ্বন্দ্ব ব্লকিং

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

প্রদত্ত স্ন্যাপশট থেকে ডেটা ব্যবহার করে সিঙ্ক্রোনাসভাবে একটি দ্বন্দ্ব সমাধান করে।

এটি নির্দিষ্ট স্ন্যাপশট দিয়ে সার্ভারের ডেটা প্রতিস্থাপন করবে। মনে রাখবেন যে এই অপারেশনের ফলে নিজেই একটি দ্বন্দ্ব তৈরি করা সম্ভব, এই ক্ষেত্রে সমাধান পুনরাবৃত্তি করা উচিত।

একটি স্ন্যাপশট সহ এই পদ্ধতিতে কল করা যা ইতিমধ্যেই প্রতিশ্রুতিবদ্ধ হয়েছে বা যা Open এর মাধ্যমে খোলা হয়নি তা BaseStatus::ERROR_INTERNAL অবস্থার সাথে ব্যর্থ হবে৷

মীমাংসা দ্বন্দ্ব ব্লকিং

OpenResponse ResolveConflictBlocking(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

সিঙ্ক্রোনাসভাবে প্রদত্ত ডেটা ব্যবহার করে একটি দ্বন্দ্ব সমাধান করে।

এটি নির্দিষ্ট মেটাডেটা পরিবর্তন এবং contents দিয়ে সার্ভারের ডেটা প্রতিস্থাপন করবে। মনে রাখবেন যে এই অপারেশনের ফলে নিজেই একটি দ্বন্দ্ব তৈরি করা সম্ভব, এই ক্ষেত্রে সমাধান পুনরাবৃত্তি করা উচিত।

মেটাডেটা পরিবর্তনে অন্তর্ভুক্ত নয় এমন মানগুলি বর্তমানে সার্ভারে থাকা সংস্করণে সমাধান করা হবে৷

মনে রাখবেন contents মোট আকার GetMaxSize দ্বারা প্রদত্ত maxDataSize বেশি নাও হতে পারে।

একটি স্ন্যাপশট সহ এই পদ্ধতিতে কল করা যা ইতিমধ্যেই প্রতিশ্রুতিবদ্ধ হয়েছে বা যা Open এর মাধ্যমে খোলা হয়নি তা BaseStatus::ERROR_INTERNAL অবস্থার সাথে ব্যর্থ হবে৷

মীমাংসা দ্বন্দ্ব ব্লকিং

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

প্রদত্ত স্ন্যাপশট থেকে ডেটা ব্যবহার করে সিঙ্ক্রোনাসভাবে একটি দ্বন্দ্ব সমাধান করে।

এটি নির্দিষ্ট স্ন্যাপশট দিয়ে সার্ভারের ডেটা প্রতিস্থাপন করবে। মনে রাখবেন যে এই অপারেশনের ফলে নিজেই একটি দ্বন্দ্ব তৈরি করা সম্ভব, এই ক্ষেত্রে সমাধান পুনরাবৃত্তি করা উচিত।

একটি স্ন্যাপশট সহ এই পদ্ধতিতে কল করা যা ইতিমধ্যেই প্রতিশ্রুতিবদ্ধ হয়েছে বা যা Open এর মাধ্যমে খোলা হয়নি তা BaseStatus::ERROR_INTERNAL অবস্থার সাথে ব্যর্থ হবে৷

মিলিসেকেন্ডে timeout নির্দিষ্ট করুন।

মীমাংসা দ্বন্দ্ব ব্লকিং

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 বেশি নাও হতে পারে।

একটি স্ন্যাপশট সহ এই পদ্ধতিতে কল করা যা ইতিমধ্যেই প্রতিশ্রুতিবদ্ধ হয়েছে বা যা 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 এর ব্লকিং সংস্করণ।

কলারকে ms-এ একটি টাইমআউট নির্দিষ্ট করার অনুমতি দেয়৷ নির্দিষ্ট সময় অতিবাহিত হওয়ার পরে, ফাংশনটি ERROR_TIMEOUT প্রদান করে।

ShowSelectUIOperationBlocking

SnapshotSelectUIResponse ShowSelectUIOperationBlocking(
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title
)

ShowSelectUIOperationBlocking এর ওভারলোড, যা 10 বছরের একটি ডিফল্ট টাইমআউট ব্যবহার করে।