gpg::SnapshotManager

#include <snapshot_manager.h>

Récupère et définit diverses données liées aux instantanés.

Résumé

Si l'application n'active pas les instantanés au moment de l'authentification (voir GameServices::Builder::EnableSnapshots), la plupart des méthodes sur SnapshotManager échouent.

Types publics

CommitCallback typedef
std::function< void(const CommitResponse &)>
Définit un type de rappel qui reçoit un CommitResponse.
FetchAllCallback typedef
std::function< void(const FetchAllResponse &)>
Définit un type de rappel qui reçoit une FetchAllResponse.
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
Définit un type de rappel qui reçoit une MaxSizeResponse.
OpenCallback typedef
std::function< void(const OpenResponse &)>
Définit un type de rappel qui reçoit un OpenResponse.
ReadCallback typedef
std::function< void(const ReadResponse &)>
Définit un type de rappel qui reçoit une ReadResponse.
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
Définit un rappel pouvant recevoir un SnapshotSelectUIResponse de ShowSelectUIOperation.

Fonctions publiques

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
Valide de manière asynchrone les données fournies sur l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Valide de manière synchrone les données fournies sur l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Valide de manière synchrone les données fournies sur l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.
Delete(const SnapshotMetadata & snapshot_metadata)
void
Supprime l'instantané spécifié.
FetchAll(FetchAllCallback callback)
void
Charge de manière asynchrone toutes les données d'instantané pour le joueur actuellement connecté.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
Charge de manière asynchrone toutes les données d'instantané pour le joueur actuellement connecté.
FetchAllBlocking()
Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.
FetchAllBlocking(DataSource data_source)
Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.
FetchAllBlocking(Timeout timeout)
Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.
FetchAllBlocking(DataSource data_source, Timeout timeout)
Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.
GetMaxSize(MaxSizeCallback callback) const
void
Récupère de manière asynchrone la taille maximale des données et la taille maximale de l'image de couverture par instantané, en octets.
GetMaxSizeBlocking() const
Obtient de manière synchrone la taille maximale de données et la taille maximale de l'image de couverture par instantané, en octets, en renvoyant directement la valeur MaxSizeResponse.
GetMaxSizeBlocking(Timeout timeout) const
Obtient de manière synchrone la taille maximale de données et la taille maximale de l'image de couverture par instantané, en octets, en renvoyant directement la valeur MaxSizeResponse.
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
Ouvre de manière asynchrone un instantané portant le nom donné.
Open(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
<ph type="x-smartling-placeholder"></ph> Obsolète. data_source est ignoré. Utilisez plutôt Open(file_name, conflict_policy, callback).
Ouvre de manière asynchrone un instantané portant le nom donné.
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Ouvre de manière synchrone un instantané portant le nom donné.
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
Ouvre de manière synchrone un instantané portant le nom donné.
OpenBlocking(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy) <ph type="x-smartling-placeholder"></ph> Obsolète. data_source est ignoré. Utilisez plutôt OpenBlocking(file_name, conflict_policy).
Ouvre de manière synchrone un instantané portant le nom donné.
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy) <ph type="x-smartling-placeholder"></ph> Obsolète. data_source est ignoré. Utilisez plutôt OpenBlocking(timeout, file_name, conflict_policy).
Ouvre de manière synchrone un instantané portant le nom donné.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
Lit un instantané hors du disque de manière asynchrone et le copie en mémoire.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
Lit un instantané à partir du disque de manière synchrone et le copie dans la mémoire.
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
Lit un instantané du disque de manière synchrone et le copie dans la mémoire.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
Résout un conflit de manière asynchrone à l'aide des données de l'instantané fourni.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents, OpenCallback callback)
void
Résout un conflit de manière asynchrone à l'aide des données fournies.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Résout un conflit de manière synchrone à l'aide des données de l'instantané fourni.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Résout un conflit de manière synchrone à l'aide des données fournies.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
Résout un conflit de manière synchrone à l'aide des données de l'instantané fourni.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
Résout un conflit de manière synchrone à l'aide des données fournies.
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
void
Affiche de manière asynchrone l'interface utilisateur des instantanés, ce qui permet au joueur de sélectionner un instantané ou d'en demander un nouveau.
ShowSelectUIOperationBlocking(Timeout timeout, bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Version bloquante de ShowSelectUIOperation.
ShowSelectUIOperationBlocking(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
Surcharge de ShowSelectUIOperationBlocking, qui utilise un délai avant expiration par défaut de 10 ans.

Structs

gpg::SnapshotManager::CommitResponse

Contient les données d'un instantané mis à jour, ainsi qu'un état de réponse.

gpg::SnapshotManager::FetchAllResponse

Contient toutes les données de tous les instantanés, ainsi que l'état des réponses.

gpg::SnapshotManager::MaxSizeResponse

Contient la taille maximale des données d'instantané et de l'image de couverture de l'instantané.

gpg::SnapshotManager::OpenResponse

Contient les données d'un instantané demandé particulier, ainsi qu'un état de réponse.

gpg::SnapshotManager::ReadResponse

Lit l'état de la réponse et les données d'instantané renvoyées par une opération de lecture d'instantané.

gpg::SnapshotManager::SnapshotSelectUIResponse

Data et ResponseStatus pour l'opération ShowSelectUIOperation.

Types publics

CommitCallback

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

Définit un type de rappel qui reçoit un CommitResponse.

Ce type de rappel est fourni aux fonctions Commit(*) et ResolveConflict(*) ci-dessous.

FetchAllCallback

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

Définit un type de rappel qui reçoit une FetchAllResponse.

Ce type de rappel est fourni aux fonctions FetchAll(*) ci-dessous.

MaxSizeCallback

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

Définit un type de rappel qui reçoit une MaxSizeResponse.

Ce type de rappel est fourni à GetMaxSize.

OpenCallback

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

Définit un type de rappel qui reçoit un OpenResponse.

Ce type de rappel est fourni aux fonctions Open(*) ci-dessous.

ReadCallback

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

Définit un type de rappel qui reçoit une ReadResponse.

Ce type de rappel est fourni aux fonctions Read(*) ci-dessous.

SnapshotSelectUICallback

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

Définit un rappel pouvant recevoir un SnapshotSelectUIResponse de ShowSelectUIOperation.

Fonctions publiques

Commit

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

Valide de manière asynchrone les données fournies sur l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.

Appelle le CommitCallback fourni une fois l'opération terminée.

CommitBlocking

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

Valide de manière synchrone les données fournies sur l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.

CommitBlocking

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

Valide de manière synchrone les données fournies sur l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.

Spécifiez timeout en millisecondes.

Supprimer

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

Supprime l'instantané spécifié.

Les données de l'instantané seront supprimées localement et sur le serveur.

FetchAll

void FetchAll(
  FetchAllCallback callback
)

Charge de manière asynchrone toutes les données d'instantané pour le joueur actuellement connecté.

Appelle le FetchAllCallback fourni une fois l'opération terminée. Si vous ne spécifiez pas data_source, cet appel de fonction équivaut à appeler FetchAll(DataSource data_source, FetchAllCallback callback), data_source étant spécifié en tant que CACHE_OR_NETWORK..

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

Charge de manière asynchrone toutes les données d'instantané pour le joueur actuellement connecté.

Appelle le FetchAllCallback fourni une fois l'opération terminée. Définissez data_source comme CACHE_OR_NETWORK ou NETWORK_ONLY.

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.

Si vous ne spécifiez ni data_source, ni timeout, cet appel de fonction équivaut à appeler FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout), avec data_source spécifié comme CACHE_OR_NETWORK et timeout comme 10 ans.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.

Définissez data_source comme CACHE_OR_NETWORK ou NETWORK_ONLY. Si vous ne spécifiez pas timeout, cet appel de fonction équivaut à appeler FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout), avec la valeur data_source spécifiée et la valeur timeout spécifiée à 10 ans.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.

