wut v1.9.1
Wii U Toolchain
Loading...
Searching...
No Matches
TitleListCache.h
Go to the documentation of this file.
1#pragma once
2
3#include <wut.h>
4#include <nn/result.h>
9#include <nn/sl/ISerializer.h>
10#include <nn/sl/ITimeAccessor.h>
12
13#ifdef __cplusplus
14
15namespace nn::sl
16{
17class QuickStartApplicationSelector;
18class KillerNotificationSelector;
19namespace details
20{
33WUT_CHECK_SIZE(ITitleListCacheInternal, 0x38);
34WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x00, titleListAccessor);
35WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x04, launchedTitleListAccessor);
36WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x08, installedTitleListAccessor);
37WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x0C, discCachedTitleAccessor);
38WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x10, titleInfoSerializer);
39WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x14, timeAccessor);
40WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x18, metaInfoAccessor);
41WUT_CHECK_OFFSET(ITitleListCacheInternal, 0x34, vtable);
42
43extern "C" ITitleListCacheInternal *
45extern "C" void
47extern "C" nn::Result
49extern "C" nn::Result
51extern "C" nn::Result
53extern "C" nn::Result
55extern "C" nn::Result
57extern "C" void
59extern "C" void
62 int,
63 int,
64 int);
65extern "C" void
68 int,
69 int,
75extern "C" void
78 int,
79 int,
80 int,
86extern "C" void
89 int,
90 int,
91 int,
99
101{
104
105public:
106 virtual ~ITitleListCacheBase() = default;
107 virtual nn::Result
108 Load() = 0;
109 virtual nn::Result
110 Update() = 0;
111 virtual nn::Result
113 virtual nn::Result
114 Store() = 0;
115
116private:
118 GetInternal() = 0;
119};
120
121} // namespace details
122
124{
125public:
127 mTitleListAccessor(nullptr),
128 mLaunchedTitleListAccessor(nullptr),
129 mInstalledTitleListAccessor(nullptr),
130 mDiscCachedTitleAccessor(nullptr),
131 mTitleInfoSerializer(nullptr),
132 mTimeAccessor(nullptr),
133 mMetaInfoAccessor(nullptr)
134 {
135 if (__ct__Q3_2nn2sl14TitleListCacheFv(&mInstance) != nullptr) {
136 mTitleListAccessor = details::TitleListAccessorFromPtr(mInstance.titleListAccessor);
137 mLaunchedTitleListAccessor = details::LaunchedTitleListAccessorFromPtr(mInstance.launchedTitleListAccessor);
138 mInstalledTitleListAccessor = details::InstalledTitleListAccessorFromPtr(mInstance.installedTitleListAccessor);
139 mDiscCachedTitleAccessor = details::DiscCachedTitleAccessorFromPtr(mInstance.discCachedTitleAccessor);
141 mTimeAccessor = details::TimeAccessorFromPtr(mInstance.timeAccessor);
142 mMetaInfoAccessor = details::MetaInfoAccessorFromPtr(mInstance.metaInfoAccessor);
143 }
144 }
145
147 {
148 Finalize__Q3_2nn2sl14TitleListCacheFv(&mInstance);
149 }
150
153 {
154 return mTitleListAccessor;
155 }
156
159 {
160 return mLaunchedTitleListAccessor;
161 }
162
165 {
166 return mInstalledTitleListAccessor;
167 }
168
171 {
172 return mDiscCachedTitleAccessor;
173 }
174
177 {
178 return mTitleInfoSerializer;
179 }
180
183 {
184 return mTimeAccessor;
185 }
186
189 {
190 return mMetaInfoAccessor;
191 }
192
193 void
194 Initialize(int u1, int num)
195 {
196 Initialize__Q3_2nn2sl14TitleListCacheFiT1(&mInstance, u1, num);
197 }
198
199 void
200 Initialize(int u1, int num, int u3)
201 {
202 Initialize__Q3_2nn2sl14TitleListCacheFiN21(&mInstance, u1, num, u3);
203 }
204
205 void
206 Initialize(int u1, int num, int u3, details::ITitleListAccessorBase &titleListAccessor, details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IInstalledTitleListAccessorBase &installedTitleListAccessor, details::IDiscCachedTitleAccessorBase &discCachedTitleAccessor, details::ISerializerBase<nn::sl::TitleInfo> &titleInfoSerializer)
207 {
208 Initialize__Q3_2nn2sl14TitleListCacheFiN21RQ3_2nn2sl18ITitleListAccessorRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IInstalledTitleListAccessorRQ3_2nn2sl24IDiscCachedTitleAccessorRQ3_2nn2sl39ISerializer__tm__20_Q3_2nn2sl9TitleInfo(
209 &mInstance, u1, num, u3,
210 titleListAccessor.GetInternal(),
211 launchedTitleListAccessor.GetInternal(),
212 installedTitleListAccessor.GetInternal(),
213 discCachedTitleAccessor.GetInternal(),
214 titleInfoSerializer.GetInternal());
215 mTitleListAccessor = details::TitleListAccessorFromPtr(titleListAccessor.GetInternal());
216 mLaunchedTitleListAccessor = details::LaunchedTitleListAccessorFromPtr(launchedTitleListAccessor.GetInternal());
217 mInstalledTitleListAccessor = details::InstalledTitleListAccessorFromPtr(installedTitleListAccessor.GetInternal());
218 mDiscCachedTitleAccessor = details::DiscCachedTitleAccessorFromPtr(discCachedTitleAccessor.GetInternal());
219 mTitleInfoSerializer = details::SerializerFromPtr<nn::sl::TitleInfo>(titleInfoSerializer.GetInternal());
220 mTimeAccessor = details::TimeAccessorFromPtr(mInstance.timeAccessor);
221 mMetaInfoAccessor = details::MetaInfoAccessorFromPtr(mInstance.metaInfoAccessor);
222 }
223
224 void
225 Initialize(int u1, int num, details::ITitleListAccessorBase &titleListAccessor, details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IInstalledTitleListAccessorBase &installedTitleListAccessor, details::IDiscCachedTitleAccessorBase &discCachedTitleAccessor, details::ISerializerBase<nn::sl::TitleInfo> &titleInfoSerializer)
226 {
227 Initialize__Q3_2nn2sl14TitleListCacheFiT1RQ3_2nn2sl18ITitleListAccessorRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IInstalledTitleListAccessorRQ3_2nn2sl24IDiscCachedTitleAccessorRQ3_2nn2sl39ISerializer__tm__20_Q3_2nn2sl9TitleInfo(
228 &mInstance, u1, num,
229 titleListAccessor.GetInternal(),
230 launchedTitleListAccessor.GetInternal(),
231 installedTitleListAccessor.GetInternal(),
232 discCachedTitleAccessor.GetInternal(),
233 titleInfoSerializer.GetInternal());
234 mTitleListAccessor = details::TitleListAccessorFromPtr(titleListAccessor.GetInternal());
235 mLaunchedTitleListAccessor = details::LaunchedTitleListAccessorFromPtr(launchedTitleListAccessor.GetInternal());
236 mInstalledTitleListAccessor = details::InstalledTitleListAccessorFromPtr(installedTitleListAccessor.GetInternal());
237 mDiscCachedTitleAccessor = details::DiscCachedTitleAccessorFromPtr(discCachedTitleAccessor.GetInternal());
238 mTitleInfoSerializer = details::SerializerFromPtr<nn::sl::TitleInfo>(titleInfoSerializer.GetInternal());
239 mTimeAccessor = details::TimeAccessorFromPtr(mInstance.timeAccessor);
240 mMetaInfoAccessor = details::MetaInfoAccessorFromPtr(mInstance.metaInfoAccessor);
241 }
242
243 void
244 Initialize(int u1, int u2, int u3, details::ITitleListAccessorBase &titleListAccessor, details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IInstalledTitleListAccessorBase &installedTitleListAccessor, details::IDiscCachedTitleAccessorBase &discCachedTitleAccessor, details::ISerializerBase<nn::sl::TitleInfo> &titleInfoSerializer, details::ITimeAccessorBase &timeAccessor, details::IMetaInfoAccessorBase &metaInfoAccessor)
245 {
246
247 Initialize__Q3_2nn2sl14TitleListCacheFiN21RQ3_2nn2sl18ITitleListAccessorRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IInstalledTitleListAccessorRQ3_2nn2sl24IDiscCachedTitleAccessorRQ3_2nn2sl39ISerializer__tm__20_Q3_2nn2sl9TitleInfoRQ3_2nn2sl13ITimeAccessorRQ3_2nn2sl17IMetaInfoAccessor(
248 &mInstance, u1, u2, u3,
249 titleListAccessor.GetInternal(),
250 launchedTitleListAccessor.GetInternal(),
251 installedTitleListAccessor.GetInternal(),
252 discCachedTitleAccessor.GetInternal(),
253 titleInfoSerializer.GetInternal(),
254 timeAccessor.GetInternal(),
255 metaInfoAccessor.GetInternal());
256 mTitleListAccessor = details::TitleListAccessorFromPtr(titleListAccessor.GetInternal());
257 mLaunchedTitleListAccessor = details::LaunchedTitleListAccessorFromPtr(launchedTitleListAccessor.GetInternal());
258 mInstalledTitleListAccessor = details::InstalledTitleListAccessorFromPtr(installedTitleListAccessor.GetInternal());
259 mDiscCachedTitleAccessor = details::DiscCachedTitleAccessorFromPtr(discCachedTitleAccessor.GetInternal());
260 mTitleInfoSerializer = details::SerializerFromPtr<nn::sl::TitleInfo>(titleInfoSerializer.GetInternal());
261 mTimeAccessor = details::TimeAccessorFromPtr(timeAccessor.GetInternal());
262 mMetaInfoAccessor = details::MetaInfoAccessorFromPtr(metaInfoAccessor.GetInternal());
263 }
264
265 void
267 {
268 return Finalize__Q3_2nn2sl14TitleListCacheFv(&mInstance);
269 }
270
272 Load() override
273 {
274 return Load__Q3_2nn2sl14TitleListCacheFv(&mInstance);
275 }
276
278 Update() override
279 {
280 return Update__Q3_2nn2sl14TitleListCacheFv(&mInstance);
281 }
282
284 UpdateIfNeeded() override
285 {
286 return UpdateIfNeeded__Q3_2nn2sl14TitleListCacheFv(&mInstance);
287 }
288
290 Store() override
291 {
292 return Store__Q3_2nn2sl14TitleListCacheFv(&mInstance);
293 }
294
295private:
297 GetInternal() override
298 {
299 return &mInstance;
300 }
301 details::ITitleListCacheInternal mInstance = {};
302
303 details::TitleListAccessorFromPtr mTitleListAccessor;
304 details::LaunchedTitleListAccessorFromPtr mLaunchedTitleListAccessor;
305 details::InstalledTitleListAccessorFromPtr mInstalledTitleListAccessor;
306 details::DiscCachedTitleAccessorFromPtr mDiscCachedTitleAccessor;
307 details::SerializerFromPtr<nn::sl::TitleInfo> mTitleInfoSerializer;
308 details::TimeAccessorFromPtr mTimeAccessor;
309 details::MetaInfoAccessorFromPtr mMetaInfoAccessor;
310};
311
313{
314
315public:
317 mPtrInstance(ptr)
318 {
319 }
320 ~TitleListCacheFromPtr() override = default;
321
323 Load() override
324 {
325 return Load__Q3_2nn2sl14TitleListCacheFv(mPtrInstance);
326 }
327
329 Update() override
330 {
331 return Update__Q3_2nn2sl14TitleListCacheFv(mPtrInstance);
332 }
333
335 UpdateIfNeeded() override
336 {
337 return UpdateIfNeeded__Q3_2nn2sl14TitleListCacheFv(mPtrInstance);
338 }
339
341 Store() override
342 {
343 return Store__Q3_2nn2sl14TitleListCacheFv(mPtrInstance);
344 }
345
346private:
348 GetInternal() override
349 {
350 return mPtrInstance;
351 }
352
353 details::ITitleListCacheInternal *mPtrInstance = {};
354};
355
356details::ITitleListCacheBase &
358} // namespace nn::sl
359
360#endif
Result value type used by nn libraries.
Definition result.h:70
nn::Result UpdateIfNeeded() override
TitleListCacheFromPtr(details::ITitleListCacheInternal *ptr)
nn::Result Load() override
nn::Result Store() override
~TitleListCacheFromPtr() override=default
nn::Result Update() override
void Initialize(int u1, int u2, int u3, details::ITitleListAccessorBase &titleListAccessor, details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IInstalledTitleListAccessorBase &installedTitleListAccessor, details::IDiscCachedTitleAccessorBase &discCachedTitleAccessor, details::ISerializerBase< nn::sl::TitleInfo > &titleInfoSerializer, details::ITimeAccessorBase &timeAccessor, details::IMetaInfoAccessorBase &metaInfoAccessor)
void Initialize(int u1, int num, details::ITitleListAccessorBase &titleListAccessor, details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IInstalledTitleListAccessorBase &installedTitleListAccessor, details::IDiscCachedTitleAccessorBase &discCachedTitleAccessor, details::ISerializerBase< nn::sl::TitleInfo > &titleInfoSerializer)
nn::Result UpdateIfNeeded() override
details::ILaunchedTitleListAccessorBase & GetLaunchedTitleListAccessor()
void Initialize(int u1, int num)
nn::Result Load() override
details::IMetaInfoAccessorBase & GetMetaInfoAccessor()
void Initialize(int u1, int num, int u3, details::ITitleListAccessorBase &titleListAccessor, details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IInstalledTitleListAccessorBase &installedTitleListAccessor, details::IDiscCachedTitleAccessorBase &discCachedTitleAccessor, details::ISerializerBase< nn::sl::TitleInfo > &titleInfoSerializer)
nn::Result Store() override
details::IInstalledTitleListAccessorBase & GetInstalledTitleListAccessor()
details::ISerializerBase< nn::sl::TitleInfo > & GetTitleInfoSerializer()
details::ITimeAccessorBase & GetTimeAccessor()
nn::Result Update() override
details::IDiscCachedTitleAccessorBase & GetDiscCachedTitleAccessor()
details::ITitleListAccessorBase & GetTitleListAccessor()
void Initialize(int u1, int num, int u3)
virtual nn::Result UpdateIfNeeded()=0
ITitleListAccessorInternal * titleListAccessor
void Initialize__Q3_2nn2sl14TitleListCacheFiN21(ITitleListCacheInternal *, int, int, int)
nn::Result Initialize__Q3_2nn2sl14TitleListCacheFiT1(ITitleListCacheInternal *, int, int)
ILaunchedTitleListAccessorInternal * launchedTitleListAccessor
IMetaInfoAccessorInternal * metaInfoAccessor
IDiscCachedTitleAccessorInternal * discCachedTitleAccessor
nn::Result UpdateIfNeeded__Q3_2nn2sl14TitleListCacheFv(ITitleListCacheInternal *)
void Initialize__Q3_2nn2sl14TitleListCacheFiN21RQ3_2nn2sl18ITitleListAccessorRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IInstalledTitleListAccessorRQ3_2nn2sl24IDiscCachedTitleAccessorRQ3_2nn2sl39ISerializer__tm__20_Q3_2nn2sl9TitleInfoRQ3_2nn2sl13ITimeAccessorRQ3_2nn2sl17IMetaInfoAccessor(ITitleListCacheInternal *, int, int, int, ITitleListAccessorInternal *, ILaunchedTitleListAccessorInternal *, IInstalledTitleListAccessorInternal *, IDiscCachedTitleAccessorInternal *, ISerializerInternal *, ITimeAccessorInternal *, IMetaInfoAccessorInternal *)
ITitleListCacheInternal * __ct__Q3_2nn2sl14TitleListCacheFv(ITitleListCacheInternal *)
void Initialize__Q3_2nn2sl14TitleListCacheFiT1RQ3_2nn2sl18ITitleListAccessorRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IInstalledTitleListAccessorRQ3_2nn2sl24IDiscCachedTitleAccessorRQ3_2nn2sl39ISerializer__tm__20_Q3_2nn2sl9TitleInfo(ITitleListCacheInternal *, int, int, ITitleListAccessorInternal *, ILaunchedTitleListAccessorInternal *, IInstalledTitleListAccessorInternal *, IDiscCachedTitleAccessorInternal *, ISerializerInternal *)
nn::Result Load__Q3_2nn2sl14TitleListCacheFv(ITitleListCacheInternal *)
struct nn::sl::details::ITitleListCacheInternal TitleListCacheInternal
nn::Result Update__Q3_2nn2sl14TitleListCacheFv(ITitleListCacheInternal *)
void Initialize__Q3_2nn2sl14TitleListCacheFiN21RQ3_2nn2sl18ITitleListAccessorRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IInstalledTitleListAccessorRQ3_2nn2sl24IDiscCachedTitleAccessorRQ3_2nn2sl39ISerializer__tm__20_Q3_2nn2sl9TitleInfo(ITitleListCacheInternal *, int, int, int, ITitleListAccessorInternal *, ILaunchedTitleListAccessorInternal *, IInstalledTitleListAccessorInternal *, IDiscCachedTitleAccessorInternal *, ISerializerInternal *)
IInstalledTitleListAccessorInternal * installedTitleListAccessor
nn::Result Store__Q3_2nn2sl14TitleListCacheFv(ITitleListCacheInternal *)
void Finalize__Q3_2nn2sl14TitleListCacheFv(ITitleListCacheInternal *)
details::ITitleListCacheBase & GetDefaultTitleListCache()