MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_leaderboard_server.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_LEADERBOARD_SERVER_H_1630686448
12#define INCGUARD_MGL_LEADERBOARD_SERVER_H_1630686448
13
15#include <mgl/event/mgl_event.h>
18
19namespace MGL::Leaderboard
20{
22class Server final : public MGL::SharedSingleton<Server>
23{
24public:
26 enum class State : uint8_t
27 {
28 NotReady,
29 Ready,
34 };
35
36 static STL::unique_ptr<Server> &GetInstanceRef() noexcept;
37
38 Server() noexcept;
39
40 bool Initialize(STL::unique_ptr<ServerDelegate> &delegate) noexcept;
41
42 bool ReportScore(Identifier identifier, uint64_t score, const OptionDataArray &options) noexcept;
43 bool FetchEntryData(Identifier identifier, uint32_t startRank, uint32_t requestSize, PlayerScope playerScope) noexcept;
44 bool FetchEntryDataAroundUser(Identifier identifier, uint32_t requestSize, PlayerScope playerScope) noexcept;
45 bool UploadClipData(Identifier identifier, const ClipData &clipData) noexcept;
46 bool DownloadClipData(uint64_t clipID) noexcept;
47
48 /* ------------------------------------------------------------------------- */
53 /* ------------------------------------------------------------------------- */
54 [[nodiscard]] const FetchResults &GetFetchedData() const noexcept
55 {
56 return _delegate->GetFetchedData();
57 }
58
59 /* ------------------------------------------------------------------------- */
64 /* ------------------------------------------------------------------------- */
65 [[nodiscard]] const ReportResults &GetReportResults() const noexcept
66 {
67 return _delegate->GetReportResults();
68 }
69
70 /* ------------------------------------------------------------------------- */
75 /* ------------------------------------------------------------------------- */
76 [[nodiscard]] const ClipData &GetClipData() const noexcept
77 {
78 return _delegate->GetClipData();
79 }
80
81 /* ------------------------------------------------------------------------- */
86 /* ------------------------------------------------------------------------- */
87 [[nodiscard]] ClipData::ErrorType GetClipDataUploadResults() const noexcept
88 {
89 return _delegate->GetClipDataUploadResults();
90 }
91
92 /* ------------------------------------------------------------------------- */
98 /* ------------------------------------------------------------------------- */
99 [[nodiscard]] constexpr bool IsProcessing() const noexcept
100 {
101 return _state != State::Ready;
102 }
103
104 /* ------------------------------------------------------------------------- */
109 /* ------------------------------------------------------------------------- */
110 [[nodiscard]] constexpr State GetState() const noexcept
111 {
112 return _state;
113 }
114
115private:
116 static void OnPreFrameUpdate(void *callbackArg, void *notifyArg) noexcept;
117
119 State _state{State::Ready};
120
121 Event::Handle _eventPreFrameUpdate;
122};
123} // namespace MGL::Leaderboard
124
125#endif // INCGUARD_MGL_LEADERBOARD_SERVER_H_1630686448
126
127// vim: et ts=4 sw=4 sts=4
イベントハンドルクラス
Definition mgl_event_handle.h:21
クリップデータ
Definition mgl_leaderboard_clipdata.h:21
ErrorType
エラータイプ
Definition mgl_leaderboard_clipdata.h:34
MGL リーダーボードサーバのデリゲートクラス
Definition mgl_leaderboard_server_delegate.h:20
MGL リーダーボードサーバ
Definition mgl_leaderboard_server.h:23
const ReportResults & GetReportResults() const noexcept
送信結果を取得
Definition mgl_leaderboard_server.h:65
const FetchResults & GetFetchedData() const noexcept
エントリ取得結果を取得
Definition mgl_leaderboard_server.h:54
static STL::unique_ptr< Server > & GetInstanceRef() noexcept
インスタンスの取得
Definition mgl_leaderboard_server.cc:21
ClipData::ErrorType GetClipDataUploadResults() const noexcept
クリップデータのアップロード結果を取得
Definition mgl_leaderboard_server.h:87
constexpr bool IsProcessing() const noexcept
処理中かどうかを取得
Definition mgl_leaderboard_server.h:99
bool FetchEntryDataAroundUser(Identifier identifier, uint32_t requestSize, PlayerScope playerScope) noexcept
プレイヤーの順位を中心にエントリデータを取得
Definition mgl_leaderboard_server.cc:127
const ClipData & GetClipData() const noexcept
ダウンロードしたクリップデータを取得
Definition mgl_leaderboard_server.h:76
State
ステート
Definition mgl_leaderboard_server.h:27
@ UploadClipData
クリップデータをアップロード中
@ FetchEntryData
エントリ取得中
@ DownloadClipData
クリップデータをダウンロード中
@ NotReady
準備できていない
@ ReportScore
スコア送信中
constexpr State GetState() const noexcept
現在のステートを取得
Definition mgl_leaderboard_server.h:110
bool Initialize(STL::unique_ptr< ServerDelegate > &delegate) noexcept
初期化処理
Definition mgl_leaderboard_server.cc:47
シングルトンテンプレート(共有ライブラリ用)
Definition mgl_singleton.h:44
MGL イベント
PlayerScope
プレイヤーのスコープ
Definition mgl_leaderboard_defs.h:40
STL::vector< uint32_t > OptionDataArray
オプションデータ配列の型
Definition mgl_leaderboard_defs.h:29
MGL リーダーボードサーバのデリゲート
MGL シングルトンクラス
MGL STLのメモリ関連の代替
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
エントリ取得結果
Definition mgl_leaderboard_defs.h:59
エントリ送信結果
Definition mgl_leaderboard_defs.h:68