wut  v1.7.0
Wii U Toolchain
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 
10 namespace 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 
67  };
68 
70 } // namespace nn::sl
71 
72 #endif
Result value type used by nn libraries.
Definition: result.h:68
ITitleIconCache & operator=(ITitleIconCache &&src) noexcept
ITitleIconCache(ITitleIconCache &src)
~ITitleIconCache() override=default
ITitleIconCache & operator=(const ITitleIconCache &other)
virtual nn::Result Update(nn::sl::TitleInfo *titleInfos, int num)=0
struct nn::sl::details::ITitleIconCacheInternal ITitleIconCacheInternal
struct nn::sl::details::ITitleIconCacheInternalVTable ITitleIconCacheInternalVTable
ITitleIconCacheInternalVTable * vtable
details::ITitleIconCacheBase & GetDefaultTitleIconCache()