gpg:: SnapshotManager
#include <snapshot_manager.h>
الحصول على العديد من البيانات المتعلقة باللقطات وتعيينها.
ملخّص
إذا لم يفعّل التطبيق اللقطات في وقت المصادقة (راجِع GameServices::Builder::EnableSnapshots)، ستتعذّر معظم الطرق على SnapshotManager
.
الأنواع العلنية |
|
---|---|
CommitCallback
|
typedefstd::function< void(const CommitResponse &)>
تحدِّد هذه السياسة نوع معاودة الاتصال الذي يتلقّى CommitResponse . |
FetchAllCallback
|
typedefstd::function< void(const FetchAllResponse &)>
تحدِّد هذه السياسة نوع معاودة الاتصال الذي يتلقّى FetchAllResponse . |
MaxSizeCallback
|
typedefstd::function< void(const MaxSizeResponse &)>
تحدِّد هذه السياسة نوع معاودة الاتصال الذي يتلقّى MaxSizeResponse . |
OpenCallback
|
typedefstd::function< void(const OpenResponse &)>
تحدِّد هذه السياسة نوع معاودة الاتصال الذي يتلقّى OpenResponse . |
ReadCallback
|
typedefstd::function< void(const ReadResponse &)>
تحدِّد هذه السياسة نوع معاودة الاتصال الذي يتلقّى ReadResponse . |
SnapshotSelectUICallback
|
typedefstd::function< void(const SnapshotSelectUIResponse &)>
تحدِّد هذه السياسة معاودة الاتصال التي يمكنها تلقّي SnapshotSelectUIResponse من "ShowSelectUIOperation ". |
الدوال العامة |
|
---|---|
Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
|
void
يعمل هذا العنصر على تنفيذ البيانات المقدَّمة في اللقطة بشكل غير متزامن، كما يعدِّل البيانات الوصفية لللقطة باستخدام كائن البيانات الوصفية المقدّم.
|
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
|
يعمل هذا الإجراء على تضمين البيانات المقدَّمة في اللقطة بشكل متزامن، كما يعدّل البيانات الوصفية لللقطة باستخدام كائن البيانات الوصفية المقدّم.
|
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
|
يعمل هذا التنسيق بشكل متزامن على حفظ البيانات المقدَّمة في اللقطة، كما يعدِّل البيانات الوصفية لللقطة باستخدام كائن البيانات الوصفية المقدّم.
|
Delete(const SnapshotMetadata & snapshot_metadata)
|
void
يؤدّي هذا الخيار إلى حذف اللقطة المحدّدة.
|
FetchAll(FetchAllCallback callback)
|
void
تحميل كل بيانات اللقطة للمشغّل الذي سجّلت الدخول إليه حاليًا بشكل غير متزامن
|
FetchAll(DataSource data_source, FetchAllCallback callback)
|
void
تحميل كل بيانات اللقطة للمشغّل الذي سجّلت الدخول إليه حاليًا بشكل غير متزامن
|
FetchAllBlocking()
|
ويتم تحميل كل بيانات اللقطات بشكل متزامن للمشغّل الذي سجّلت الدخول إليه حاليًا، ما يؤدي إلى عرض
FetchAllResponse مباشرةً. |
FetchAllBlocking(DataSource data_source)
|
ويتم تحميل كل بيانات اللقطات بشكل متزامن للمشغّل الذي سجّلت الدخول إليه حاليًا، ما يؤدي إلى عرض
FetchAllResponse مباشرةً. |
FetchAllBlocking(Timeout timeout)
|
ويتم تحميل كل بيانات اللقطات بشكل متزامن للمشغّل الذي سجّلت الدخول إليه حاليًا، ما يؤدي إلى عرض
FetchAllResponse مباشرةً. |
FetchAllBlocking(DataSource data_source, Timeout timeout)
|
ويتم تحميل كل بيانات اللقطات بشكل متزامن للمشغّل الذي سجّلت الدخول إليه حاليًا، ما يؤدي إلى عرض
FetchAllResponse مباشرةً. |
GetMaxSize(MaxSizeCallback callback) const
|
void
ويتم الحصول بشكل غير متزامن على الحد الأقصى لحجم البيانات والحد الأقصى لحجم صورة الغلاف لكل لقطة بالبايت.
|
GetMaxSizeBlocking() const
|
ويتم في الوقت نفسه الحصول على الحدّ الأقصى لحجم البيانات والحدّ الأقصى لحجم صورة الغلاف لكل لقطة بالبايت، ما يؤدي مباشرةً إلى عرض
MaxSizeResponse . |
GetMaxSizeBlocking(Timeout timeout) const
|
ويتم في الوقت نفسه الحصول على الحدّ الأقصى لحجم البيانات والحدّ الأقصى لحجم صورة الغلاف لكل لقطة بالبايت، ما يؤدي مباشرةً إلى عرض
MaxSizeResponse . |
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
|
void
يفتح لقطة بالاسم المقدم بشكل غير متزامن.
|
Open(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
|
void
data_source . يمكنك استخدام Open(file_name, conflict_policy, callback) كبديل. يفتح لقطة بالاسم المقدم بشكل غير متزامن. |
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
|
يفتح لقطة بالاسم المعني بشكل متزامن.
|
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
|
يفتح لقطة بالاسم المعني بشكل متزامن.
|
OpenBlocking(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
|
تمت إزالة هذا العمود.
تم تجاهل data_source . يمكنك استخدام OpenBlocking(file_name, conflict_policy) كبديل. يفتح لقطة بالاسم المعني بشكل متزامن. |
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
|
تمت إزالة هذا العمود.
تم تجاهل data_source . يمكنك استخدام OpenBlocking(timeout, file_name, conflict_policy) كبديل. يفتح لقطة بالاسم المعني بشكل متزامن. |
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
|
void
يقرأ لقطة من القرص بشكل غير متزامن وينسخها في الذاكرة.
|
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
|
يقرأ لقطة من القرص بشكل متزامن وينسخها إلى الذاكرة.
|
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
|
قراءة لقطة من القرص بشكل متزامن ونسخها إلى الذاكرة.
|
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
|
void
يعمل هذا الوضع على حلّ تعارض باستخدام البيانات من اللقطة المقدّمة بشكل غير متزامن.
|
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents, OpenCallback callback)
|
void
يعمل هذا الوضع على حلّ تعارض باستخدام البيانات المتوفّرة بشكل غير متزامن.
|
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
|
حلّ تعارض بشكل متزامن باستخدام البيانات من اللقطة المقدّمة
|
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
|
يؤدي ذلك إلى حل تعارض باستخدام البيانات المتوفّرة بشكل متزامن.
|
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
|
حلّ تعارض بشكل متزامن باستخدام البيانات من اللقطة المقدّمة
|
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
|
يؤدي ذلك إلى حل تعارض باستخدام البيانات المتوفّرة بشكل متزامن.
|
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
|
void
يعرض هذا العمود واجهة المستخدم الخاصة باللقطة بشكل غير متزامن، ما يتيح للمشغّل اختيار لقطة أو طلب لقطة جديدة.
|
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 سنوات