wut v1.9.1
Wii U Toolchain
Loading...
Searching...
No Matches
Condition.h
Go to the documentation of this file.
1#pragma once
2
3#include <wut.h>
4#include <coreinit/time.h>
5#include <nn/result.h>
10
11#ifdef __cplusplus
12
13namespace nn::sl
14{
15namespace details
16{
25WUT_CHECK_SIZE(ConditionInternal, 0x14);
26WUT_CHECK_OFFSET(ConditionInternal, 0x00, settingAccessor);
27WUT_CHECK_OFFSET(ConditionInternal, 0x04, updatePackageAccessor);
28WUT_CHECK_OFFSET(ConditionInternal, 0x08, previousSendingTimeSerializer);
29WUT_CHECK_OFFSET(ConditionInternal, 0x0C, timeAccessor);
30WUT_CHECK_OFFSET(ConditionInternal, 0x10, vtable);
31
32extern "C" ConditionInternal *
34extern "C" nn::Result
36extern "C" nn::Result
38extern "C" nn::Result
40extern "C" nn::Result
42extern "C" void
48} // namespace details
49
51{
52public:
54 mSettingAccessor(nullptr),
55 mUpdatePackageAccessor(nullptr),
56 mPreviousSendingTimeSerializer(nullptr),
57 mTimeAccessor(nullptr)
58 {
59 if (__ct__Q3_2nn2sl9ConditionFv(&mInstance) != nullptr) {
60 mSettingAccessor = details::SettingAccessorFromPtr(mInstance.settingAccessor);
61 mUpdatePackageAccessor = details::UpdatePackageAccessorFromPtr(mInstance.updatePackageAccessor);
62 mPreviousSendingTimeSerializer = details::SerializerFromPtr<OSTime>(mInstance.previousSendingTimeSerializer);
63 mTimeAccessor = details::TimeAccessorFromPtr(mInstance.timeAccessor);
64 }
65 }
66
67 ~Condition() = default;
68
69 [[nodiscard]] details::ISettingAccessorBase &
71 {
72 return mSettingAccessor;
73 }
74
77 {
78 return mUpdatePackageAccessor;
79 }
80
83 {
84 return mPreviousSendingTimeSerializer;
85 }
86
87 [[nodiscard]] details::ITimeAccessorBase &
89 {
90 return mTimeAccessor;
91 }
92
95 {
96 return GetEnability__Q3_2nn2sl9ConditionCFv(&mInstance);
97 }
98
101 {
102 return NeedsUpdate__Q3_2nn2sl9ConditionCFv(&mInstance);
103 }
104
107 {
108 return StoreCurrentTimeAsPreviousSendingTime__Q3_2nn2sl9ConditionCFv(&mInstance);
109 }
110
112 GetPreviousSendingTime(int64_t *outTime)
113 {
114 return GetPreviousSendingTime__Q3_2nn2sl9ConditionCFPL(&mInstance, outTime);
115 }
116
117 void
119 details::IUpdatePackageAccessorBase &updatePackageAccessor,
120 details::ISerializerBase<OSTime> &previousSendingTimeSerializer,
121 details::ITimeAccessorBase &timeAccessor)
122 {
123 Initialize__Q3_2nn2sl9ConditionFRQ3_2nn2sl16ISettingAccessorRQ3_2nn2sl22IUpdatePackageAccessorRQ3_2nn2sl20ISerializer__tm__2_LRQ3_2nn2sl13ITimeAccessor(
124 &mInstance,
125 settingAccessor.GetInternal(),
126 updatePackageAccessor.GetInternal(),
127 previousSendingTimeSerializer.GetInternal(),
128 timeAccessor.GetInternal());
129 mSettingAccessor = details::SettingAccessorFromPtr(settingAccessor.GetInternal());
130 mUpdatePackageAccessor = details::UpdatePackageAccessorFromPtr(updatePackageAccessor.GetInternal());
131 mPreviousSendingTimeSerializer = details::SerializerFromPtr<OSTime>(previousSendingTimeSerializer.GetInternal());
132 mTimeAccessor = details::TimeAccessorFromPtr(timeAccessor.GetInternal());
133 }
134
135private:
136 details::ConditionInternal mInstance = {};
137 details::SettingAccessorFromPtr mSettingAccessor;
138 details::UpdatePackageAccessorFromPtr mUpdatePackageAccessor;
139 details::SerializerFromPtr<OSTime> mPreviousSendingTimeSerializer;
140 details::TimeAccessorFromPtr mTimeAccessor;
141};
142
143} // namespace nn::sl
144
145#endif
Result value type used by nn libraries.
Definition result.h:70
void Initialize(details::ISettingAccessorBase &settingAccessor, details::IUpdatePackageAccessorBase &updatePackageAccessor, details::ISerializerBase< OSTime > &previousSendingTimeSerializer, details::ITimeAccessorBase &timeAccessor)
Definition Condition.h:118
details::IUpdatePackageAccessorBase & GetUpdatePackageAccessor()
Definition Condition.h:76
nn::Result GetPreviousSendingTime(int64_t *outTime)
Definition Condition.h:112
~Condition()=default
details::ITimeAccessorBase & GetTimeAccessor()
Definition Condition.h:88
nn::Result GetEnability()
Definition Condition.h:94
nn::Result NeedsUpdate()
Definition Condition.h:100
nn::Result StoreCurrentTimeAsPreviousSendingTime()
Definition Condition.h:106
details::ISerializerBase< OSTime > & GetPreviousSendingTimeSerializer()
Definition Condition.h:82
details::ISettingAccessorBase & GetSettingAccessor()
Definition Condition.h:70
ISerializerInternal * previousSendingTimeSerializer
Definition Condition.h:21
nn::Result StoreCurrentTimeAsPreviousSendingTime__Q3_2nn2sl9ConditionCFv(ConditionInternal *)
nn::Result GetPreviousSendingTime__Q3_2nn2sl9ConditionCFPL(ConditionInternal *, int64_t *outTime)
void Initialize__Q3_2nn2sl9ConditionFRQ3_2nn2sl16ISettingAccessorRQ3_2nn2sl22IUpdatePackageAccessorRQ3_2nn2sl20ISerializer__tm__2_LRQ3_2nn2sl13ITimeAccessor(ConditionInternal *, ISettingAccessorInternal *, IUpdatePackageAccessorInternal *, ISerializerInternal *, ITimeAccessorInternal *)
nn::Result NeedsUpdate__Q3_2nn2sl9ConditionCFv(ConditionInternal *)
ISettingAccessorInternal * settingAccessor
Definition Condition.h:19
nn::Result GetEnability__Q3_2nn2sl9ConditionCFv(ConditionInternal *)
IUpdatePackageAccessorInternal * updatePackageAccessor
Definition Condition.h:20
ConditionInternal * __ct__Q3_2nn2sl9ConditionFv(ConditionInternal *)
ITimeAccessorInternal * timeAccessor
Definition Condition.h:22