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 &)>
تحدِّد هذه السياسة معاودة الاتصال التي يمكنها تلقّي 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::SnapshotManager::CommitResponse

يحتفظ بالبيانات لنبذة محدَّثة، إلى جانب حالة الردّ.

gpg::SnapshotManager::FetchAllResponse

يحتفظ بجميع البيانات لكل اللقطات، إلى جانب حالة الردّ.

gpg::SnapshotManager::MaxSizeResponse

الاحتفاظ بالحد الأقصى لحجم بيانات اللقطة ولصورة غلاف اللقطة.

gpg::SnapshotManager::OpenResponse

تحتفظ بالبيانات للقطة معينة مطلوبة إلى جانب حالة الاستجابة.

gpg::SnapshotManager::ReadResponse

لقراءة حالة الاستجابة وبيانات اللقطة التي يتم عرضها من عملية قراءة اللقطة.

gpg::SnapshotManager::SnapshotSelectUIResponse

Data وResponseStatus لعملية ShowSelectUIOperation.

الأنواع العلنية

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 سنوات