gpg::SnapshotManager

#include <snapshot_manager.h>

Recebe e define vários dados relacionados ao snapshot.

Resumo

Se o app não ativar snapshots no momento da autenticação (consulte GameServices::Builder::EnableSnapshots), a maioria dos métodos em SnapshotManager falhará.

Tipos públicos

CommitCallback typedef
std::function< void(const CommitResponse &)>
Define um tipo de callback que recebe um CommitResponse.
FetchAllCallback typedef
std::function< void(const FetchAllResponse &)>
Define um tipo de callback que recebe um FetchAllResponse.
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
Define um tipo de callback que recebe um MaxSizeResponse.
OpenCallback typedef
std::function< void(const OpenResponse &)>
Define um tipo de callback que recebe um OpenResponse.
ReadCallback typedef
std::function< void(const ReadResponse &)>
Define um tipo de callback que recebe um ReadResponse.
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
Define um callback que pode receber um SnapshotSelectUIResponse do ShowSelectUIOperation.

Funções públicas

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
Confirma de maneira assíncrona os dados fornecidos para o snapshot e atualiza os metadados do snapshot usando o objeto de metadados fornecido.
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Confirma de forma síncrona os dados fornecidos no snapshot e atualiza os metadados do snapshot usando o objeto de metadados fornecido.
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Confirma de forma síncrona os dados fornecidos para o snapshot e atualiza os metadados do snapshot usando o objeto de metadados fornecido.
Delete(const SnapshotMetadata & snapshot_metadata)
void
Exclui o snapshot especificado.
FetchAll(FetchAllCallback callback)
void
Carrega de maneira assíncrona todos os dados do snapshot para o player conectado no momento.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
Carrega de maneira assíncrona todos os dados do snapshot para o player conectado no momento.
FetchAllBlocking()
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.
FetchAllBlocking(DataSource data_source)
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.
FetchAllBlocking(Timeout timeout)
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.
FetchAllBlocking(DataSource data_source, Timeout timeout)
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.
GetMaxSize(MaxSizeCallback callback) const
void
Recebe de maneira assíncrona o tamanho máximo de dados e da imagem de capa por snapshot em bytes.
GetMaxSizeBlocking() const
Recebe de maneira síncrona o tamanho máximo dos dados e da imagem da capa por snapshot em bytes, retornando diretamente MaxSizeResponse.
GetMaxSizeBlocking(Timeout timeout) const
Recebe de maneira síncrona o tamanho máximo dos dados e da imagem da capa por snapshot em bytes, retornando diretamente MaxSizeResponse.
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Abre de maneira assíncrona um snapshot com o nome fornecido.
Open(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Descontinuado. data_source é ignorado. Em vez dela, use Open(file_name, conflict_policy, callback).
Abre de maneira assíncrona um snapshot com o nome fornecido.
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Abre de forma síncrona um snapshot com o nome fornecido.
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Abre de forma síncrona um snapshot com o nome fornecido.
OpenBlocking(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy) Descontinuado. data_source é ignorado. Em vez dela, use OpenBlocking(file_name, conflict_policy).
Abre de forma síncrona um snapshot com o nome fornecido.
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy) Descontinuado. data_source é ignorado. Em vez dela, use OpenBlocking(timeout, file_name, conflict_policy).
Abre de forma síncrona um snapshot com o nome fornecido.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
Lê de maneira assíncrona um snapshot do disco e o copia para a memória.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
Lê de maneira síncrona um snapshot do disco e o copia para a memória.
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
Lê de maneira síncrona um snapshot do disco e o copia para a memória.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
Resolve de maneira assíncrona um conflito usando os dados do snapshot fornecido.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents, OpenCallback callback)
void
Resolve um conflito de maneira assíncrona usando os dados fornecidos.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Resolve de maneira síncrona um conflito usando os dados do snapshot fornecido.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Resolve de forma síncrona um conflito usando os dados fornecidos.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Resolve de maneira síncrona um conflito usando os dados do snapshot fornecido.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Resolve de forma síncrona um conflito usando os dados fornecidos.
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
void
Mostra de maneira assíncrona a interface do snapshot, permitindo que o jogador selecione um snapshot ou solicite um novo.
ShowSelectUIOperationBlocking(Timeout timeout, bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Bloqueia a versão de ShowSelectUIOperation.
ShowSelectUIOperationBlocking(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Sobrecarga de ShowSelectUIOperationBlocking, que usa um tempo limite padrão de 10 anos.

Estruturas

gpg::SnapshotManager::CommitResponse

Mantém os dados de um snapshot atualizado, junto com um status de resposta.

gpg::SnapshotManager::FetchAllResponse

Mantém todos os dados de todos os snapshots, junto com um status de resposta.

gpg::SnapshotManager::MaxSizeResponse

Mantém o tamanho máximo dos dados e da imagem da capa do snapshot.

gpg::SnapshotManager::OpenResponse

Mantém os dados de um snapshot solicitado específico, além de um status de resposta.

gpg::SnapshotManager::ReadResponse

Lê o status da resposta e os dados do snapshot retornados de uma operação de leitura de snapshot.

gpg::SnapshotManager::SnapshotSelectUIResponse

Data e ResponseStatus para a operação ShowSelectUIOperation.

Tipos públicos

CommitCallback

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

Define um tipo de callback que recebe um CommitResponse.

Esse tipo de callback é fornecido às funções Commit(*) e ResolveConflict(*) abaixo.

FetchAllCallback

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

Define um tipo de callback que recebe um FetchAllResponse.

Esse tipo de callback é fornecido às funções FetchAll(*) abaixo.

MaxSizeCallback

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

Define um tipo de callback que recebe um MaxSizeResponse.

Esse tipo de callback é fornecido para GetMaxSize.

OpenCallback

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

Define um tipo de callback que recebe um OpenResponse.

Esse tipo de callback é fornecido às funções Open(*) abaixo.

ReadCallback

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

Define um tipo de callback que recebe um ReadResponse.

Esse tipo de callback é fornecido às funções Read(*) abaixo.

SnapshotSelectUICallback

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

Define um callback que pode receber um SnapshotSelectUIResponse do ShowSelectUIOperation.

Funções públicas

Confirmar

void Commit(
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > data,
  CommitCallback callback
)

Confirma de maneira assíncrona os dados fornecidos para o snapshot e atualiza os metadados do snapshot usando o objeto de metadados fornecido.

Chama o CommitCallback fornecido na conclusão da operação.

CommitBlocking

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

Confirma de forma síncrona os dados fornecidos no snapshot e atualiza os metadados do snapshot usando o objeto de metadados fornecido.

CommitBlocking

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

Confirma de forma síncrona os dados fornecidos para o snapshot e atualiza os metadados do snapshot usando o objeto de metadados fornecido.

Especifique timeout em milissegundos.

Excluir

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

Exclui o snapshot especificado.

Isso excluirá os dados do snapshot localmente e no servidor.

FetchAll

void FetchAll(
  FetchAllCallback callback
)

Carrega de maneira assíncrona todos os dados do snapshot para o player conectado no momento.

Chama o FetchAllCallback fornecido na conclusão da operação. Se você não especificar data_source, essa chamada de função será equivalente a chamar FetchAll(DataSource data_source, FetchAllCallback callback), com data_source especificado como CACHE_OR_NETWORK.

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

Carrega de maneira assíncrona todos os dados do snapshot para o player conectado no momento.

Chama o FetchAllCallback fornecido na conclusão da operação. Especifique data_source como CACHE_OR_NETWORK ou NETWORK_ONLY.

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.

Especificar não data_source nem timeout torna essa chamada de função equivalente a chamar FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout), com data_source especificado como CACHE_OR_NETWORK e timeout especificado como 10 anos.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.

Especifique data_source como CACHE_OR_NETWORK ou NETWORK_ONLY. Se você não especificar timeout, essa chamada de função será equivalente a chamar FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout), com o valor data_source especificado, e timeout especificado como 10 anos.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.

