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 &)>
تحدّد هذه السياسة معاودة اتصال يمكن أن تتلقّى 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
يعرض هذا الخيار واجهة المستخدم الخاصة باللقطة بشكل غير متزامن، ما يتيح للمشغّل اختيار لقطة أو طلب لقطة جديدة.
|
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 ميغابايت. وقد يزداد في المستقبل.
الحد الأقصى لحجم البيانات لكل صورة غلاف لقطة مضمونة ألا يقل عن 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
المقدَّم عند اكتمال العملية.
يجب أن تتألف أسماء اللقطات من حرف واحد إلى 100 حرف غير محجوز لعنوان URL (من 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
قد لا يتجاوز maxDataSize
الذي توفّره GetMaxSize.
سيتعذر استدعاء هذه الطريقة بلقطة تم الالتزام بها من قبل أو لم يتم فتحها من خلال فتح مع الحالة 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
قد لا يتجاوز maxDataSize
الذي توفّره GetMaxSize.
سيتعذر استدعاء هذه الطريقة بلقطة تم الالتزام بها من قبل أو لم يتم فتحها من خلال فتح مع الحالة 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
قد لا يتجاوز maxDataSize
الذي توفّره GetMaxSize.
سيتعذر استدعاء هذه الطريقة بلقطة تم الالتزام بها من قبل أو لم يتم فتحها من خلال فتح مع الحالة 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 سنوات.