Google Play Spiele C++ SDK

Zusammenfassung

Organisation

Der Haupteinstiegspunkt für die Funktionen der Play-Spieldienste ist die Klasse GameServices. GameServices-Instanzen werden mit GameServices::Builder erstellt. Siehe GameServices

Methoden, die auf den Status der gesamten GameServices-Sitzung zugreifen oder diesen ändern, sind in der GameServices-Klasse selbst verfügbar.

Andere Funktionen werden durch eine Reihe von Feature-Managern gelenkt. Diese Manager gruppieren verwandte Funktionen in einer Gruppe. Sie enthalten selbst keinen für den Nutzer sichtbaren Status. Manager werden durch Verweis zurückgegeben und ihre Lebensdauer wird von der GameServices-Instanz gesteuert, in der sie enthalten ist. Daher sollte der Clientcode nie an einer Managerreferenz, sondern an der GameServices-Instanz bleiben. Siehe Administratoren.

Daten werden über unveränderliche Werttypobjekte zurückgegeben. Diese Werte spiegeln eine konsistente Ansicht der zugrunde liegenden Daten zum Zeitpunkt der Abfrage wider. Siehe Werttypen.

Threading-Modell

Sofern nicht anders angegeben, sind alle GameServices- und Manager-Methoden Thread-sicher und asynchron. Sie können für jeden Thread ohne externe Sperrung aufgerufen werden und werden in einer Reihenfolge ausgeführt, die ihrer Aufrufreihenfolge entspricht. Im Allgemeinen wird für Mutatormethoden, die den Status ändern, ein Fire-and-Forget-Modell verwendet. Zugriffsmethoden (die den Status lesen) gibt es in zwei Hauptvarianten. Die erste Variante (mit Namen wie GetProperty) stellt ihre Ergebnisse asynchron an einen bereitgestellten Callback bereit. Die zweite Variante (mit Namen wie GetPropertyBlocking) gibt ihre Ergebnisse synchron an den aufrufenden Thread zurück. Zugriffsberechtigungen sehen die Ergebnisse aller zuvor aufgerufenen Mutatoren. Der Mutator kann jedoch den Status der Remote-Spieldienste jederzeit geändert haben.

Alle Nutzer-Callbacks werden in einem dedizierten Callback-Thread aufgerufen. Dabei kann es sich um einzelne Callbacks handeln, die als Argumente für Zugriffsmethoden bereitgestellt werden, oder Callbacks für mehrere Zwecke, die zum Build-Zeitpunkt von GameServices konfiguriert wurden. Dieser Thread unterscheidet sich möglicherweise von jedem Plattformkonzept eines „Hauptthreads“ oder „UI-Threads“. Nutzer-Callbacks sollten schnell ausgeführt werden, da ein angehaltener Callback-Thread für Nutzer sichtbare Probleme verursachen kann, z. B. einen verzögerten Abschluss einer Abmeldeanfrage.

Eigenschaften für unveränderliche Werttypen sind synchron und ohne Blockierung verfügbar.