wut  v1.7.0
Wii U Toolchain
KillerNotificationSelector.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <nn/result.h>
7 #include <nn/sl/ISerializer.h>
9 #include <nn/sl/ITimeAccessor.h>
12 #include <nn/sl/TitleListCache.h>
13 #include <nn/sl/sl_cpp.h>
14 #include <wut.h>
15 
16 #ifdef __cplusplus
17 
18 namespace nn::sl {
19  namespace details {
20  typedef struct WUT_PACKED KillerNotificationSelectorInternal {
29  void *vtable;
31  WUT_CHECK_SIZE(KillerNotificationSelectorInternal, 0x24);
32  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x00, launchedTitleListAccessor);
33  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x04, killerNotificationAccessor);
34  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x08, titleListCache);
35  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x0C, killerNotificationSerializer);
36  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x10, settingsAccessor);
37  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x14, accountInfoAccessor);
38  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x18, timeAccessor);
39  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x1C, killerNotificationTransferRecordManager);
40  WUT_CHECK_OFFSET(KillerNotificationSelectorInternal, 0x20, vtable);
41 
55  } // namespace details
56 
58  public:
59  KillerNotificationSelector() : mLaunchedTitleListAccessor(nullptr),
60  mKillerNotificationAccessor(nullptr),
61  mTitleListCache(nullptr),
62  mKillerNotificationSerializer(nullptr),
63  mSettingAccessor(nullptr),
64  mAccountInfoAccessor(nullptr),
65  mTimeAccessor(nullptr),
66  mKillerNotificationTransferRecordManager(nullptr) {
67  if (__ct__Q3_2nn2sl26KillerNotificationSelectorFv(&mInstance) != nullptr) {
68  mLaunchedTitleListAccessor = details::LaunchedTitleListAccessorFromPtr(mInstance.launchedTitleListAccessor);
69  mKillerNotificationAccessor = details::KillerNotificationAccessorFromPtr(mInstance.killerNotificationAccessor);
70  mTitleListCache = TitleListCacheFromPtr(mInstance.titleListCache);
71  mKillerNotificationSerializer = details::SerializerFromPtr<KillerNotification>(mInstance.killerNotificationSerializer);
72  mSettingAccessor = details::SettingAccessorFromPtr(mInstance.settingsAccessor);
73  mAccountInfoAccessor = details::AccountInfoAccessorFromPtr(mInstance.accountInfoAccessor);
74  mTimeAccessor = details::TimeAccessorFromPtr(mInstance.timeAccessor);
76  }
77  }
78 
81  }
82 
84  return mLaunchedTitleListAccessor;
85  }
86 
88  return mKillerNotificationAccessor;
89  }
90 
92  return mTitleListCache;
93  }
94 
96  return mKillerNotificationSerializer;
97  }
98 
100  return mSettingAccessor;
101  }
102 
104  return mAccountInfoAccessor;
105  }
106 
108  return mTimeAccessor;
109  }
110 
112  return mKillerNotificationTransferRecordManager;
113  }
114 
115  nn::Result Select(KillerNotification *outKillerNotification, TitleInfo *outKillerNotificationTitle, bool *u1) {
116  return Select__Q3_2nn2sl26KillerNotificationSelectorFPQ3_2nn2sl18KillerNotificationPQ3_2nn2sl9TitleInfoPb(&mInstance, outKillerNotification, outKillerNotificationTitle, u1);
117  }
118 
119  void Initialize(details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor,
120  details::IKillerNotificationAccessorBase &killerNotificationAccessor,
121  details::ITitleListCacheBase &titleListCache,
122  details::ISerializerBase<KillerNotification> &killerNotificationSerializer,
123  details::ISettingAccessorBase &settingAccessor,
124  details::IAccountInfoAccessorBase &accountInfoAccessor,
125  details::ITimeAccessorBase &timeAccessor,
126  details::IKillerNotificationTransferRecordManagerBase &killerNotificationTransferRecordManager) {
128  &mInstance,
129  launchedTitleListAccessor.GetInternal(),
130  killerNotificationAccessor.GetInternal(),
131  titleListCache.GetInternal(),
132  killerNotificationSerializer.GetInternal(),
133  settingAccessor.GetInternal(),
134  accountInfoAccessor.GetInternal(),
135  timeAccessor.GetInternal(),
136  killerNotificationTransferRecordManager.GetInternal());
137 
138  mLaunchedTitleListAccessor = details::LaunchedTitleListAccessorFromPtr(launchedTitleListAccessor.GetInternal());
139  mKillerNotificationAccessor = details::KillerNotificationAccessorFromPtr(killerNotificationAccessor.GetInternal());
140  mTitleListCache = TitleListCacheFromPtr(titleListCache.GetInternal());
141  mKillerNotificationSerializer = details::SerializerFromPtr<KillerNotification>(killerNotificationSerializer.GetInternal());
142  mSettingAccessor = details::SettingAccessorFromPtr(settingAccessor.GetInternal());
143  mAccountInfoAccessor = details::AccountInfoAccessorFromPtr(accountInfoAccessor.GetInternal());
144  mTimeAccessor = details::TimeAccessorFromPtr(timeAccessor.GetInternal());
145  mKillerNotificationTransferRecordManager = details::KillerNotificationTransferRecordManagerFromPtr(killerNotificationTransferRecordManager.GetInternal());
146  }
147 
148  private:
150 
151  details::LaunchedTitleListAccessorFromPtr mLaunchedTitleListAccessor;
152  details::KillerNotificationAccessorFromPtr mKillerNotificationAccessor;
153  TitleListCacheFromPtr mTitleListCache;
154  details::SerializerFromPtr<KillerNotification> mKillerNotificationSerializer;
155  details::SettingAccessorFromPtr mSettingAccessor;
156  details::AccountInfoAccessorFromPtr mAccountInfoAccessor;
157  details::TimeAccessorFromPtr mTimeAccessor;
158  details::KillerNotificationTransferRecordManagerFromPtr mKillerNotificationTransferRecordManager;
159  };
160 } // namespace nn::sl
161 
162 #endif
Result value type used by nn libraries.
Definition: result.h:68
nn::Result Select(KillerNotification *outKillerNotification, TitleInfo *outKillerNotificationTitle, bool *u1)
details::ITimeAccessorBase & GetTimeAccessor()
details::ISettingAccessorBase & GetSettingAccessor()
details::ISerializerBase< KillerNotification > & GetKillerNotificationSerializer()
details::IAccountInfoAccessorBase & GetAccountInfoAccessor()
details::ILaunchedTitleListAccessorBase & GetLaunchedTitleListAccessor()
void Initialize(details::ILaunchedTitleListAccessorBase &launchedTitleListAccessor, details::IKillerNotificationAccessorBase &killerNotificationAccessor, details::ITitleListCacheBase &titleListCache, details::ISerializerBase< KillerNotification > &killerNotificationSerializer, details::ISettingAccessorBase &settingAccessor, details::IAccountInfoAccessorBase &accountInfoAccessor, details::ITimeAccessorBase &timeAccessor, details::IKillerNotificationTransferRecordManagerBase &killerNotificationTransferRecordManager)
details::IKillerNotificationTransferRecordManagerBase & GetKillerNotificationTransferRecordManager()
details::ITitleListCacheBase & GetTitleListCache()
details::IKillerNotificationAccessorBase & GetKillerNotificationAccessor()
struct nn::sl::details::KillerNotificationSelectorInternal KillerNotificationSelectorInternal
ILaunchedTitleListAccessorInternal * launchedTitleListAccessor
nn::Result Select__Q3_2nn2sl26KillerNotificationSelectorFPQ3_2nn2sl18KillerNotificationPQ3_2nn2sl9TitleInfoPb(KillerNotificationSelectorInternal *, KillerNotification *, TitleInfo *, bool *)
KillerNotificationSelectorInternal * __ct__Q3_2nn2sl26KillerNotificationSelectorFv(KillerNotificationSelectorInternal *)
void __dt__Q3_2nn2sl26KillerNotificationSelectorFv(KillerNotificationSelectorInternal *, int)
void Initialize__Q3_2nn2sl26KillerNotificationSelectorFRQ3_2nn2sl26ILaunchedTitleListAccessorRQ3_2nn2sl27IKillerNotificationAccessorRQ3_2nn2sl14TitleListCacheRQ3_2nn2sl49ISerializer__tm__30_Q3_2nn2sl18KillerNotificationRQ3_2nn2sl16ISettingAccessorRQ3_2nn2sl20IAccountInfoAccessorRQ3_2nn2sl13ITimeAccessorRQ3_2nn2sl40IKillerNotificationTransferRecordManager(KillerNotificationSelectorInternal *, ILaunchedTitleListAccessorInternal *, IKillerNotificationAccessorInternal *, ITitleListCacheInternal *, ISerializerInternal *, ISettingAccessorInternal *, IAccountInfoAccessorInternal *, ITimeAccessorInternal *, IKillerNotificationTransferRecordManagerInternal *)
IKillerNotificationTransferRecordManagerInternal * killerNotificationTransferRecordManager
IKillerNotificationAccessorInternal * killerNotificationAccessor