Spécifiez timeout en millisecondes. Si vous ne spécifiez pas data_source, cet appel de fonction équivaut à appeler FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout), avec data_source spécifié comme CACHE_OR_NETWORK et timeout contenant la valeur spécifiée.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

Charge de manière synchrone toutes les données d'instantané pour le joueur actuellement connecté, en renvoyant directement le FetchAllResponse.

Définissez data_source comme CACHE_OR_NETWORK ou NETWORK_ONLY. Spécifiez timeout en millisecondes.

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

Récupère de manière asynchrone la taille maximale des données et la taille maximale de l'image de couverture par instantané, en octets.

Appelle le MaxSizeCallback fourni une fois l'opération terminée.

La taille maximale des données par instantané doit être d'au moins 3 Mo. Peut augmenter à l'avenir.

La taille maximale des données par image de couverture de l'instantané doit être d'au moins 800 Ko. Peut augmenter à l'avenir.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

Obtient de manière synchrone la taille maximale de données et la taille maximale de l'image de couverture par instantané, en octets, et renvoie directement MaxSizeResponse.

La taille maximale des données par instantané doit être d'au moins 3 Mo. Peut augmenter à l'avenir.

La taille maximale des données par image de couverture de l'instantané doit être d'au moins 800 Ko. Peut augmenter à l'avenir.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

