Passer au contenu principal
Gestionnaire d’effacement du stockage que PlayFab appelle lorsqu’il doit effacer des données du stockage. Implémentez-le en tant que XAsyncProvider.

Syntaxe

Paramètres

context   _In_opt_ void* Le membre context de la structure PFLocalStorageHooks que vous avez transmise à PFPlatformLocalStorageSetHandlers. Peut être nullptr. PlayFab n’est pas propriétaire de ce pointeur. key   _In_z_ const char* Identifie les données. Il s’agit généralement d’un chemin de fichier. Effacez les données stockées sous cette clé. async   _Inout_ XAsyncBlock* Le XAsyncBlock de l’opération d’effacement.

Valeur de retour

Type : HRESULT Retournez S_OK si vous avez démarré l’opération asynchrone sur async, par exemple avec XAsyncBegin. Si le gestionnaire retourne un HRESULT d’échec, PlayFab fait échouer l’opération de stockage avec ce HRESULT et n’attend pas la fin de async; ne retournez donc un échec que si vous n’avez pas démarré d’opération sur async. Signalez le résultat de l’opération de stockage elle-même en terminant async avec XAsyncComplete.

Notes

Pour installer ce gestionnaire, définissez-le dans le membre clear d’une structure PFLocalStorageHooks, avec les deux autres gestionnaires de stockage, et transmettez la structure à PFPlatformLocalStorageSetHandlers avant d’appeler PFInitialize. PFPlatformLocalStorageSetHandlers retourne E_INVALIDARG si l’un des trois gestionnaires est nullptr. Si vous ne définissez pas de gestionnaires personnalisés, PlayFab utilise une implémentation par défaut basée sur cstdio et des objets std::fstream. Terminez async avec XAsyncComplete en transmettant le résultat de l’effacement et une taille de résultat de 0. L’implémentation par défaut tente de supprimer le fichier nommé par key et se termine avec S_OK même si la suppression échoue, par exemple parce que le fichier n’existe pas. Traitez également une clé manquante comme une réussite dans votre gestionnaire. Lorsque la sortie de trace dans un fichier est activée avec PFTraceEnableTraceToFile, PFInitialize appelle ce gestionnaire pour le fichier de trace et attend la fin de l’opération avant de continuer. Le port de travail de la file d’attente sur laquelle l’opération s’exécute doit progresser pendant que PFInitialize attend. Si vous distribuez ce port de travail manuellement, distribuez-le à partir d’un autre thread; il ne suffit pas de distribuer uniquement le port d’achèvement. PlayFab peut appeler ce gestionnaire en ligne sur le thread qui démarre l’opération de stockage; ne dépendez donc pas du thread sur lequel il s’exécute. La file d’attente de async est une file d’attente que PlayFab dérive du membre queueHandle de PFLocalStorageHooks. Si queueHandle est nullptr, PlayFab la dérive de la file d’attente en arrière-plan que vous avez transmise à PFInitialize, ou de la file d’attente de tâches du processus si cette file d’attente était également nullptr. Les rappels de travail et d’achèvement de la file d’attente dérivée s’exécutent tous deux sur le port de travail de la file d’attente dont elle est dérivée. PlayFab exécute une seule opération de stockage à la fois et ne démarre la suivante qu’une fois l’opération en cours terminée. PlayFab peut annuler une opération en attente en appelant XAsyncCancel sur async. Gérez XAsyncOp::Cancel dans votre fournisseur si votre opération de stockage peut être annulée. Les arguments key et async appartiennent à PlayFab et restent valides jusqu’à la fin de l’opération. L’argument context n’est pas couvert par cette garantie.

Configuration requise

En-tête : PFPlatform.h Bibliothèque : PlayFabCore.lib Plateformes prises en charge : Windows, consoles de la famille XBOX One et consoles XBOX Series

Voir aussi

Membres de PFPlatform PFLocalStorageHooks PFPlatformLocalStorageSetHandlers XAsyncProvider PFPlatformLocalStorageReadAsyncHandler PFPlatformLocalStorageWriteAsyncHandler
Dernière modification le 5 novembre 2026