SDK C++ do Google Play Games

Resumo

Organização

O ponto de entrada principal da funcionalidade dos serviços relacionados a jogos do Google Play é a classe GameServices. As instâncias do GameServices são criadas com o GameServices::Builder. Consulte GameServices.

Métodos que acessam ou modificam o estado de toda a sessão do GameServices em tempo real na própria classe GameServices.

Outras funcionalidades são redirecionadas por um conjunto de gerenciadores por recurso. Esses gerenciadores agrupam funcionalidades relacionadas e não contêm estado visível para o usuário. Os Managers são retornados por referência e têm o ciclo de vida controlado pela instância de GameServices que os contém. Portanto, o código do cliente nunca deve manter uma referência ao gerenciador, mas sim a instância do GameServices. Consulte Administradores.

Os dados são retornados por objetos do tipo valor imutável. Esses valores refletem uma visualização consistente dos dados subjacentes no momento em que a consulta foi feita. Consulte Tipos de valor.

Modelo de encadeamento

A menos que indicado de outra forma, todos os métodos de GameServices e Manager são assíncronos e seguros para linhas de execução. Eles podem ser chamados em qualquer linha de execução sem bloqueio externo e serão executados em uma ordem consistente com a ordem de invocação. Em geral, os métodos modificadores (aqueles que mudam o estado) usam um modelo de disparo e esquecimento. Métodos de acesso (os que leem estado) possuem duas variações principais. A primeira variante (com nomes como GetProperty) fornece os resultados de forma assíncrona para um callback fornecido. A segunda variante (com nomes como GetPropertyBlocking) retorna os resultados de forma síncrona para a linha de execução que fez a chamada. Os modificadores de acesso veem os resultados de todos os modificadores que foram chamados anteriormente. No entanto, o modificador pode ou não ter modificado o estado remoto dos Serviços de jogos a qualquer momento.

Todos os callbacks do usuário (sejam callbacks únicos fornecidos como argumentos para métodos de acesso ou callbacks de uso múltiplo configurados no momento de build do GameServices) são invocados em um encadeamento de callback dedicado. Essa linha de execução é potencialmente distinta de qualquer conceito de plataforma de uma "linha de execução principal" ou "linha de execução de IU". Os callbacks do usuário precisam ser executados rapidamente, porque uma linha de execução de callback parada pode causar problemas visíveis ao usuário, como o atraso na conclusão de uma solicitação de logout.

As propriedades em tipos de valor imutáveis estão disponíveis de forma síncrona e sem bloqueio.