gpg::SnapshotManager

#include <snapshot_manager.h>

Recebe e define vários dados relacionados a snapshots.

Resumo

Se o app não ativar os snapshots no momento da autenticação (consulte GameServices::Builder::EnableSnapshots), a maioria dos métodos no SnapshotManager vai 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 de ShowSelectUIOperation.

Funções públicas

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
Confirma de forma 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)
Grava 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)
Grava de forma síncrona os dados fornecidos no 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 forma assíncrona todos os dados de snapshot do jogador conectado no momento.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
Carrega de forma assíncrona todos os dados de snapshot do jogador conectado no momento.
FetchAllBlocking()
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando diretamente o FetchAllResponse.
FetchAllBlocking(DataSource data_source)
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando diretamente o FetchAllResponse.
FetchAllBlocking(Timeout timeout)
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando diretamente o FetchAllResponse.
FetchAllBlocking(DataSource data_source, Timeout timeout)
Carrega de forma síncrona todos os dados de snapshot do jogador conectado no momento, retornando diretamente o FetchAllResponse.
GetMaxSize(MaxSizeCallback callback) const
void
Recebe de forma assíncrona o tamanho máximo de dados e o tamanho máximo da imagem de capa por snapshot em bytes.
GetMaxSizeBlocking() const
Recebe de forma síncrona o tamanho máximo de dados e o tamanho máximo da imagem de capa por snapshot em bytes, retornando diretamente o MaxSizeResponse.
GetMaxSizeBlocking(Timeout timeout) const
Recebe de forma síncrona o tamanho máximo de dados e o tamanho máximo da imagem de capa por snapshot em bytes, retornando diretamente o MaxSizeResponse.
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Abre um snapshot de forma assíncrona 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 um snapshot de forma assíncrona com o nome fornecido.
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Abre um snapshot de forma síncrona com o nome fornecido.
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Abre um snapshot de forma síncrona 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 um snapshot de forma síncrona 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 um snapshot de forma síncrona com o nome fornecido.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
Lê um snapshot do disco de forma assíncrona e o copia para a memória.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
Lê um snapshot do disco de forma síncrona e o copia para a memória.
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
Lê um snapshot do disco de forma síncrona e o copia para a memória.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
Resolve 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 de forma assíncrona um conflito usando os dados fornecidos.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Resolve um conflito de forma síncrona 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 um conflito de forma síncrona usando os dados fornecidos.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Resolve um conflito de forma síncrona 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 um conflito de forma síncrona usando os dados fornecidos.
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
void
Mostra a interface do snapshot de forma assíncrona, 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)
Versão de bloqueio 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

Armazena os dados de um snapshot atualizado, além de um status de resposta.

gpg::SnapshotManager::FetchAllResponse

Contém todos os dados de todos os snapshots, além de um status de resposta.

gpg::SnapshotManager::MaxSizeResponse

Mantém o tamanho máximo para dados e imagem de capa do resumo.

gpg::SnapshotManager::OpenResponse

Armazena os dados de um determinado snapshot solicitado e o status da resposta.

gpg::SnapshotManager::ReadResponse

Lê o status da resposta e os dados de 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 de ShowSelectUIOperation.

Funções públicas

Confirmar

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

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

Chama o CommitCallback fornecido após a conclusão da operação.

CommitBlocking

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

Grava 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
)

Grava de forma síncrona os dados fornecidos no 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 vai excluir os dados do snapshot localmente e no servidor.

FetchAll

void FetchAll(
  FetchAllCallback callback
)

Carrega de forma assíncrona todos os dados de snapshot do jogador conectado no momento.

Chama o FetchAllCallback fornecido após a conclusão da operação. Não especificar data_source faz com que essa chamada de função seja 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 forma assíncrona todos os dados de snapshot do jogador conectado no momento.

Chama o FetchAllCallback fornecido após a 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 diretamente o FetchAllResponse.

Especificar data_source ou timeout faz com que essa chamada de função seja 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 diretamente o FetchAllResponse.

Especifique data_source como CACHE_OR_NETWORK ou NETWORK_ONLY. Não especificar timeout faz com que essa chamada de função seja equivalente a chamar FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout), com o valor especificado de data_source 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 diretamente o FetchAllResponse.

Especifique timeout em milissegundos. Não especificar data_source faz com que essa chamada de função seja 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 diretamente o FetchAllResponse.

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

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

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

Chama o MaxSizeCallback fornecido após a 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 snapshot precisa ser de pelo menos 800 KB. Pode aumentar no futuro.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

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

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

O tamanho máximo de dados por imagem de capa do snapshot precisa ser de pelo menos 800 KB. Pode aumentar no futuro.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

Recebe de forma síncrona o tamanho máximo de dados e o tamanho máximo da imagem de capa por snapshot em bytes, retornando diretamente o 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 snapshot precisa ser de pelo menos 800 KB. Pode aumentar no futuro.

