gpg::SnapshotManager

#include <snapshot_manager.h>

Récupère et définit diverses données liées à un instantané.

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 échoueront.

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 un FetchAllResponse.
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
Définit un type de rappel qui reçoit un 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 un ReadResponse.
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
Définit un rappel qui peut 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 dans 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 pour 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 dans 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 lecteur actuellement connecté.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
Charge de manière asynchrone toutes les données d'instantané pour le lecteur actuellement connecté.
FetchAllBlocking()
Charge de manière synchrone toutes les données d'instantané pour le lecteur actuellement connecté, en renvoyant directement FetchAllResponse.
FetchAllBlocking(DataSource data_source)
Charge de manière synchrone toutes les données d'instantané pour le lecteur actuellement connecté, en renvoyant directement FetchAllResponse.
FetchAllBlocking(Timeout timeout)
Charge de manière synchrone toutes les données d'instantané pour le lecteur actuellement connecté, en renvoyant directement FetchAllResponse.
FetchAllBlocking(DataSource data_source, Timeout timeout)
Charge de manière synchrone toutes les données d'instantané pour le lecteur actuellement connecté, en renvoyant directement FetchAllResponse.
GetMaxSize(MaxSizeCallback callback) const
void
Récupère de manière asynchrone la taille de données maximale et la taille maximale d'image de couverture par instantané, en octets.
GetMaxSizeBlocking() const
Récupère de manière synchrone la taille de données maximale et la taille d'image de couverture maximale par instantané en octets, en renvoyant directement le MaxSizeResponse.
GetMaxSizeBlocking(Timeout timeout) const
Récupère de manière synchrone la taille de données maximale et la taille d'image de couverture maximale par instantané en octets, en renvoyant directement le 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
Obsolète. data_source est ignoré. Utilisez Open(file_name, conflict_policy, callback) à la place.
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) Obsolète. data_source est ignoré. Utilisez OpenBlocking(file_name, conflict_policy) à la place.
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) Obsolète. data_source est ignoré. Utilisez OpenBlocking(timeout, file_name, conflict_policy) à la place.
Ouvre de manière synchrone un instantané portant le nom donné.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
Lit un instantané de manière asynchrone à partir du disque et le copie dans la mémoire.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
Lit un instantané du disque de manière synchrone et le copie en 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ésolution de 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ésolution de 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 de l'instantané, 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 que l'état de la réponse.

gpg::SnapshotManager::FetchAllResponse

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

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 un 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 un 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 un ReadResponse.

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

SnapshotSelectUICallback

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

Définit un rappel qui peut 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 dans 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 à la fin de l'opération.

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 pour 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 dans l'instantané et met à jour les métadonnées de l'instantané à l'aide de l'objet de métadonnées fourni.

Indiquez timeout en millisecondes.

Supprimer

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

Supprime l'instantané spécifié.

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

FetchAll

void FetchAll(
  FetchAllCallback callback
)

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

Appelle le FetchAllCallback fourni à la fin de l'opération. Si vous ne spécifiez pas data_source, cet appel de fonction équivaut à l'appel de FetchAll(DataSource data_source, FetchAllCallback callback), avec data_source défini sur CACHE_OR_NETWORK..

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

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

Appelle le FetchAllCallback fourni à la fin de l'opération. Spécifiez data_source en tant que CACHE_OR_NETWORK ou NETWORK_ONLY.

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

Charge de manière synchrone toutes les données d'instantané pour le lecteur actuellement connecté, en renvoyant directement 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 défini sur CACHE_OR_NETWORK et timeout défini sur 10 ans.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

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

Spécifiez data_source en tant que 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 définie sur 10 ans.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

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

Indiquez 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 défini sur 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 lecteur actuellement connecté, en renvoyant directement FetchAllResponse.

Spécifiez data_source en tant que CACHE_OR_NETWORK ou NETWORK_ONLY. Indiquez timeout en millisecondes.

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

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

Appelle le MaxSizeCallback fourni à la fin de l'opération.

La taille maximale de données par instantané est d'au moins 3 Mo. Peut augmenter à l'avenir.

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

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

