SDK C++ Google Play Jeux

Résumé

Organisation

Le principal point d'entrée pour les fonctionnalités des services de jeux Play est la classe GameServices. Les instances GameServices sont créées avec GameServices::Builder. Voir GameServices

Les méthodes qui accèdent à l'état de l'ensemble de la session GameServices ou qui modifient celles-ci sont actives dans la classe GameServices elle-même.

D'autres fonctionnalités sont transmises par le biais d'un ensemble de gestionnaires par fonctionnalité. Ces gestionnaires regroupent les fonctionnalités apparentées ; ils ne contiennent pas eux-mêmes d'état visible par l'utilisateur. Les gestionnaires sont renvoyés par référence et sont contrôlés à vie par l'instance GameServices associée. Par conséquent, le code client ne doit jamais conserver la référence d'un gestionnaire, mais conserver plutôt l'instance GameServices. Consultez la page Administrateurs.

Les données sont renvoyées via des objets de type valeur immuable. Ces valeurs reflètent une vue cohérente des données sous-jacentes au moment où la requête a été effectuée. Consultez Types de valeurs.

Modèle d'exécution de threads

Sauf indication contraire, toutes les méthodes GameServices et Manager sont threadsafe et asynchrones. Elles peuvent être appelées sur n'importe quel thread sans verrouillage externe, et s'exécutent dans l'ordre dans lequel elles sont appelées. En général, les méthodes de mutateur (celles qui changent d'état) utilisent un modèle "fire-and-get". Les méthodes d'accesseur (celles qui lisent l'état) présentent deux variantes majeures. La première variante (avec des noms tels que "GetProperty") fournit ses résultats de manière asynchrone à un rappel fourni. La deuxième variante (avec des noms tels que "GetPropertyBlocking) renvoie les résultats de manière synchrone au thread appelant. Les accesseurs voient les résultats de tous les mutateurs appelés précédemment. Toutefois, le mutateur peut ou non avoir modifié l'état distant des services de jeux à un moment donné.

Tous les rappels utilisateur (rappels uniques fournis en tant qu'arguments aux méthodes d'accesseur ou rappels multi-usages configurés au moment de la compilation de GameServices) sont appelés sur un thread de rappel dédié. Ce thread est potentiellement différent de tout concept de plate-forme de "thread principal" ou de "thread UI". Les rappels utilisateur doivent s'exécuter rapidement, car un thread de rappel bloqué peut entraîner des problèmes visibles par l'utilisateur (par exemple, le traitement retardé d'une requête de déconnexion).

Les propriétés des types de valeurs immuables sont disponibles de manière synchrone et sans blocage.