Especifique timeout em milissegundos. Se você não especificar data_source, essa chamada de função será equivalente a chamar FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout), com data_source especificado como CACHE_OR_NETWORK e timeout contendo o valor especificado.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando o FetchAllResponse diretamente.

Especifique data_source como CACHE_OR_NETWORK ou NETWORK_ONLY. Especifique timeout em milissegundos.

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

Recebe de maneira assíncrona o tamanho máximo de dados e da imagem de capa por snapshot em bytes.

Chama o MaxSizeCallback fornecido na conclusão da operação.

O tamanho máximo de dados por snapshot é de pelo menos 3 MB. Pode aumentar no futuro.

O tamanho máximo de dados por imagem de capa do instantâneo é de no mínimo 800 KB. Pode aumentar no futuro.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

Recebe de maneira síncrona o tamanho máximo dos dados e da imagem da capa por snapshot em bytes, retornando diretamente MaxSizeResponse.

O tamanho máximo de dados por snapshot é de pelo menos 3 MB. Pode aumentar no futuro.

O tamanho máximo de dados por imagem de capa do instantâneo é de no mínimo 800 KB. Pode aumentar no futuro.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

Recebe de maneira síncrona o tamanho máximo dos dados e da imagem da capa por snapshot em bytes, retornando diretamente MaxSizeResponse.

