با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Google Play Games C++ SDK
خلاصه
سازمان
نقطه ورود اصلی برای عملکرد Play Game Services کلاس GameServices است. نمونه های GameServices با GameServices::Builder ایجاد می شوند. به GameServices مراجعه کنید
روشهایی که به وضعیت کل جلسه GameServices دسترسی دارند یا جهش میدهند، در خود کلاس GameServices وجود دارند.
سایر عملکردها از طریق مجموعه ای از مدیران هر ویژگی غیرمستقیم است. این مدیران عملکردهای مرتبط را با هم گروه بندی می کنند. آنها خود فاقد حالت قابل مشاهده توسط کاربر هستند. مدیران با مرجع برگردانده می شوند و طول عمر آنها توسط نمونه حاوی GameServices کنترل می شود. به این ترتیب، کد مشتری هرگز نباید روی یک مرجع مدیر نگه داشته شود، بلکه باید روی نمونه GameServices نگه داشته شود. مدیران را ببینید.
داده ها از طریق اشیاء نوع ارزش تغییرناپذیر بازگردانده می شوند. این مقادیر نمایانگر یک دیدگاه ثابت از داده های زیربنایی در زمانی که پرس و جو ساخته شده است. انواع ارزش را ببینید.
مدل نخ
مگر اینکه غیر از این ذکر شده باشد، تمام متدهای GameServices و متدهای Manager Threadsafe و ناهمزمان هستند. آنها را می توان روی هر رشته ای بدون قفل خارجی فراخوانی کرد و به ترتیبی مطابق با ترتیب فراخوانی آنها اجرا می شوند. به طور کلی، روش های جهش دهنده (آنهایی که حالت را تغییر می دهند) از مدل آتش و فراموش کردن استفاده می کنند. متدهای دسترسی (آنهایی که حالت را می خوانند) در دو نوع اصلی ارائه می شوند. اولین نوع (با نامهایی مانند GetProperty) نتایج خود را به طور ناهمزمان به یک تماس ارائه شده ارائه میکند. نوع دوم (با نام هایی مانند GetPropertyBlocking) نتایج خود را به صورت همزمان به رشته فراخوانی برمی گرداند. Accessorها نتایج همه جهشدهندههایی را میبینند که قبلاً فراخوانی شدهاند. با این حال، جهشدهنده ممکن است وضعیت سرویسهای بازی راه دور را در هر زمان معین تغییر داده باشد یا نکند.
همه تماسهای کاربر (چه تماسهای یکشات بهعنوان آرگومانهایی برای متدهای دسترسی ارائه شدهاند، چه تماسهای چند منظوره که در زمان ساخت GameServices پیکربندی شدهاند) در یک رشته پاسخ تماس اختصاصی فراخوانی میشوند. این رشته به طور بالقوه از هر مفهوم پلتفرمی از "رشته اصلی" یا "رشته UI" متمایز است. تماس های کاربر باید به سرعت اجرا شوند، زیرا یک رشته پاسخ به تماس متوقف شده می تواند باعث مشکلات قابل مشاهده برای کاربر شود (به عنوان مثال، تکمیل درخواست خروج با تاخیر).
ویژگیهای انواع مقادیر غیرقابل تغییر به صورت همزمان و بدون مسدود کردن در دسترس هستند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]