wut/include/nn/sl/KillerNotificationTransferRecordManager.h
GaryOderNichts 2c98cc91aa
Some checks failed
C/C++ CI / ubuntu-latest (push) Has been cancelled
Run clang-format
`find . -regex '.*\.\(cpp\|hpp\|cu\|cuh\|c\|h\)' -exec clang-format -style=file -i {} \;`
2025-06-05 11:06:04 +01:00

255 lines
8.0 KiB
C++

#pragma once
#include <wut.h>
#include <nn/result.h>
#include <nn/sl/FileStream.h>
#include <nn/sl/details/IKillerNotificationTransferRecordManagerDetails.h>
#ifdef __cplusplus
namespace nn::sl
{
class IKillerNotificationTransferRecordManager : public details::IKillerNotificationTransferRecordManagerBase
{
public:
IKillerNotificationTransferRecordManager()
{
InitInternalVtable();
}
IKillerNotificationTransferRecordManager(IKillerNotificationTransferRecordManager &src)
{
InitInternalVtable();
}
IKillerNotificationTransferRecordManager &
operator=(const IKillerNotificationTransferRecordManager &other)
{
InitInternalVtable();
return *this;
}
IKillerNotificationTransferRecordManager &
operator=(IKillerNotificationTransferRecordManager &&src) noexcept
{
InitInternalVtable();
return *this;
}
~IKillerNotificationTransferRecordManager() override = default;
private:
static nn::Result
LoadWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, nn::sl::details::IStreamInternal *stream)
{
return instance->vtable->instance->Load(*stream->vtable->instance);
}
static nn::Result
LoadInitialWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance)
{
return instance->vtable->instance->LoadInitial();
}
static nn::Result
StoreWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, nn::sl::details::IStreamInternal *stream)
{
return instance->vtable->instance->Store(*stream->vtable->instance);
}
static uint32_t
GetRecordCountWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance)
{
return instance->vtable->instance->GetRecordCount();
}
static uint32_t
GetRecordsWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, KillerNotificationTransferRecord *u1, uint32_t u2)
{
return instance->vtable->instance->GetRecords(u1, u2);
}
static void
RegisterRecordsWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, const KillerNotificationTransferRecord *u1, uint32_t u2)
{
return instance->vtable->instance->RegisterRecords(u1, u2);
}
static nn::Result
RegisterRecordsOtherWrapper(details::IKillerNotificationTransferRecordManagerInternal *instance, const uint32_t *u1, uint32_t u2)
{
return instance->vtable->instance->RegisterRecords(u1, u2);
}
details::IKillerNotificationTransferRecordManagerInternal *
GetInternal() override
{
return &mInstance;
}
void
InitInternalVtable()
{
mVTable = {.instance = this,
.LoadFn = &LoadWrapper,
.LoadInitialFn = &LoadInitialWrapper,
.StoreFn = &StoreWrapper,
.GetRecordsFn = &GetRecordsWrapper,
.RegisterRecordsFn = &RegisterRecordsWrapper,
.RegisterRecordsOtherFn = &RegisterRecordsOtherWrapper};
mInstance.vtable = &mVTable;
}
details::IKillerNotificationTransferRecordManagerInternal mInstance{};
details::IKillerNotificationTransferRecordManagerInternalVTable mVTable{};
};
class KillerNotificationTransferRecordManager : public details::IKillerNotificationTransferRecordManagerBase
{
public:
KillerNotificationTransferRecordManager()
{
__ct__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance);
}
~KillerNotificationTransferRecordManager() override
{
__dt__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance, 2);
}
void
Finalize() override
{
Finalize__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance);
}
nn::Result
Load(nn::sl::details::IStreamBase &stream) override
{
return Load__Q3_2nn2sl39KillerNotificationTransferRecordManagerFRQ3_2nn2sl7IStream(&mInstance, stream.GetInternal());
}
nn::Result
LoadInitial() override
{
return LoadInitial__Q3_2nn2sl39KillerNotificationTransferRecordManagerFv(&mInstance);
}
nn::Result
Store(nn::sl::details::IStreamBase &stream) override
{
return Store__Q3_2nn2sl39KillerNotificationTransferRecordManagerCFRQ3_2nn2sl7IStream(&mInstance, stream.GetInternal());
}
uint32_t
GetRecordCount() const override
{
return GetRecordCount__Q3_2nn2sl39KillerNotificationTransferRecordManagerCFv((details::IKillerNotificationTransferRecordManagerInternal *)&mInstance);
}
uint32_t
GetRecords(KillerNotificationTransferRecord *u1, uint32_t u2) const override
{
return GetRecords__Q3_2nn2sl39KillerNotificationTransferRecordManagerCFPQ3_2nn2sl32KillerNotificationTransferRecordUi((details::IKillerNotificationTransferRecordManagerInternal *)&mInstance, u1, u2);
}
void
RegisterRecords(const KillerNotificationTransferRecord *u1, uint32_t u2) override
{
RegisterRecords__Q3_2nn2sl39KillerNotificationTransferRecordManagerFPCQ3_2nn2sl32KillerNotificationTransferRecordUi(&mInstance, u1, u2);
}
nn::Result
RegisterRecords(const uint32_t *u1, uint32_t u2) override
{
return mInstance.vtable->RegisterRecordsOtherFn(&mInstance, u1, u2);
}
private:
details::IKillerNotificationTransferRecordManagerInternal *
GetInternal() override
{
return &mInstance;
}
details::IKillerNotificationTransferRecordManagerInternal mInstance = {};
};
class KillerNotificationTransferRecordManagerInternal : public details::IKillerNotificationTransferRecordManagerBase
{
public:
KillerNotificationTransferRecordManagerInternal()
{
__ct__Q3_2nn2sl47KillerNotificationTransferRecordManagerInternalFv(&mInstance);
}
~KillerNotificationTransferRecordManagerInternal() override
{
__dt__Q3_2nn2sl47KillerNotificationTransferRecordManagerInternalFv(&mInstance, 2);
}
nn::Result
Load(nn::sl::details::IStreamBase &stream) override
{
auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
return mInstance.vtable->LoadFn(base, stream.GetInternal());
}
nn::Result
LoadInitial() override
{
auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
return mInstance.vtable->LoadInitialFn(base);
}
nn::Result
Store(nn::sl::details::IStreamBase &stream) override
{
auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
return mInstance.vtable->StoreFn(base, stream.GetInternal());
}
void
Finalize() override
{
auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
return mInstance.vtable->FinalizeFn(base);
}
uint32_t
GetRecordCount() const override
{
auto *base = (details::IKillerNotificationTransferRecordManagerInternal *)(&mInstance);
return mInstance.vtable->GetRecordCountFn(base);
}
uint32_t
GetRecords(KillerNotificationTransferRecord *u1, uint32_t u2) const override
{
auto *base = (details::IKillerNotificationTransferRecordManagerInternal *)(&mInstance);
return mInstance.vtable->GetRecordsFn(base, u1, u2);
}
void
RegisterRecords(const KillerNotificationTransferRecord *u1, uint32_t u2) override
{
auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
return mInstance.vtable->RegisterRecordsFn(base, u1, u2);
}
nn::Result
RegisterRecords(const uint32_t *u1, uint32_t u2) override
{
auto *base = reinterpret_cast<details::IKillerNotificationTransferRecordManagerInternal *>(&mInstance);
return mInstance.vtable->RegisterRecordsOtherFn(base, u1, u2);
}
private:
details::KillerNotificationTransferRecordManagerInternalInternal mInstance = {};
};
details::IKillerNotificationTransferRecordManagerBase &
GetDefaultKillerNotificationTransferRecordManager();
} // namespace nn::sl
#endif