gpg::SnapshotManager

#include <snapshot_manager.h>

מקבל ומגדיר נתונים שונים הקשורים לצילומי מסך.

סיכום

אם האפליקציה לא מפעילה תמונות מצב בזמן האימות (ניתן לעיין במאמר GameServices::Builder::EnableSnapshots), רוב השיטות ב-SnapshotManager ייכשלו.

סוגים ציבוריים

CommitCallback typedef
std::function< void(const CommitResponse &)>
מגדיר סוג קריאה חוזרת (callback) שמקבל CommitResponse.
FetchAllCallback typedef
std::function< void(const FetchAllResponse &)>
מגדיר סוג קריאה חוזרת (callback) שמקבל FetchAllResponse.
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
מגדיר סוג קריאה חוזרת (callback) שמקבל MaxSizeResponse.
OpenCallback typedef
std::function< void(const OpenResponse &)>
מגדיר סוג קריאה חוזרת (callback) שמקבל OpenResponse.
ReadCallback typedef
std::function< void(const ReadResponse &)>
מגדיר סוג קריאה חוזרת (callback) שמקבל ReadResponse.
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
מגדירה קריאה חוזרת (callback) שיכולה לקבל 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
קורא קובץ snapshot מהדיסק באופן אסינכרוני ומעתיק אותו לזיכרון.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
קורא באופן סינכרוני קובץ snapshot מהדיסק, ומעתיק אותו לזיכרון.
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
קורא באופן סינכרוני קובץ snapshot מהדיסק ומעתיק אותו לזיכרון.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
פותר התנגשות באופן אסינכרוני באמצעות נתונים מקובץ ה-snapshot שסופק.
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

מגדיר סוג קריאה חוזרת (callback) שמקבל CommitResponse.

סוג הקריאה החוזרת (callback) הזה מסופק לפונקציות Commit(*) ו-ResolveConflict(*) שמפורטות בהמשך.

FetchAllCallback

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

מגדיר סוג קריאה חוזרת (callback) שמקבל FetchAllResponse.

סוג הקריאה החוזרת (callback) הזה מסופק לפונקציות FetchAll(*) שמפורטות בהמשך.

MaxSizeCallback

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

מגדיר סוג קריאה חוזרת (callback) שמקבל MaxSizeResponse.

הסוג הזה של התקשרות חזרה ניתן ל-GetMaxSize.

OpenCallback

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

מגדיר סוג קריאה חוזרת (callback) שמקבל OpenResponse.

סוג הקריאה החוזרת (callback) הזה מסופק לפונקציות Open(*) שמפורטות בהמשך.

ReadCallback

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

מגדיר סוג קריאה חוזרת (callback) שמקבל ReadResponse.

סוג הקריאה החוזרת (callback) הזה מסופק לפונקציות Read(*) שמפורטות בהמשך.

SnapshotSelectUICallback

std::function< void(const SnapshotSelectUIResponse &)> SnapshotSelectUICallback

מגדירה קריאה חוזרת (callback) שיכולה לקבל 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 שסופק בסיום הפעולה.

גודל הנתונים המקסימלי לכל תמונת מצב יהיה לפחות 3MB. עשוי לגדול בעתיד.

גודל הנתונים המקסימלי לכל תמונת שער הוא לפחות 800KB. עשוי לגדול בעתיד.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

מקבל באופן סינכרוני את גודל הנתונים המקסימלי ואת גודל תמונת השער המקסימלי לכל תמונת מצב בבייטים, והחזרת ישירות את MaxSizeResponse.

גודל הנתונים המקסימלי לכל תמונת מצב יהיה לפחות 3MB. עשוי לגדול בעתיד.

גודל הנתונים המקסימלי לכל תמונת שער הוא לפחות 800KB. עשוי לגדול בעתיד.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

מקבל באופן סינכרוני את גודל הנתונים המקסימלי ואת גודל תמונת השער המקסימלי לכל תמונת מצב בבייטים, והחזרת ישירות את MaxSizeResponse.

גודל הנתונים המקסימלי לכל תמונת מצב יהיה לפחות 3MB. עשוי לגדול בעתיד.

גודל הנתונים המקסימלי לכל תמונת שער הוא לפחות 800KB. עשוי לגדול בעתיד.

יש לציין timeout באלפיות שנייה.

פתוח

void Open(
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy,
  OpenCallback callback
)

פתיחה אסינכרונית של תמונת מצב עם השם הנתון.

תמונת המצב שצוינה תיווצר אם היא עדיין לא קיימת. קריאה ל-OpenCallback שסופק בסיום הפעולה.

השמות של קובצי ה-snapshot חייבים לכלול בין 1 ל-100 תווים שלא שמורים בכתובות URL (a-z, A-Z, 0-9 או הסמלים '-', '.', '_' או '~').

התנגשויות עשויות להתרחש אם מכשיר אחר יוצר תמונת מצב בין טעינה לבין ביצוע תמונת מצב במכשיר הנוכחי. עליך לפתור את הסתירות האלה. לפרטים נוספים על התנגשויות, אפשר לעיין בקטע OpenResponse שלמעלה.

