Pakiet SDK C++ dla Gier Google Play

Podsumowanie

Organizacja

Głównym punktem wejścia do funkcji usług gier Play jest klasa GameServices. Instancje GameServices są tworzone za pomocą GameServices::Builder. Zobacz GameServices

Metody, które uzyskują dostęp do stanu całej sesji GameServices lub zmieniają stan całej sesji GameServices, znajdują się w samej klasie GameServices.

Inne funkcje są kierowane do odpowiednich menedżerów funkcji. Menedżerowie ci grupują powiązane funkcje, ale nie mają stanu widocznego dla użytkowników. Menedżerowie są zwracani przez odwołanie, a ich czas przechowywania jest kontrolowany przez instancję GameServices. W związku z tym kod klienta nie powinien zawierać odwołania do menedżera, ale powinien należeć do instancji GameServices. Zobacz sekcję Menedżerowie.

Dane są zwracane przez obiekty typu wartości stałego. Wartości te odzwierciedlają spójny widok danych bazowych w momencie przesłania zapytania. Zobacz Typy wartości.

Model z gwintowaniem

O ile nie wskazano inaczej, wszystkie metody GameServices i metody menedżera są bezpieczne w wątkach i asynchroniczne. Można je wywoływać w dowolnym wątku bez blokady zewnętrznego i uruchamiać w kolejności zgodnej z kolejnością ich wywoływania. Ogólnie metody mutatora (te, które zmieniają stan) korzystają z modelu „wypal i zapomnij”. Metody dostępu (czyli te, które odczytują stan) występują w 2 głównych wariantach. Pierwszy wariant (o nazwach takich jak GetProperty) asynchronicznie dostarcza wyniki do podanego wywołania zwrotnego. Drugi (o nazwach takich jak GetPropertyblok) synchronicznie zwraca wyniki do wątku wywołującego. Uzyskujący dostęp widzą wyniki wszystkich mutatorów, które zostały wywołane wcześniej, ale mogli, ale nie muszą, w dowolnym momencie zmodyfikować stan zdalnych usług gier.

Wszystkie wywołania zwrotne użytkownika (niezależnie od tego, czy wywołania zwrotne są podane jako argumenty metod akcesora czy wielokrotne wywołania skonfigurowane w czasie kompilacji GameServices) są wywoływane w dedykowanym wątku wywołania zwrotnego. Ten wątek może różnić się od koncepcji „głównego wątku” lub „wątku interfejsu użytkownika” na danej platformie. Wywołania zwrotne użytkowników powinny być wykonywane szybko, ponieważ opóźniony wątek wywołania zwrotnego może powodować problemy widoczne dla użytkowników (na przykład opóźnione zakończenie żądania wylogowania).

Właściwości stałych typów wartości są dostępne synchronicznie i bez blokowania.