SDK C++ di Google Play Giochi

Riepilogo

Organizzazione

Il punto di accesso principale per la funzionalità dei servizi per i giochi di Play è la classe GameServices. Le istanze GameServices vengono create con GameServices::Builder. Vedi GameServices

I metodi che accedono o modificano lo stato dell'intera sessione GameServices si trovano nella classe GameServices stessa.

Altre funzionalità non sono rivolte a un gruppo di gestori di funzionalità. Questi gestori raggruppano le funzionalità correlate e non contengono alcuno stato visibile agli utenti. I gestori vengono restituiti per riferimento e sono controllati dall'intera durata dell'istanza GameServices che le contiene. Di conseguenza, il codice cliente non deve mai contenere il riferimento di un gestore, bensì l'istanza GameServices. Vedi Gestori.

I dati vengono restituiti tramite oggetti di tipo valore immutabili. Questi valori riflettono una visione coerente dei dati sottostanti nel momento in cui è stata eseguita la query. Vedi Tipi di valore.

Modello Threading

Se non diversamente indicato, tutti i metodi GameServices e Manager sono threadsafe e asincroni. Possono essere chiamate su qualsiasi thread senza blocco esterno e verranno eseguite in un ordine coerente con l'ordine di chiamata. In generale, i metodi mutatori (quelli che cambiano stato) utilizzano un modello "Fiamma e dimentica". I metodi della funzione di accesso, ovvero quelli che leggono lo stato, sono disponibili in due varianti principali. La prima variante (con nomi come GetProperty) fornisce i risultati in modo asincrono a un callback fornito; la seconda variante (con nomi come GetPropertyBlock) restituisce in modo sincrono i risultati al thread chiamante. Gli accessori vedono i risultati di tutti i mutatori richiamati in precedenza; tuttavia, il mutatore può o meno aver modificato lo stato dei servizi di giochi remoti in qualsiasi momento.

Tutti i callback utente (sia i callback one-shot forniti come argomenti per i metodi della funzione di accesso o i callback multiuso configurati in fase di creazione dei GameServices) vengono richiamati in un thread di callback dedicato. Questo thread è potenzialmente distinto da qualsiasi concetto di piattaforma di "thread principale" o "thread UI". Le richiamate degli utenti devono essere eseguite rapidamente, poiché un thread di callback bloccato può causare problemi visibili agli utenti (ad esempio, il completamento ritardato di una richiesta di disconnessione).

Le proprietà sui tipi di valore immutabili sono disponibili in modo sincrono e senza blocchi.