Récupère de manière synchrone la taille de données maximale et la taille d'image de couverture maximale par instantané en octets, en renvoyant directement le MaxSizeResponse.

La taille maximale de données par instantané est d'au moins 3 Mo. Peut augmenter à l'avenir.

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

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

Récupère de manière synchrone la taille de données maximale et la taille d'image de couverture maximale par instantané en octets, en renvoyant directement le MaxSizeResponse.

La taille maximale de données par instantané est d'au moins 3 Mo. Peut augmenter à l'avenir.

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

Indiquez 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 déjà. Appelle le OpenCallback fourni à la fin de l'opération.

Le nom des instantanés doit 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 OpenResponse ci-dessus pour en savoir plus 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. Comme il est possible de voir plusieurs conficts à la suite, vérifiez chaque fois que vous appelez Open. Il s'agit de la seule règle concernée par le conflit. Le reste gère la résolution pour vous. Cette règle garantit qu'aucun changement d'état de la sauvegarde ne sera perdu par l'utilisateur.

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 recommandée si la durée de jeu constitue un indicateur raisonnable de la "meilleure" sauvegarde. Notez que vous devez utiliser SnapshotMetadataChange::Builder::SetPlayedTime() lorsque vous enregistrez des jeux pour que cette règle soit pertinente.

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 une stabilité des données d'instantané. Cette règle garantit que seules les écritures non contestées sont visibles par le lecteur, ce qui garantit la convergence de tous les clients. Remarque: Auparavant, SnapshotManager::BASE_WINS

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED : en cas de conflit, la télécommande est utilisée. Cette règle est un choix judicieux si votre jeu peut tolérer des joueurs sur plusieurs appareils gênant leurs propres modifications. Étant donné que cette règle choisit aveuglément les données les plus récentes, il est possible que les modifications apportées au joueur soient perdues. Remarque: Auparavant, SnapshotManager::REMOTE_WINS

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

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

Obsolète. data_source est ignoré. Utilisez Open(file_name, conflict_policy, callback) à la place.

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

Indiquez 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é.

Obsolète. data_source est ignoré. Utilisez OpenBlocking(file_name, conflict_policy) à la place.

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

Obsolète. data_source est ignoré. Utilisez OpenBlocking(timeout, file_name, conflict_policy) à la place.

Read

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

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

Les données sont renvoyées par valeur pour faciliter les modifications. Chaque appel de cette fonction entraîne une lecture complète. Par conséquent, il est généralement préférable de ne lire un instantané qu'une seule fois. Appelle le ReadCallback fourni à la fin de l'opération.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

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

Les données sont renvoyées par valeur pour faciliter les modifications. Chaque appel de cette fonction entraîne une lecture complète. Par conséquent, 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), avec timeout 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 les modifications. Chaque appel à cette méthode effectue une lecture complète. Par conséquent, un instantané ne sera généralement lu qu'une seule fois. Indiquez 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 du serveur seront remplacées par l'instantané spécifié. Notez que cette opération peut entraîner un conflit lui-même, 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 à la fin de l'opération.

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.

Les données sur le serveur seront remplacées par les modifications de métadonnées spécifiées et par contents. Notez que cette opération peut entraîner un conflit lui-même, 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 en fonction de la version actuellement installée 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 à la fin de l'opération.

ResolveConflictBlocking

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

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

Les données du serveur seront remplacées par l'instantané spécifié. Notez que cette opération peut entraîner un conflit lui-même, 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.

Les données sur le serveur seront remplacées par les modifications de métadonnées spécifiées et par contents. Notez que cette opération peut entraîner un conflit lui-même, 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 en fonction de la version actuellement installée 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ésolution de conflit de manière synchrone à l'aide des données de l'instantané fourni.

Les données du serveur seront remplacées par l'instantané spécifié. Notez que cette opération peut entraîner un conflit lui-même, 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.

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

Les données sur le serveur seront remplacées par les modifications de métadonnées spécifiées et par contents. Notez que cette opération peut entraîner un conflit lui-même, 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 en fonction de la version actuellement installée 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.

Indiquez 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 de l'instantané, 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.