Especifique timeout em milissegundos.

Abrir

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

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

O snapshot especificado será criado se ainda não existir. Chama o OpenCallback fornecido após a conclusão da operação.

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

Conflitos podem ocorrer 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: em caso de conflito, a resposta tem o estado OpenResponse::VALID_WITH_CONFLICT. É necessário resolver 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 você vai encontrar o conflito. O restante é resolvido para você. Essa política garante que nenhuma mudança do usuário no estado do jogo salvo seja perdida.

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

SnapshotConflictPolicy::LAST_KNOWN_GOOD: em caso de conflito, o snapshot de base será usado. Essa política é uma escolha razoável se o jogo exigir estabilidade dos dados de snapshot. Essa política garante que apenas as gravações que não são contestadas sejam vistas pelo player, o que garante que todos os clientes sejam convergentes. Observação: anteriormente SnapshotManager::BASE_WINS

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED: em caso de conflito, o controle remoto será usado. Essa política é uma escolha razoável se o jogo tolera jogadores em vários dispositivos fazendo mudanças. Como essa política escolhe cegamente os dados mais recentes, é possível que as mudanças de um jogador sejam perdidas. Observação: anteriormente SnapshotManager::REMOTE_WINS

SnapshotConflictPolicy::HIGHEST_PROGRESSEm caso de conflito, o snapshot com o valor de progresso mais alto será usado. Em caso de empate, o último snapshot bom conhecido será escolhido. Essa política é uma boa escolha se o jogo usa o valor de progresso do snapshot para determinar o melhor jogo salvo. É necessário usar 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 um snapshot de forma assíncrona com o nome fornecido.

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 um snapshot de forma síncrona com o nome fornecido.

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

Consulte Abrir para mais detalhes.

OpenBlocking

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

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

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

Especifique timeout em milissegundos.

Consulte Abrir para mais detalhes.

OpenBlocking

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

Abre um snapshot de forma síncrona 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 um snapshot de forma síncrona 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ê um snapshot do disco de forma assíncrona e o copia para a memória.

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

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

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

Os dados são transmitidos por valor para facilitar a modificação. Cada chamada para essa função resulta em uma leitura completa. Isso significa que normalmente é melhor ler um snapshot apenas uma vez. Se timeout não for especificado, 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ê um snapshot do disco de forma síncrona e o copia para a memória.

Os dados são transmitidos por valor para facilitar a modificação. Cada chamada para isso faz uma leitura completa, então normalmente apenas um snapshot é lido. Especifique timeout em milissegundos.

ResolveConflict

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

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

Isso vai substituir os dados no servidor pelo snapshot especificado. É possível que essa operação resulte em um conflito, caso em que a resolução precisa ser repetida.

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

Chama o OpenCallback fornecido após a 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 de forma assíncrona um conflito usando os dados fornecidos.

Isso vai substituir os dados no servidor pelas mudanças de metadados especificadas e contents. É possível que essa operação resulte em um conflito, caso em que a resolução precisa ser repetida.

Os valores que não forem incluídos na mudança de metadados serão resolvidos para a versão atual no servidor.

O tamanho total do contents não pode exceder o maxDataSize fornecido por GetMaxSize.

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

Chama o OpenCallback fornecido após a conclusão da operação.

ResolveConflictBlocking

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

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

Isso vai substituir os dados no servidor pelo snapshot especificado. É possível que essa operação resulte em um conflito, caso em que a resolução precisa ser repetida.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto por 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 um conflito de forma síncrona usando os dados fornecidos.

Isso vai substituir os dados no servidor pelas mudanças de metadados especificadas e contents. É possível que essa operação resulte em um conflito, caso em que a resolução precisa ser repetida.

Os valores que não forem incluídos na mudança de metadados serão resolvidos para a versão atual no servidor.

O tamanho total do contents não pode exceder o maxDataSize fornecido por GetMaxSize.

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

ResolveConflictBlocking

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

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

Isso vai substituir os dados no servidor pelo snapshot especificado. É possível que essa operação resulte em um conflito, caso em que a resolução precisa ser repetida.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto por 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 um conflito de forma síncrona usando os dados fornecidos.

Isso vai substituir os dados no servidor pelas mudanças de metadados especificadas e contents. É possível que essa operação resulte em um conflito, caso em que a resolução precisa ser repetida.

Os valores que não forem incluídos na mudança de metadados serão resolvidos para a versão atual no servidor.

O tamanho total do contents não pode exceder o maxDataSize fornecido por GetMaxSize.

Chamar esse método com um snapshot que já foi confirmado ou que não foi aberto por 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 a interface do snapshot de forma assíncrona, 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 pelo SnapshotSelectUICallback.

ShowSelectUIOperationBlocking

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

Versão de bloqueio de ShowSelectUIOperation.

Permite que o autor da chamada especifique um tempo limite em ms. Depois que o tempo especificado expirar, a função vai retornar 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.