Obtient de manière synchrone la taille maximale de données et la taille maximale de l'image de couverture par instantané, en octets, en renvoyant directement la valeur MaxSizeResponse.

La taille maximale des données par instantané doit être d'au moins 3 Mo. Peut augmenter à l'avenir.

La taille maximale des données par image de couverture de l'instantané doit être d'au moins 800 Ko. Peut augmenter à l'avenir.

Spécifiez timeout en millisecondes.

Ouvrir

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

Ouvre de manière asynchrone un instantané portant le nom donné.

L'instantané spécifié sera créé s'il n'existe pas encore. Appelle le OpenCallback fourni une fois l'opération terminée.

Les noms des instantanés doivent comporter entre 1 et 100 caractères non réservés aux URL (a-z, A-Z, 0-9 ou les symboles "-", ".", "_" ou "~").

Des conflits peuvent se produire si un autre appareil valide un instantané entre le chargement et la validation d'un instantané sur l'appareil actuel. Vous devez résoudre ces conflits. Consultez la section OpenResponse ci-dessus pour plus de détails sur les conflits.

Les valeurs possibles pour conflict_policy sont les suivantes :

SnapshotConflictPolicy::MANUAL : en cas de conflit, l'état de la réponse est OpenResponse::VALID_WITH_CONFLICT. Vous devez résoudre le conflit à l'aide de SnapshotManager::ResolveConflict. Il est possible de voir plusieurs conficts à la suite. Vérifiez donc chaque fois que vous appelez Open. Il s'agit de la seule règle dans laquelle le conflit apparaît. Le reste gère la résolution pour vous. Cette règle garantit qu'aucun utilisateur ne change l'état de la partie enregistrée ne sera jamais perdu.

SnapshotConflictPolicy::LONGEST_PLAYTIME : en cas de conflit, l'instantané ayant la valeur de temps de lecture la plus élevée est utilisé. Cette règle est judicieuse si la durée de jeu est un indicateur raisonnable du "meilleur" sauvegarde. Notez que vous devez utiliser SnapshotMetadataChange::Builder::SetPlayedTime() lorsque vous enregistrez des jeux pour que cette règle soit utile.