הערך conflict_policy יכול להיות אחד מהערכים הבאים:

SnapshotConflictPolicy::MANUAL – במקרה של סתירה, המצב של התגובה יהיה OpenResponse::VALID_WITH_CONFLICT. צריך לפתור את ההתנגשות באמצעות SnapshotManager::ResolveConflict. ייתכן שאפשר לראות כמה ספקויות בשורה, לכן חשוב לבדוק בכל פעם שמתקשרים ל-Open. זוהי המדיניות היחידה שבה תופיע ההתנגשות. שאר המערכות שלנו יטפלו ברזולוציה הרצויה. המדיניות הזו מבטיחה ששינויים של המשתמשים במצב של המשחק השמור לא יאבדו אף פעם.

SnapshotConflictPolicy::LONGEST_PLAYTIME – במקרה של התנגשות, ייעשה שימוש בקובץ ה-snapshot עם ערך זמן ההפעלה הגדול ביותר. המדיניות הזו מתאימה אם משך זמן המשחק הוא ממוצע סביר למשחק השמירה 'הטוב ביותר'. לתשומת ליבך: כדי שלמדיניות הזו תהיה משמעות, צריך להשתמש ב-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
)

קורא קובץ snapshot מהדיסק באופן אסינכרוני ומעתיק אותו לזיכרון.

כדי לשנות את הנתונים בקלות רבה יותר, הנתונים מוחזרים לפי ערך. כל קריאה לפונקציה הזו מובילה לקריאה מלאה. פירוש הדבר הוא שבדרך כלל מומלץ לקרוא תמונת מצב פעם אחת בלבד. קריאה ל-ReadCallback שסופק בסיום הפעולה.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

קורא באופן סינכרוני קובץ snapshot מהדיסק, ומעתיק אותו לזיכרון.

כדי לשנות את הנתונים בקלות רבה יותר, הנתונים מוחזרים לפי ערך. כל קריאה לפונקציה הזו מובילה לקריאה מלאה. פירוש הדבר הוא שבדרך כלל מומלץ לקרוא תמונת מצב פעם אחת בלבד. אם לא מציינים את timeout, הפונקציה הזו שוות ערך לקריאה לפונקציה ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata), כאשר timeout מוגדר ל-10 שנים.

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

קורא באופן סינכרוני קובץ snapshot מהדיסק ומעתיק אותו לזיכרון.

כדי לשנות את הנתונים בקלות רבה יותר, הנתונים מוחזרים לפי ערך. כל קריאה לפעולה הזו מבצעת קריאה מלאה, כך שלרוב קריאה של תמונת מצב תתבצע רק פעם אחת. יש לציין timeout באלפיות שנייה.

ResolveConflict

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

פותר התנגשות באופן אסינכרוני באמצעות נתונים מקובץ ה-snapshot שסופק.

פעולה זו תחליף את הנתונים בשרת בתמונת המצב שצוינה. הערה: הפעולה הזו יכולה לגרום להתנגשות עצמה, ובמקרה כזה צריך לחזור על הפתרון.

הפעלת השיטה הזו באמצעות תמונת מצב שכבר בוצעה או שלא נפתחה דרך Open תיכשל בסטטוס 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.

הפעלת השיטה הזו באמצעות תמונת מצב שכבר בוצעה או שלא נפתחה דרך Open תיכשל בסטטוס BaseStatus::ERROR_INTERNAL.

קריאה ל-OpenCallback שסופק בסיום הפעולה.

ResolveConflictBlocking

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

פותרת התנגשות באופן סינכרוני באמצעות נתונים מתמונת המצב שסופקה.

פעולה זו תחליף את הנתונים בשרת בתמונת המצב שצוינה. הערה: הפעולה הזו יכולה לגרום להתנגשות עצמה, ובמקרה כזה צריך לחזור על הפתרון.

הפעלת השיטה הזו באמצעות תמונת מצב שכבר בוצעה או שלא נפתחה דרך Open תיכשל בסטטוס 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.

הפעלת השיטה הזו באמצעות תמונת מצב שכבר בוצעה או שלא נפתחה דרך Open תיכשל בסטטוס BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

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

פותרת התנגשות באופן סינכרוני באמצעות נתונים מתמונת המצב שסופקה.

פעולה זו תחליף את הנתונים בשרת בתמונת המצב שצוינה. הערה: הפעולה הזו יכולה לגרום להתנגשות עצמה, ובמקרה כזה צריך לחזור על הפתרון.

הפעלת השיטה הזו באמצעות תמונת מצב שכבר בוצעה או שלא נפתחה דרך Open תיכשל בסטטוס 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.

הפעלת השיטה הזו באמצעות תמונת מצב שכבר בוצעה או שלא נפתחה דרך Open תיכשל בסטטוס 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.

מאפשרת למתקשר לציין זמן קצוב לתפוגה ב-ms. לאחר שיחלוף הזמן שצוין, הפונקציה מחזירה את ERROR_TIMEOUT.

ShowSelectUIOperationBlocking

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

עומס יתר של ShowSelectUIOperationBlocking, כאשר הזמן הקצוב לתפוגה שמוגדר כברירת מחדל הוא 10 שנים.