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
|
typedefstd::function< void(const CommitResponse &)>
Définit un type de rappel qui reçoit un CommitResponse . |
FetchAllCallback
|
typedefstd::function< void(const FetchAllResponse &)>
Définit un type de rappel qui reçoit un FetchAllResponse . |
MaxSizeCallback
|
typedefstd::function< void(const MaxSizeResponse &)>
Définit un type de rappel qui reçoit un MaxSizeResponse . |
OpenCallback
|
typedefstd::function< void(const OpenResponse &)>
Définit un type de rappel qui reçoit un OpenResponse . |
ReadCallback
|
typedefstd::function< void(const ReadResponse &)>
Définit un type de rappel qui reçoit un ReadResponse . |
SnapshotSelectUICallback
|
typedefstd::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
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:: |
Contient les données d'un instantané mis à jour, ainsi que l'état de la réponse. |
gpg:: |
Contient toutes les données de tous les instantanés, ainsi que l'état de la réponse. |
gpg:: |
Contient la taille maximale des données d'instantané et de l'image de couverture de l'instantané. |
gpg:: |
Contient les données d'un instantané demandé particulier, ainsi qu'un état de réponse. |
gpg:: |
Lit l'état de la réponse et les données d'instantané renvoyées par une opération de lecture d'instantané. |
gpg:: |
|
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_PROGRESS
En 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.