O tamanho máximo de dados por snapshot é de pelo menos 3 MB. Pode aumentar no futuro.

O tamanho máximo de dados por imagem de capa do instantâneo é de no mínimo 800 KB. Pode aumentar no futuro.

Especifique timeout em milissegundos.

Abrir

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

Abre de maneira assíncrona um snapshot com o nome indicado.

O snapshot especificado será criado se ele ainda não existir. Chama o OpenCallback fornecido na conclusão da operação.

Os nomes dos snapshots precisam ter entre 1 e 100 caracteres não reservados para o URL (a-z, A-Z, 0-9 ou os símbolos "-", ".", "_" ou "~").

Podem ocorrer conflitos se outro dispositivo confirmar um snapshot entre o carregamento e a confirmação de um snapshot no dispositivo atual. É necessário resolver esses conflitos. Consulte OpenResponse acima para mais detalhes sobre conflitos.

conflict_policy pode ser um dos seguintes valores:

SnapshotConflictPolicy::MANUAL: no caso de um conflito, a resposta tem o estado OpenResponse::VALID_WITH_CONFLICT. Resolva o conflito usando SnapshotManager::ResolveConflict. É possível ver vários conflitos em uma linha. Portanto, verifique sempre que chamar Open. Essa é a única política em que haverá conflito. O restante da resolução de processamento é feito para você. Esta política garante que nenhuma mudança do usuário no estado do jogo salvo seja perdida.

SnapshotConflictPolicy::LONGEST_PLAYTIME: no caso de um conflito, o snapshot com o maior valor de tempo de reprodução será usado. Esta política é uma boa opção se a duração do tempo de jogo for um indicador razoável para o "melhor" jogo salvo. Use SnapshotMetadataChange::Builder::SetPlayedTime() ao salvar jogos para que essa política seja significativa.

SnapshotConflictPolicy::LAST_KNOWN_GOOD: no caso de um conflito, o snapshot base será usado. Esta política é uma escolha razoável se o jogo exigir estabilidade dos dados do snapshot. Esta política garante que somente gravações não contestadas sejam vistas pelo jogador, o que garante a convergência de todos os clientes. Observação: o valor anterior era SnapshotManager::BASE_WINS

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED: em caso de conflito, o controle remoto será usado. Essa política é uma opção razoável caso seu jogo tenha tolerância a jogadores em vários dispositivos prejudicando as próprias mudanças. Como essa política escolhe sem revelar os dados mais recentes, é possível que as mudanças feitas por um jogador sejam perdidas. Observação: o valor anterior era SnapshotManager::REMOTE_WINS

SnapshotConflictPolicy::HIGHEST_PROGRESSEm caso de conflito, o snapshot com o maior valor de progresso será usado. No caso de empate, o último snapshot válido conhecido será escolhido. Essa política é uma boa opção se o jogo usa o valor do progresso do resumo para determinar o melhor jogo salvo. Use SnapshotMetadataChange::Builder::SetPlayedTime() ao salvar jogos para que essa política seja significativa.

Abrir

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

Abre de maneira assíncrona um snapshot com o nome indicado.

Descontinuado. data_source é ignorado. Em vez dela, use Open(file_name, conflict_policy, callback).

OpenBlocking

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

Abre de forma síncrona um snapshot com o nome fornecido.

O snapshot especificado será criado se ele ainda não existir.

Consulte Abrir para ver mais detalhes.

OpenBlocking

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

Abre de forma síncrona um snapshot com o nome fornecido.

O snapshot especificado será criado se ele ainda não existir.

Especifique timeout em milissegundos.

Consulte Abrir para ver mais detalhes.

OpenBlocking

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

Abre de forma síncrona um snapshot com o nome fornecido.

Descontinuado. data_source é ignorado. Em vez dela, use OpenBlocking(file_name, conflict_policy).

OpenBlocking

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

Abre de forma síncrona um snapshot com o nome fornecido.

Descontinuado. data_source é ignorado. Em vez dela, use OpenBlocking(timeout, file_name, conflict_policy).

Ler

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

