Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Google Play Games C++ SDK\n=========================\n\nSummary\n-------\n\nOrganization\n\nThe main entry point for Play Game Services functionality is the GameServices class. GameServices instances are created with GameServices::Builder. See [GameServices](/games/services/cpp/api/other/classgpg_1_1GameServices)\n\nMethods that access or mutate the state of the entire GameServices session live in the GameServices class itself.\n\nOther functionality is indirected through a set of per-feature managers. These managers group related functionality together; they contain no user-visible state themselves. Managers are returned by reference, and have lifetime controlled by the containing GameServices instance. As such, client code should never hold onto a manager reference, but instead hold on to the GameServices instance. See [Managers](/games/services/cpp/api/other/group__Managers).\n\nData is returned via immutable value type objects. These values reflect a consistent view of the underlying data at the point in time the query was made. See [Value Types](/games/services/cpp/api/other/group__ValueType).\n\nThreading Model\n\nUnless otherwise noted, all GameServices methods and Manager methods are threadsafe and asynchronous. They can be called on any thread without external locking, and will execute in an order consistent with their invocation order. In general, mutator methods (those that change state) use a fire-and-forget model. Accessor methods (those that read state) come in two major variants. The first variant (with names like GetProperty) asynchronously supply their results to a provided callback; the second variant (with names like GetPropertyBlocking) synchronously return their results to the calling thread. Accessors see the results of all mutators that have been called prior; however, the mutator may or may not have modified the remote Game Services state at any given time.\n\nAll user callbacks (whether one-shot callbacks supplied as arguments to accessor methods, or multi-use callbacks configured at GameServices build time) are invoked on a dedicated callback thread. This thread is potentially distinct from any platform concept of a \"main thread\" or \"UI thread\". User callbacks should execute quickly, as a stalled callback thread can cause user-visible issues (for example, delayed completion of a sign-out request).\n\nProperties on immutable value types are available synchronously and without blocking."]]