wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
ITitleIconCache.h
Go to the documentation of this file.
1#pragma once
2
3#include <nn/result.h>
5#include <nn/sl/sl_cpp.h>
6#include <wut.h>
7
8#ifdef __cplusplus
9
10namespace nn::sl {
11
13
14 public:
16 InitInternalVtable();
17 }
18
20 InitInternalVtable();
21 }
22
24 InitInternalVtable();
25 return *this;
26 }
27
29 InitInternalVtable();
30 return *this;
31 }
32
33 ~ITitleIconCache() override = default;
34
35 private:
36 static nn::Result LoadWrapper(details::ITitleIconCacheInternal *instance) {
37 return instance->vtable->instance->Load();
38 }
39
40 static nn::Result UpdateWrapper(details::ITitleIconCacheInternal *instance, TitleInfo *titleInfos, int num) {
41 return instance->vtable->instance->Update(titleInfos, num);
42 }
43
44 static nn::Result StoreWrapper(details::ITitleIconCacheInternal *instance) {
45 return instance->vtable->instance->Store();
46 }
47
48 static void GetWrapper(details::ITitleIconCacheInternal *instance, IconInfo *iconInfos, int num) {
49 return instance->vtable->instance->Get(iconInfos, num);
50 }
51
52 details::ITitleIconCacheInternal *GetInternal() override {
53 return &mInstance;
54 }
55
56 void InitInternalVtable() {
57 mVTable = {.instance = this,
58 .LoadFn = &LoadWrapper,
59 .UpdateFn = &UpdateWrapper,
60 .StoreFn = &StoreWrapper,
61 .GetFn = &GetWrapper};
62 mInstance.vtable = &mVTable;
63 }
64
65 details::ITitleIconCacheInternal mInstance{};
66 details::ITitleIconCacheInternalVTable mVTable{};
67 };
68
70} // namespace nn::sl
71
72#endif
Result value type used by nn libraries.
Definition result.h:68
ITitleIconCache(ITitleIconCache &src)
ITitleIconCache & operator=(ITitleIconCache &&src) noexcept
ITitleIconCache & operator=(const ITitleIconCache &other)
~ITitleIconCache() override=default
virtual nn::Result Update(nn::sl::TitleInfo *titleInfos, int num)=0
details::ITitleIconCacheBase & GetDefaultTitleIconCache()