Lê de maneira assíncrona um snapshot do disco e o copia para a memória.

Os dados são retornados por valor para facilitar a modificação. Cada chamada para essa função resulta em uma leitura completa. Isso significa que normalmente é melhor ler o snapshot apenas uma vez. Chama o ReadCallback fornecido na conclusão da operação.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

Lê de maneira síncrona um snapshot do disco e o copia para a memória.

Os dados são retornados por valor para facilitar a modificação. Cada chamada para essa função resulta em uma leitura completa. Isso significa que normalmente é melhor ler o snapshot apenas uma vez. Se você não especificar timeout, essa chamada de função será equivalente a chamar ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata), com timeout especificado como 10 anos.

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

Lê de maneira síncrona um snapshot do disco e o copia para a memória.

Os dados são retornados por valor para facilitar a modificação. Cada chamada para isso faz uma leitura completa, portanto, normalmente só lê um snapshot uma vez. Especifique timeout em milissegundos.

ResolveConflict

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

Resolve de maneira assíncrona um conflito usando os dados do snapshot fornecido.

Isso substituirá os dados no servidor pelo snapshot especificado. Essa operação pode resultar em um conflito e, nesse caso, a resolução precisa ser repetida.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto via Open vai falhar com o status BaseStatus::ERROR_INTERNAL.

Chama o OpenCallback fornecido na conclusão da operação.

ResolveConflict

void ResolveConflict(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents,
  OpenCallback callback
)

Resolve um conflito de maneira assíncrona usando os dados fornecidos.

Isso vai substituir os dados no servidor pelas mudanças de metadados especificadas e contents. Essa operação pode resultar em um conflito e, nesse caso, a resolução precisa ser repetida.

Os valores que não estiverem incluídos na alteração dos metadados serão resolvidos para a versão atual do servidor.

O tamanho total de contents não pode exceder o maxDataSize fornecido pelo GetMaxSize.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto via Open vai falhar com o status BaseStatus::ERROR_INTERNAL.

Chama o OpenCallback fornecido na conclusão da operação.

ResolveConflictBlocking

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

Resolve de maneira síncrona um conflito usando os dados do snapshot fornecido.

Isso substituirá os dados no servidor pelo snapshot especificado. Essa operação pode resultar em um conflito e, nesse caso, a resolução precisa ser repetida.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto via Open vai falhar com o status BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

Resolve de forma síncrona um conflito usando os dados fornecidos.

Isso vai substituir os dados no servidor pelas mudanças de metadados especificadas e contents. Essa operação pode resultar em um conflito e, nesse caso, a resolução precisa ser repetida.

Os valores que não estiverem incluídos na alteração dos metadados serão resolvidos para a versão atual do servidor.

O tamanho total de contents não pode exceder o maxDataSize fornecido pelo GetMaxSize.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto via Open vai falhar com o status BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

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

Resolve de maneira síncrona um conflito usando os dados do snapshot fornecido.

Isso substituirá os dados no servidor pelo snapshot especificado. Essa operação pode resultar em um conflito e, nesse caso, a resolução precisa ser repetida.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto via Open vai falhar com o status BaseStatus::ERROR_INTERNAL.

Especifique timeout em milissegundos.

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  Timeout timeout,
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

Resolve de forma síncrona um conflito usando os dados fornecidos.

Isso vai substituir os dados no servidor pelas mudanças de metadados especificadas e contents. Essa operação pode resultar em um conflito e, nesse caso, a resolução precisa ser repetida.

Os valores que não estiverem incluídos na alteração dos metadados serão resolvidos para a versão atual do servidor.

O tamanho total de contents não pode exceder o maxDataSize fornecido pelo GetMaxSize.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto via Open vai falhar com o status BaseStatus::ERROR_INTERNAL.

Especifique timeout em milissegundos.

ShowSelectUIOperation

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

Mostra de maneira assíncrona a interface do snapshot, permitindo que o jogador selecione um snapshot ou solicite um novo.

Após a conclusão, o snapshot selecionado ou a nova solicitação de snapshot é retornado por SnapshotSelectUICallback.

ShowSelectUIOperationBlocking

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

Bloqueia a versão de ShowSelectUIOperation.

Permite que o autor da chamada especifique um tempo limite em ms. Após o tempo especificado, a função retorna ERROR_TIMEOUT.

ShowSelectUIOperationBlocking

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

Sobrecarga de ShowSelectUIOperationBlocking, que usa um tempo limite padrão de 10 anos.