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