SnapshotConflictPolicy::LAST_KNOWN_GOOD : en cas de conflit, l'instantané de base est utilisé. Cette règle est un choix judicieux si votre jeu nécessite la stabilité des données de l'instantané. Cette règle garantit que seules les écritures non contestées sont vues par le joueur, ce qui garantit que tous les clients convergent. Remarque: SnapshotManager::BASE_WINS (précédemment)

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED : la télécommande sera utilisée en cas de conflit. Cette règle est un choix judicieux si votre jeu peut tolérer des joueurs sur plusieurs appareils, entravant ainsi leurs propres modifications. Étant donné que cette règle choisit à l'aveugle les données les plus récentes, il est possible que les modifications apportées par un joueur soient perdues. Remarque: SnapshotManager::REMOTE_WINS (précédemment)

SnapshotConflictPolicy::HIGHEST_PROGRESSEn cas de conflit, l'instantané dont la valeur de progression est la plus élevée est utilisé. En cas d'égalité, le dernier bon instantané connu est choisi à la place. Cette règle est un bon choix si votre jeu utilise la valeur de progression de l'instantané pour déterminer le meilleur jeu enregistré. Notez que vous devez utiliser SnapshotMetadataChange::Builder::SetPlayedTime() lorsque vous enregistrez des jeux pour que cette règle soit utile.

Ouvrir

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

Ouvre de manière asynchrone un instantané portant le nom donné.

<ph type="x-smartling-placeholder"></ph> Obsolète. data_source est ignoré. Utilisez plutôt Open(file_name, conflict_policy, callback).

OpenBlocking

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

Ouvre de manière synchrone un instantané portant le nom donné.

L'instantané spécifié sera créé s'il n'existe pas déjà.

Pour en savoir plus, consultez la section Ouvrir.

OpenBlocking

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

Ouvre de manière synchrone un instantané portant le nom donné.

L'instantané spécifié sera créé s'il n'existe pas déjà.

Spécifiez timeout en millisecondes.

Pour en savoir plus, consultez la section Ouvrir.

OpenBlocking

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

Ouvre de manière synchrone un instantané portant le nom donné.

<ph type="x-smartling-placeholder"></ph> Obsolète. data_source est ignoré. Utilisez plutôt OpenBlocking(file_name, conflict_policy).

OpenBlocking

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

Ouvre de manière synchrone un instantané portant le nom donné.

<ph type="x-smartling-placeholder"></ph> Obsolète. data_source est ignoré. Utilisez plutôt OpenBlocking(timeout, file_name, conflict_policy).

Lire

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

Lit un instantané hors du disque de manière asynchrone et le copie en mémoire.

Les données sont renvoyées par valeur pour faciliter la modification. Chaque appel de cette fonction entraîne une lecture complète. Cela signifie qu'il est généralement préférable de ne lire un instantané qu'une seule fois. Appelle le ReadCallback fourni une fois l'opération terminée.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

Lit un instantané à partir du disque de manière synchrone et le copie dans la mémoire.

Les données sont renvoyées par valeur pour faciliter la modification. Chaque appel de cette fonction entraîne une lecture complète. Cela signifie qu'il est généralement préférable de ne lire un instantané qu'une seule fois. Si vous ne spécifiez pas timeout, cet appel de fonction équivaut à appeler ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata), timeout étant défini sur 10 ans.

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

Lit un instantané du disque de manière synchrone et le copie dans la mémoire.

Les données sont renvoyées par valeur pour faciliter la modification. Chaque appel à cette méthode effectue une lecture complète. Par conséquent, il n'est généralement possible de lire un instantané qu'une seule fois. Spécifiez timeout en millisecondes.

ResolveConflict

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

Résout un conflit de manière asynchrone à l'aide des données de l'instantané fourni.

Les données présentes sur le serveur seront remplacées par l'instantané spécifié. Notez qu'il est possible que cette opération génère elle-même un conflit, auquel cas la résolution doit être répétée.

L'appel de cette méthode avec un instantané qui a déjà été validé ou qui n'a pas été ouvert via Open échouera avec l'état BaseStatus::ERROR_INTERNAL.

Appelle le OpenCallback fourni une fois l'opération terminée.

