CommonLibVR
GlobalLocations.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSAtomic.h"
4 #include "RE/B/BSTSingleton.h"
5 #include "RE/L/Location.h"
6 
7 namespace RE
8 {
9  namespace BSResource
10  {
12  public Location, // 00
13  public BSTSingletonSDM<GlobalLocations> // 10
14  {
15  public:
16  inline static constexpr auto RTTI = RTTI_BSResource____GlobalLocations;
17  inline static constexpr auto VTABLE = VTABLE_BSResource____GlobalLocations;
18 
19  struct Entry
20  {
21  public:
22  // members
23  Entry* next; // 00
25  std::uint32_t priority; // 10
26  std::uint32_t pad14; // 14
27  };
28  static_assert(sizeof(Entry) == 0x18);
29 
30  ~GlobalLocations() override; // 00
31 
32  // override (Location)
33  ErrorCode DoMount() override; // 01
34  void DoUnmount() override; // 02
35  ErrorCode DoCreateStream(const char* a_path, BSTSmartPointer<Stream>& a_stream, Location*& a_location, bool a_readOnly) override; // 03
36  ErrorCode DoCreateAsyncStream(const char* a_path, BSTSmartPointer<AsyncStream>& a_out, Location*& a_location, bool a_readOnly) override; // 04
37  ErrorCode DoTraversePrefix(const char* a_path, LocationTraverser& a_traverser) override; // 05
38  ErrorCode DoGetInfo1(const char* a_path, Info& a_info, Location*& a_location) override; // 06
39  ErrorCode DoGetInfo2(const char* a_path, Info& a_info, LocationTraverser* a_traverser) override; // 07
40  ErrorCode DoDelete(const char* a_path) override; // 08
41 
42  // members
43  std::uint8_t pad11; // 11
44  std::uint16_t pad12; // 12
45  mutable BSSpinLock lock; // 14
46  std::uint32_t pad1C; // 1C
47  Entry* head; // 20
49  Entry* free; // 30
50  };
51  static_assert(sizeof(GlobalLocations) == 0x38);
52  }
53 }
Definition: GlobalLocations.h:14
ErrorCode DoCreateStream(const char *a_path, BSTSmartPointer< Stream > &a_stream, Location *&a_location, bool a_readOnly) override
ErrorCode DoCreateAsyncStream(const char *a_path, BSTSmartPointer< AsyncStream > &a_out, Location *&a_location, bool a_readOnly) override
Entry * free
Definition: GlobalLocations.h:49
ErrorCode DoDelete(const char *a_path) override
Entry * head
Definition: GlobalLocations.h:47
std::uint16_t pad12
Definition: GlobalLocations.h:44
std::uint8_t pad11
Definition: GlobalLocations.h:43
ErrorCode DoGetInfo2(const char *a_path, Info &a_info, LocationTraverser *a_traverser) override
static constexpr auto RTTI
Definition: GlobalLocations.h:16
ErrorCode DoTraversePrefix(const char *a_path, LocationTraverser &a_traverser) override
ErrorCode DoGetInfo1(const char *a_path, Info &a_info, Location *&a_location) override
static constexpr auto VTABLE
Definition: GlobalLocations.h:17
std::uint32_t pad1C
Definition: GlobalLocations.h:46
ErrorCode DoMount() override
Entry * pendingMount
Definition: GlobalLocations.h:48
BSSpinLock lock
Definition: GlobalLocations.h:45
Definition: LocationTraverser.h:10
Definition: Location.h:17
Definition: BSAtomic.h:92
Definition: BSTSmartPointer.h:37
ErrorCode
Definition: ErrorCodes.h:8
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BSResource____GlobalLocations(static_cast< std::uint64_t >(690353))
constexpr std::array< REL::ID, 1 > VTABLE_BSResource____GlobalLocations
Definition: Offsets_VTABLE.h:9415
Definition: GlobalLocations.h:20
std::uint32_t pad14
Definition: GlobalLocations.h:26
Location * location
Definition: GlobalLocations.h:24
Entry * next
Definition: GlobalLocations.h:23
std::uint32_t priority
Definition: GlobalLocations.h:25
Definition: Info.h:10
Definition: BSTSingleton.h:50