гпг:: Менеджер моментальных снимков

#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 .

Публичные типы

Зафиксировать обратный вызов

std::function< void(const CommitResponse &)> CommitCallback

Определяет тип обратного вызова, который получает CommitResponse .

Этот тип обратного вызова предоставляется функциям Commit(*) и ResolveConflict(*) ниже.

FetchAllОбратный вызов

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

Определяет тип обратного вызова, который получает FetchAllResponse .

Этот тип обратного вызова предоставляется функциям FetchAll(*) ниже.

MaxSizeОбратный вызов

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

Определяет тип обратного вызова, который получает MaxSizeResponse .

Этот тип обратного вызова предоставляется GetMaxSize .

Открытый обратный вызов

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

Определяет тип обратного вызова, который получает OpenResponse .

Этот тип обратного вызова предоставляется функциям Open(*) ниже.

Чтение обратного вызова

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 после завершения операции.

CommitБлокировка

CommitResponse CommitBlocking(
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

Синхронно фиксирует данные, предоставленные в моментальном снимке, и обновляет метаданные моментального снимка, используя предоставленный объект метаданных.

CommitБлокировка

CommitResponse CommitBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

Синхронно фиксирует данные, предоставленные в моментальном снимке, и обновляет метаданные моментального снимка, используя предоставленный объект метаданных.

Укажите timeout в миллисекундах.

Удалить

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

Удаляет указанный снимок.

Это приведет к удалению данных моментального снимка локально и на сервере.

Получить все

void FetchAll(
  FetchAllCallback callback
)

Асинхронно загружает все данные моментального снимка для проигрывателя, выполнившего вход в систему.

Вызывает предоставленный FetchAllCallback после завершения операции. Если не указать data_source этот вызов функции будет эквивалентен вызову FetchAll(DataSource data_source, FetchAllCallback callback) с data_source , указанным как CACHE_OR_NETWORK.

Получить все

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 после завершения операции.

Имена снимков должны содержать от 1 до 100 символов, не зарезервированных для URL-адреса (az, AZ, 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) .

Открытая блокировка

OpenResponse OpenBlocking(
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

Синхронно открывает снимок с заданным именем.

Указанный снимок будет создан, если он еще не существует.

См. Открыть для более подробной информации.

Открытая блокировка

OpenResponse OpenBlocking(
  Timeout timeout,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

Синхронно открывает снимок с заданным именем.

Указанный снимок будет создан, если он еще не существует.

Укажите timeout в миллисекундах.

См. Открыть для более подробной информации.

Открытая блокировка

OpenResponse OpenBlocking(
  DataSource data_source,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

Синхронно открывает снимок с заданным именем.

Устарело. data_source игнорируется. Вместо этого используйте OpenBlocking(file_name, conflict_policy) .

Открытая блокировка

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 после завершения операции.

Блокировка чтения

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

Синхронно считывает снимок с диска и копирует его в память.

Данные передаются обратно по значению для упрощения модификации. Каждый вызов этой функции приводит к полному чтению. Это означает, что обычно лучше прочитать снимок только один раз. Если не указать timeout вызов этой функции будет эквивалентен вызову ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata) с timeout , указанным как 10 лет.

Блокировка чтения

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

Синхронно считывает снимок с диска и копирует его в память.

Данные передаются обратно по значению для упрощения модификации. Каждый вызов этого метода выполняет полное чтение, поэтому обычно снимок читается только один раз. Укажите timeout в миллисекундах.

Разрешение конфликта

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

Асинхронно разрешает конфликт, используя данные из предоставленного моментального снимка.

Это заменит данные на сервере указанным снимком. Обратите внимание, что эта операция может сама привести к конфликту, и в этом случае разрешение следует повторить.

Вызов этого метода со снимком, который уже был зафиксирован или не был открыт с помощью Open , завершится ошибкой со статусом BaseStatus::ERROR_INTERNAL .

Вызывает предоставленный OpenCallback после завершения операции.

Разрешение конфликта

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 после завершения операции.

Разрешение конфликтаБлокировка

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

Синхронно разрешает конфликт, используя данные из предоставленного моментального снимка.

Это заменит данные на сервере указанным снимком. Обратите внимание, что эта операция может сама привести к конфликту, и в этом случае разрешение следует повторить.

Вызов этого метода со снимком, который уже был зафиксирован или не был открыт с помощью Open , завершится ошибкой со статусом BaseStatus::ERROR_INTERNAL .

Разрешение конфликтаБлокировка

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 .

Разрешение конфликтаБлокировка

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

Синхронно разрешает конфликт, используя данные из предоставленного моментального снимка.

Это заменит данные на сервере указанным снимком. Обратите внимание, что эта операция может сама привести к конфликту, и в этом случае разрешение следует повторить.

Вызов этого метода со снимком, который уже был зафиксирован или не был открыт с помощью Open , завершится ошибкой со статусом BaseStatus::ERROR_INTERNAL .

Укажите timeout в миллисекундах.

Разрешение конфликтаБлокировка

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 в миллисекундах.

ПоказатьSelectUIOperation

void ShowSelectUIOperation(
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title,
  SnapshotSelectUICallback callback
)

Асинхронно отображает пользовательский интерфейс снимка, позволяя игроку выбрать снимок или запросить новый снимок.

По завершении выбранный снимок или запрос на новый снимок возвращается через SnapshotSelectUICallback .

ПоказатьSelectUIOperationBlocking

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

Блокирующая версия ShowSelectUIOperation .

Позволяет вызывающему абоненту указать тайм-аут в мс. По истечении указанного времени функция возвращает ERROR_TIMEOUT .

ПоказатьSelectUIOperationBlocking

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

Перегрузка ShowSelectUIOperationBlocking , которая использует тайм-аут по умолчанию, равный 10 годам.