ResolveConflict

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

Résout un conflit de manière asynchrone à l'aide des données fournies.

Cette action remplacera les données sur le serveur avec les modifications de métadonnées spécifiées et contents. Notez qu'il est possible que cette opération génère elle-même un conflit, auquel cas la résolution doit être répétée.

Les valeurs qui ne sont pas incluses dans la modification des métadonnées seront résolues selon la version actuellement sur le serveur.

Notez que la taille totale de contents ne peut pas dépasser la maxDataSize fournie par GetMaxSize.

L'appel de cette méthode avec un instantané qui a déjà été validé ou qui n'a pas été ouvert via Open échouera avec l'état BaseStatus::ERROR_INTERNAL.

Appelle le OpenCallback fourni une fois l'opération terminée.

ResolveConflictBlocking

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

Résout un conflit de manière synchrone à l'aide des données de l'instantané fourni.

Les données présentes sur le serveur seront remplacées par l'instantané spécifié. Notez qu'il est possible que cette opération génère elle-même un conflit, auquel cas la résolution doit être répétée.

L'appel de cette méthode avec un instantané qui a déjà été validé ou qui n'a pas été ouvert via Open échouera avec l'état BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

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

Résout un conflit de manière synchrone à l'aide des données fournies.

Cette action remplacera les données sur le serveur avec les modifications de métadonnées spécifiées et contents. Notez qu'il est possible que cette opération génère elle-même un conflit, auquel cas la résolution doit être répétée.

Les valeurs qui ne sont pas incluses dans la modification des métadonnées seront résolues selon la version actuellement sur le serveur.

Notez que la taille totale de contents ne peut pas dépasser la maxDataSize fournie par GetMaxSize.

L'appel de cette méthode avec un instantané qui a déjà été validé ou qui n'a pas été ouvert via Open échouera avec l'état BaseStatus::ERROR_INTERNAL.

ResolveConflictBlocking

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

Résout un conflit de manière synchrone à l'aide des données de l'instantané fourni.

Les données présentes sur le serveur seront remplacées par l'instantané spécifié. Notez qu'il est possible que cette opération génère elle-même un conflit, auquel cas la résolution doit être répétée.

L'appel de cette méthode avec un instantané qui a déjà été validé ou qui n'a pas été ouvert via Open échouera avec l'état BaseStatus::ERROR_INTERNAL.

Spécifiez timeout en millisecondes.

ResolveConflictBlocking

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

Résout un conflit de manière synchrone à l'aide des données fournies.

Cette action remplacera les données sur le serveur avec les modifications de métadonnées spécifiées et contents. Notez qu'il est possible que cette opération génère elle-même un conflit, auquel cas la résolution doit être répétée.

Les valeurs qui ne sont pas incluses dans le changement de métadonnées seront résolues vers la version actuellement sur le serveur.

Notez que la taille totale de contents ne peut pas dépasser la maxDataSize fournie par GetMaxSize.

L'appel de cette méthode avec un instantané qui a déjà été validé ou qui n'a pas été ouvert via Open échouera avec l'état BaseStatus::ERROR_INTERNAL.

Spécifiez timeout en millisecondes.

ShowSelectUIOperation

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

Affiche de manière asynchrone l'interface utilisateur des instantanés, ce qui permet au joueur de sélectionner un instantané ou d'en demander un nouveau.

Une fois l'opération terminée, l'instantané sélectionné ou la nouvelle requête d'instantané est renvoyé via SnapshotSelectUICallback.

ShowSelectUIOperationBlocking

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

Version bloquante de ShowSelectUIOperation.

Permet à l'appelant de spécifier un délai avant expiration en millisecondes. Une fois le délai spécifié écoulé, la fonction renvoie ERROR_TIMEOUT.

ShowSelectUIOperationBlocking

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

Surcharge de ShowSelectUIOperationBlocking, qui utilise un délai avant expiration par défaut de 10 ans.