Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]