SDK C++ Google Play Game

Ringkasan

Organisasi

Titik entri utama untuk fungsi Layanan game Play adalah class GameServices. Instance GameServices dibuat dengan GameServices::Builder. Lihat GameServices

Metode yang mengakses atau mengubah status seluruh sesi GameServices berada di class GameServices itu sendiri.

Fungsi lainnya dialihkan melalui serangkaian pengelola per fitur. Pengelola ini mengelompokkan fungsi terkait; pengelola ini tidak berisi status yang terlihat oleh pengguna. Pengelola ditampilkan oleh referensi, dan memiliki masa aktif yang dikontrol oleh instance GameServices yang memuatnya. Dengan demikian, kode klien tidak boleh menyimpan referensi pengelola, tetapi menyimpan instance GameServices. Lihat Pengelola.

Data ditampilkan melalui objek jenis nilai yang tidak dapat diubah. Nilai ini mencerminkan tampilan yang konsisten atas data pokok pada waktu ketika kueri dibuat. Lihat Jenis Nilai.

Model Threading

Kecuali jika dinyatakan lain, semua metode GameServices dan metode Pengelola aman untuk thread dan asinkron. Metode ini dapat dipanggil pada thread apa pun tanpa penguncian eksternal, dan akan dijalankan dalam urutan yang konsisten dengan urutan pemanggilannya. Secara umum, metode pengubah (yang mengubah status) menggunakan model fire-and-forget. Metode aksesor (yang membaca status) terdiri dalam dua varian utama. Varian pertama (dengan nama seperti GetProperty) secara asinkron menyediakan hasilnya ke callback yang disediakan; varian kedua (dengan nama seperti GetPropertyBlocking) secara sinkron menampilkan hasilnya ke thread yang melakukan panggilan. Pengakses melihat hasil dari semua pengubah yang telah dipanggil sebelumnya; namun, pengubah mungkin telah atau belum mengubah status Layanan game jarak jauh pada waktu tertentu.

Semua callback pengguna (baik callback one-shot yang disediakan sebagai argumen ke metode pengakses, maupun callback multi-penggunaan yang dikonfigurasi pada waktu build GameServices) dipanggil pada thread callback khusus. Thread ini berpotensi berbeda dengan konsep platform apa pun tentang "thread utama" atau "thread UI". Callback pengguna harus dijalankan dengan cepat, karena thread callback yang macet dapat menyebabkan masalah yang terlihat oleh pengguna (misalnya keterlambatan penyelesaian permintaan logout).

Properti pada jenis nilai yang tidak dapat diubah tersedia secara sinkron dan tanpa pemblokiran.