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
|
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 une FetchAllResponse . |
MaxSizeCallback
|
typedefstd::function< void(const MaxSizeResponse &)>
Définit un type de rappel qui reçoit une 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 une ReadResponse . |
SnapshotSelectUICallback
|
typedefstd::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
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:: |
Contient les données d'un instantané mis à jour, ainsi qu'un état de réponse. |
gpg:: |
Contient toutes les données de tous les instantanés, ainsi que l'état des réponses. |
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 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_PROGRESS
En 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.