wut v1.9.1
Wii U Toolchain
Loading...
Searching...
No Matches
KillerNotificationTransferRecordManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <wut.h>
4#include <nn/result.h>
5#include <nn/sl/FileStream.h>
7
8#ifdef __cplusplus
9
10namespace nn::sl
11{
13{
14
15public:
17 {
18 InitInternalVtable();
19 }
20
25
28 {
29 InitInternalVtable();
30 return *this;
31 }
32
35 {
36 InitInternalVtable();
37 return *this;
38 }
39
41
42private:
43 static nn::Result
45 {
46 return instance->vtable->instance->Load(*stream->vtable->instance);
47 }
48
49 static nn::Result
51 {
52 return instance->vtable->instance->LoadInitial();
53 }
54
55 static nn::Result
56 StoreWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, nn::sl::details::IStreamInternal *stream)
57 {
58 return instance->vtable->instance->Store(*stream->vtable->instance);
59 }
60
61 static uint32_t
62 GetRecordCountWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance)
63 {
64 return instance->vtable->instance->GetRecordCount();
65 }
66
67 static uint32_t
68 GetRecordsWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, KillerNotificationTransferRecord *u1, uint32_t u2)
69 {
70 return instance->vtable->instance->GetRecords(u1, u2);
71 }
72
73 static void
74 RegisterRecordsWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, const KillerNotificationTransferRecord *u1, uint32_t u2)
75 {
76 return instance->vtable->instance->RegisterRecords(u1, u2);
77 }
78
79 static nn::Result
80 RegisterRecordsOtherWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, const uint32_t *u1, uint32_t u2)
81 {
82 return instance->vtable->instance->RegisterRecords(u1, u2);
83 }
84
85 details::IKillerNotificationTransferRecordManagerInternal *
86 GetInternal() override
87 {
88 return &mInstance;
89 }
90
91 void
92 InitInternalVtable()
93 {
94 mVTable = {.instance = this,
95 .LoadFn = &LoadWrapper,
96 .LoadInitialFn = &LoadInitialWrapper,
97 .StoreFn = &StoreWrapper,
98 .GetRecordsFn = &GetRecordsWrapper,
99 .RegisterRecordsFn = &RegisterRecordsWrapper,
100 .RegisterRecordsOtherFn = &RegisterRecordsOtherWrapper};
101 mInstance.vtable = &mVTable;
102 }
103
104 details::IKillerNotificationTransferRecordManagerInternal mInstance{};
105 details::IKillerNotificationTransferRecordManagerInternalVTable mVTable{};
106};
107
109{
110public:
112 {
113 __ct__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance);
114 }
115
117 {
118 __dt__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance, 2);
119 }
120
121 void
122 Finalize() override
123 {
124 Finalize__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance);
125 }
126
129 {
130 return Load__Q3_2nn2sl39KillerNotificationTransferRecordManagerFRQ3_2nn2sl7IStream(&mInstance, stream.GetInternal());
131 }
132
134 LoadInitial() override
135 {
136 return LoadInitial__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance);
137 }
138
141 {
142 return Store__Q3_2nn2sl39KillerNotificationTransferRecordManagerCFRQ3_2nn2sl7IStream(&mInstance, stream.GetInternal());
143 }
144
145 uint32_t
146 GetRecordCount() const override
147 {
148 return GetRecordCount__Q3_2nn2sl39KillerNotificationTransferRecordManagerCFv((details::IKillerNotificationTransferRecordManagerInternal *)&mInstance);
149 }
150
151 uint32_t
152 GetRecords(KillerNotificationTransferRecord *u1, uint32_t u2) const override
153 {
154 return GetRecords__Q3_2nn2sl39KillerNotificationTransferRecordManagerCFPQ3_2nn2sl32KillerNotificationTransferRecordUi((details::IKillerNotificationTransferRecordManagerInternal *)&mInstance, u1, u2);
155 }
156
157 void
158 RegisterRecords(const KillerNotificationTransferRecord *u1, uint32_t u2) override
159 {
160 RegisterRecords__Q3_2nn2sl39KillerNotificationTransferRecordManagerFPCQ3_2nn2sl32KillerNotificationTransferRecordUi(&mInstance, u1, u2);
161 }
162
164 RegisterRecords(const uint32_t *u1, uint32_t u2) override
165 {
166 return mInstance.vtable->RegisterRecordsOtherFn(&mInstance, u1, u2);
167 }
168
169private:
171 GetInternal() override
172 {
173 return &mInstance;
174 }
175 details::IKillerNotificationTransferRecordManagerInternal mInstance = {};
176};
177
179{
180public:
182 {
183 __ct__Q3_2nn2sl47KillerNotificationTransferRecordManagerInternalFv(&mInstance);
184 }
185
187 {
188 __dt__Q3_2nn2sl47KillerNotificationTransferRecordManagerInternalFv(&mInstance, 2);
189 }
190
193 {
194 auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
195 return mInstance.vtable->LoadFn(base, stream.GetInternal());
196 }
197
199 LoadInitial() override
200 {
201 auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
202 return mInstance.vtable->LoadInitialFn(base);
203 }
204
207 {
208 auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
209 return mInstance.vtable->StoreFn(base, stream.GetInternal());
210 }
211
212 void
213 Finalize() override
214 {
215 auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
216 return mInstance.vtable->FinalizeFn(base);
217 }
218
219 uint32_t
220 GetRecordCount() const override
221 {
223 return mInstance.vtable->GetRecordCountFn(base);
224 }
225
226 uint32_t
227 GetRecords(KillerNotificationTransferRecord *u1, uint32_t u2) const override
228 {
230 return mInstance.vtable->GetRecordsFn(base, u1, u2);
231 }
232
233 void
234 RegisterRecords(const KillerNotificationTransferRecord *u1, uint32_t u2) override
235 {
236 auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
237 return mInstance.vtable->RegisterRecordsFn(base, u1, u2);
238 }
239
241 RegisterRecords(const uint32_t *u1, uint32_t u2) override
242 {
243 auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
244 return mInstance.vtable->RegisterRecordsOtherFn(base, u1, u2);
245 }
246
247private:
249};
250
251details::IKillerNotificationTransferRecordManagerBase &
253} // namespace nn::sl
254
255#endif
Result value type used by nn libraries.
Definition result.h:70
IKillerNotificationTransferRecordManager & operator=(const IKillerNotificationTransferRecordManager &other)
IKillerNotificationTransferRecordManager & operator=(IKillerNotificationTransferRecordManager &&src) noexcept
IKillerNotificationTransferRecordManager(IKillerNotificationTransferRecordManager &src)
nn::Result Load(nn::sl::details::IStreamBase &stream) override
nn::Result RegisterRecords(const uint32_t *u1, uint32_t u2) override
void RegisterRecords(const KillerNotificationTransferRecord *u1, uint32_t u2) override
uint32_t GetRecords(KillerNotificationTransferRecord *u1, uint32_t u2) const override
nn::Result Store(nn::sl::details::IStreamBase &stream) override
nn::Result Load(nn::sl::details::IStreamBase &stream) override
nn::Result RegisterRecords(const uint32_t *u1, uint32_t u2) override
void RegisterRecords(const KillerNotificationTransferRecord *u1, uint32_t u2) override
uint32_t GetRecords(KillerNotificationTransferRecord *u1, uint32_t u2) const override
nn::Result Store(nn::sl::details::IStreamBase &stream) override
virtual nn::Result Load(nn::sl::details::IStreamBase &stream)=0
IKillerNotificationTransferRecordManagerInternVTable_RegisterRecordsFn RegisterRecordsFn
IKillerNotificationTransferRecordManagerInternVTable_GetRecordCountFn GetRecordCountFn
IStreamInternalVTable * vtable
IKillerNotificationTransferRecordManagerInternVTable_RegisterRecordsOtherFn RegisterRecordsOtherFn
details::IKillerNotificationTransferRecordManagerBase & GetDefaultKillerNotificationTransferRecordManager()