CommonLibVR
Loading...
Searching...
No Matches
BSResourceEntryDB.h
Go to the documentation of this file.
1#pragma once
2
6#include "RE/B/BSTSingleton.h"
7
8namespace RE
9{
10 namespace BSResource
11 {
12 class Location;
13 class EntryBase;
14
15 template <class T>
16 class EntryDB;
17
18 template <class T_DBTraits, class T_EntryDB>
20 {
21 public:
22 using U_DBTraits = T_DBTraits;
23 using U_EntryDB = T_EntryDB;
24
25 class CArgs
26 {
27 public:
28 // members
29 T_DBTraits::ArgsType userArgs; // 00
31 };
32 };
33 static_assert(std::is_empty_v<EntryDBTraits<void, void>>);
34
36 {
37 public:
38 inline static constexpr auto RTTI = RTTI_BSResource__IEntryDB;
39 inline static constexpr auto VTABLE = VTABLE_BSResource__IEntryDB;
40
42 {
43 public:
44 inline static constexpr auto RTTI = RTTI_BSResource__IEntryDB__NotifyLoadDone;
46
47 virtual ~NotifyLoadDone(); // 00
48
49 // add
50 virtual void operator()() = 0; // 01
51 };
52 static_assert(sizeof(NotifyLoadDone) == 0x08);
53
55 {
56 public:
57 inline static constexpr auto RTTI = RTTI_BSResource__IEntryDB__PostFlushNotify;
59
60 virtual ~PostFlushNotify(); // 00
61
62 // add
63 virtual bool DoOnNotify() = 0; // 01
64 virtual void DoOnFinalize() = 0; // 02
65
66 // members
67 std::uint32_t state; // 08
69 };
70 static_assert(sizeof(PostFlushNotify) == 0x18);
71
72 virtual ~IEntryDB(); // 00
73
74 // add
75 virtual void Unk_01(void) = 0; // 01
76 virtual void Unk_02(void) = 0; // 02
77 virtual void Unk_03(void) = 0; // 03
78 virtual void Unk_04(void) = 0; // 04
79 virtual void Unk_05(void) = 0; // 05
80
81 // members
83 };
84 static_assert(sizeof(IEntryDB) == 0xD0);
85
86 template <class T_EntryDBTraits>
88 public T_EntryDBTraits::U_DBTraits
89 {
90 public:
91 // members
92 std::byte unk00[0x40]; // 00
97 std::byte unk168[0x8170 - 0x168]; // ??
98 std::uint64_t unk8170; // ??
99 };
100
101 template <class T_DBTraits>
102 class EntryDB :
103 public IEntryDB,
104 public EntryDBBase<EntryDBTraits<T_DBTraits, BSResource::EntryDB<T_DBTraits>>>,
105 public BSTSingletonSDM<EntryDB<T_DBTraits>>
106 {
107 public:
108 ~EntryDB() override; // 00
109
110 // override (IEntryDB)
111 void Unk_01(void) override; // 01
112 void Unk_02(void) override; // 02
113 void Unk_03(void) override; // 03
114 void Unk_04(void) override; // 04
115 void Unk_05(void) override; // 05
116 };
117 }
118}
Definition BSResourceEntryQueue.h:22
Definition BSResourceEntryDB.h:89
std::byte unk168[0x8170 - 0x168]
Definition BSResourceEntryDB.h:97
EntryBucketQueue< Entry< typename T_EntryDBTraits::U_DBTraits::U_Type, typename T_EntryDBTraits::CArgs >, T_EntryDBTraits::U_DBTraits::LOAD_QUEUE_SIZE > loadQueue
Definition BSResourceEntryDB.h:94
EntryBucketQueue< Entry< typename T_EntryDBTraits::U_DBTraits::U_Type, typename T_EntryDBTraits::CArgs >, T_EntryDBTraits::U_DBTraits::RELEASE_QUEUE_SIZE > releaseQueue
Definition BSResourceEntryDB.h:95
std::uint64_t unk8170
Definition BSResourceEntryDB.h:98
std::byte unk00[0x40]
Definition BSResourceEntryDB.h:92
REntryCache< EntryCacheTraits< typename T_EntryDBTraits::U_DBTraits::U_Type, typename T_EntryDBTraits::CArgs, DAP, 64 > > cache
Definition BSResourceEntryDB.h:93
Location * rootLocation
Definition BSResourceEntryDB.h:96
Definition BSResourceEntryDB.h:26
T_DBTraits::ArgsType userArgs
Definition BSResourceEntryDB.h:29
BSFixedString nameText
Definition BSResourceEntryDB.h:30
Definition BSResourceEntryDB.h:20
T_DBTraits U_DBTraits
Definition BSResourceEntryDB.h:22
T_EntryDB U_EntryDB
Definition BSResourceEntryDB.h:23
Definition BSResourceEntryDB.h:106
void Unk_05(void) override
void Unk_04(void) override
void Unk_01(void) override
void Unk_03(void) override
void Unk_02(void) override
Definition BSResourceEntryDB.h:42
static constexpr auto RTTI
Definition BSResourceEntryDB.h:44
static constexpr auto VTABLE
Definition BSResourceEntryDB.h:45
Definition BSResourceEntryDB.h:55
static constexpr auto RTTI
Definition BSResourceEntryDB.h:57
std::uint32_t state
Definition BSResourceEntryDB.h:67
static constexpr auto VTABLE
Definition BSResourceEntryDB.h:58
PostFlushNotify * next
Definition BSResourceEntryDB.h:68
Definition BSResourceEntryDB.h:36
virtual void Unk_05(void)=0
EntryBucketQueue< PostFlushNotify, 8 > postFlushNotifyQueue
Definition BSResourceEntryDB.h:82
static constexpr auto VTABLE
Definition BSResourceEntryDB.h:39
virtual void Unk_04(void)=0
virtual void Unk_03(void)=0
virtual void Unk_02(void)=0
virtual void Unk_01(void)=0
static constexpr auto RTTI
Definition BSResourceEntryDB.h:38
Definition Location.h:17
Definition BSResourceEntryCache.h:28
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSResource__IEntryDB
Definition Offsets_VTABLE.h:9400
constexpr std::array< REL::ID, 1 > VTABLE_BSResource__IEntryDB__PostFlushNotify
Definition Offsets_VTABLE.h:9402
constexpr REL::ID RTTI_BSResource__IEntryDB__NotifyLoadDone(static_cast< std::uint64_t >(690658))
constexpr REL::ID RTTI_BSResource__IEntryDB(static_cast< std::uint64_t >(684960))
constexpr REL::ID RTTI_BSResource__IEntryDB__PostFlushNotify(static_cast< std::uint64_t >(684618))
constexpr std::array< REL::ID, 1 > VTABLE_BSResource__IEntryDB__NotifyLoadDone
Definition Offsets_VTABLE.h:9401
Definition BSTSingleton.h:50