wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
ITitleIconCacheDetails.h
Go to the documentation of this file.
1#pragma once
2
3#include <nn/result.h>
4#include <nn/sl/sl_cpp.h>
5#include <wut.h>
6
7#ifdef __cplusplus
8
9namespace nn::sl {
10 class DataCreator;
11 namespace details {
12 class ITitleIconCacheBase;
14
15 struct WUT_PACKED ITitleIconCacheInternal;
16
21
36 WUT_CHECK_SIZE(ITitleIconCacheInternalVTable, 0x30);
37 WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x14, LoadFn);
38 WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x1c, UpdateFn);
39 WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x24, StoreFn);
40 WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x2C, GetFn);
41
45 WUT_CHECK_SIZE(ITitleIconCacheInternal, 0x04);
46 WUT_CHECK_OFFSET(ITitleIconCacheInternal, 0x00, vtable);
47
49 friend class nn::sl::DataCreator;
50
51 public:
53
54 virtual ~ITitleIconCacheBase() = default;
55
56 virtual nn::Result Load() = 0;
57
59
60 virtual nn::Result Store() = 0;
61
62 virtual void Get(nn::sl::IconInfo *iconInfos, int num) const = 0;
63
64 private:
65 virtual details::ITitleIconCacheInternal *GetInternal() = 0;
66 };
67
69 public:
70 explicit TitleIconCacheFromPtr(details::ITitleIconCacheInternal *ptr) : mInstancePtr(ptr) {
71 }
72 nn::Result Load() override {
73 if (!mInstancePtr) {
75 }
76 return mInstancePtr->vtable->LoadFn(mInstancePtr);
77 }
78
80 if (!mInstancePtr) {
82 }
83 return mInstancePtr->vtable->UpdateFn(mInstancePtr, titleInfos, num);
84 }
85
86 nn::Result Store() override {
87 if (!mInstancePtr) {
89 }
90 return mInstancePtr->vtable->StoreFn(mInstancePtr);
91 }
92
93 void Get(nn::sl::IconInfo *iconInfos, int num) const override {
94 if (!mInstancePtr) {
95 return;
96 }
97 mInstancePtr->vtable->GetFn(mInstancePtr, iconInfos, num);
98 }
99
100 private:
101 details::ITitleIconCacheInternal *GetInternal() override {
102 return mInstancePtr;
103 }
104
106 };
107 } // namespace details
108
109
110} // namespace nn::sl
111
112#endif
Result value type used by nn libraries.
Definition result.h:68
@ LEVEL_FATAL
Definition result.h:73
@ RESULT_MODULE_NN_SL
Definition result.h:114
virtual nn::Result Update(nn::sl::TitleInfo *titleInfos, int num)=0
virtual void Get(nn::sl::IconInfo *iconInfos, int num) const =0
TitleIconCacheFromPtr(details::ITitleIconCacheInternal *ptr)
void Get(nn::sl::IconInfo *iconInfos, int num) const override
nn::Result Update(nn::sl::TitleInfo *titleInfos, int num) override
struct nn::sl::details::ITitleIconCacheInternal ITitleIconCacheInternal
void(* TitleIconCache_GetFn)(ITitleIconCacheInternal *, IconInfo *, int)
nn::Result(* TitleIconCache_UpdateFn)(ITitleIconCacheInternal *, TitleInfo *, int)
nn::Result(* TitleIconCache_LoadFn)(ITitleIconCacheInternal *)
nn::Result(* TitleIconCache_StoreFn)(ITitleIconCacheInternal *)