Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
SDK de Google Play Juegos para C++
Resumen
Organización
El punto de entrada principal para la funcionalidad de los Servicios de juego de Play es la clase GameServices. Las instancias de GameServices se crean con GameServices::Builder. Consulta GameServices.
Los métodos que acceden o modifican el estado de toda la sesión de GameServices se encuentran en la propia clase GameServices.
Otras funciones se dirigen de forma indirecta a través de un conjunto de administradores por función. Estos administradores agrupan funciones relacionadas y no contienen un estado visible para el usuario. Los administradores se devuelven como referencia y tienen una vida útil controlada por la instancia de GameServices que los contiene. Por lo tanto, el código del cliente nunca debe conservar una referencia de administrador, sino que debe conservar la instancia de GameServices. Consulta Administradores.
Los datos se devuelven a través de objetos de tipo de valor inmutable. Estos valores reflejan una vista constante de los datos subyacentes en el momento en que se realizó la consulta. Consulta Tipos de valores.
Modelo de subprocesos
A menos que se indique lo contrario, todos los métodos de GameServices y del administrador son asíncronos y seguros para subprocesos. Se los puede llamar en cualquier subproceso sin bloqueo externo y se ejecutarán en un orden coherente con el orden de invocación. En general, los métodos de mutación (los que cambian de estado) usan un modelo de activación y recuperación. Los métodos de descriptores de acceso (aquellos que leen el estado) se encuentran disponibles en dos variantes principales. La primera variante (con nombres como GetProperty) suministra de forma asíncrona sus resultados a una devolución de llamada proporcionada; la segunda variante (con nombres como GetPropertyBlocking) devuelve de forma asíncrona sus resultados al subproceso que realizó la llamada. Los accesores ven los resultados de todos los modificadores a los que se les llamó anteriormente. Sin embargo, es posible que el modificador haya modificado o no el estado remoto de los Servicios de juegos en un momento determinado.
Todas las devoluciones de llamada del usuario (ya sean devoluciones de llamada únicas proporcionadas como argumentos a métodos de acceso o devoluciones de llamada de uso múltiple configuradas en el tiempo de compilación de GameServices) se invocan en un subproceso de devolución de llamada exclusivo. Este subproceso es potencialmente distinto a cualquier concepto de plataforma de un "subproceso principal" o "subproceso de IU". Las devoluciones de llamada del usuario deben ejecutarse rápidamente, ya que un subproceso de devolución de llamada detenido puede causar problemas visibles para el usuario (por ejemplo, demoras en la ejecución de una solicitud de salida de la cuenta).
Las propiedades de los tipos de valores inmutables están disponibles de forma síncrona y sin bloqueos.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]