Sintaxe
Parâmetros
context _In_opt_ void*
O membro context da estrutura PFLocalStorageHooks que você passou para PFPlatformLocalStorageSetHandlers. Pode ser nullptr. O PlayFab não é proprietário desse ponteiro.
key _In_z_ const char*
Identifica os dados. Normalmente, um caminho de arquivo. Limpe os dados armazenados nessa chave.
async _Inout_ XAsyncBlock*
O XAsyncBlock da operação de limpeza.
Valor de retorno
Tipo: HRESULT RetorneS_OK se você tiver iniciado a operação assíncrona em async, por exemplo, com XAsyncBegin. Se o manipulador retornar um HRESULT de falha, o PlayFab fará a operação de armazenamento falhar com esse HRESULT e não aguardará a conclusão de async; portanto, retorne uma falha somente quando você não tiver iniciado uma operação em async. Informe o resultado da própria operação de armazenamento concluindo async com XAsyncComplete.
Comentários
Para instalar esse manipulador, defina-o no membroclear de uma estrutura PFLocalStorageHooks, junto com os outros dois manipuladores de armazenamento, e passe a estrutura para PFPlatformLocalStorageSetHandlers antes de chamar PFInitialize. PFPlatformLocalStorageSetHandlers retorna E_INVALIDARG se qualquer um dos três manipuladores for nullptr. Se você não definir manipuladores personalizados, o PlayFab usará uma implementação padrão baseada em cstdio e em objetos std::fstream.
Conclua async com XAsyncComplete, passando o resultado da limpeza e um tamanho de resultado igual a 0.
A implementação padrão tenta excluir o arquivo nomeado por key e é concluída com S_OK mesmo que a exclusão falhe, por exemplo, porque o arquivo não existe. Trate uma chave ausente como êxito também no seu manipulador.
Quando a saída de rastreamento para um arquivo está habilitada com PFTraceEnableTraceToFile, PFInitialize chama esse manipulador para o arquivo de rastreamento e aguarda a conclusão da operação antes de continuar. A porta de trabalho da fila na qual a operação é executada deve progredir enquanto PFInitialize aguarda. Se você despachar essa porta de trabalho manualmente, despache-a de outro thread; despachar apenas a porta de conclusão não é suficiente.
O PlayFab pode chamar esse manipulador de forma embutida no thread que inicia a operação de armazenamento, portanto, não dependa do thread em que ele é executado. A fila de async é uma fila que o PlayFab deriva do membro queueHandle de PFLocalStorageHooks. Se queueHandle for nullptr, o PlayFab a deriva da fila em segundo plano que você passou para PFInitialize ou da fila de tarefas do processo, se essa fila também for nullptr. Os retornos de chamada de trabalho e de conclusão da fila derivada são executados na porta de trabalho da fila da qual ela é derivada.
O PlayFab executa uma operação de armazenamento por vez e só inicia a próxima depois que a atual é concluída.
O PlayFab pode cancelar uma operação pendente chamando XAsyncCancel em async. Trate XAsyncOp::Cancel no seu provedor se a sua operação de armazenamento puder ser cancelada.
Os argumentos key e async pertencem ao PlayFab e permanecem válidos até que a operação seja concluída. O argumento context não é coberto por essa garantia.
