CommonLibSSE NG
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 
18  struct Entry
19  {
20  public:
21  // members
22  Entry* next; // 00
24  std::uint32_t priority; // 10
25  std::uint32_t pad14; // 14
26  };
27  static_assert(sizeof(Entry) == 0x18);
28 
29  ~GlobalLocations() override; // 00
30 
31  // override (Location)
32  ErrorCode DoMount() override; // 01
33  void DoUnmount() override; // 02
34  ErrorCode DoCreateStream(const char* a_path, BSTSmartPointer<Stream>& a_stream, Location*& a_location, bool a_readOnly) override; // 03
35  ErrorCode DoCreateAsyncStream(const char* a_path, BSTSmartPointer<AsyncStream>& a_out, Location*& a_location, bool a_readOnly) override; // 04
36  ErrorCode DoTraversePrefix(const char* a_path, LocationTraverser& a_traverser) override; // 05
37  ErrorCode DoGetInfo1(const char* a_path, Info& a_info, Location*& a_location) override; // 06
38  ErrorCode DoGetInfo2(const char* a_path, Info& a_info, LocationTraverser* a_traverser) override; // 07
39  ErrorCode DoDelete(const char* a_path) override; // 08
40 
41  // members
42  std::uint8_t pad11; // 11
43  std::uint16_t pad12; // 12
44  mutable BSSpinLock lock; // 14
45  std::uint32_t pad1C; // 1C
46  Entry* head; // 20
48  Entry* free; // 30
49  };
50  static_assert(sizeof(GlobalLocations) == 0x38);
51  }
52 }
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:48
ErrorCode DoDelete(const char *a_path) override
Entry * head
Definition: GlobalLocations.h:46
std::uint16_t pad12
Definition: GlobalLocations.h:43
std::uint8_t pad11
Definition: GlobalLocations.h:42
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
std::uint32_t pad1C
Definition: GlobalLocations.h:45
ErrorCode DoMount() override
Entry * pendingMount
Definition: GlobalLocations.h:47
BSSpinLock lock
Definition: GlobalLocations.h:44
Definition: LocationTraverser.h:10
Definition: Location.h:17
Definition: BSAtomic.h:51
Definition: BSTSmartPointer.h:36
ErrorCode
Definition: ErrorCodes.h:8
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSResource____GlobalLocations(690353, 398208, 0x1f60550)
Definition: GlobalLocations.h:19
std::uint32_t pad14
Definition: GlobalLocations.h:25
Location * location
Definition: GlobalLocations.h:23
Entry * next
Definition: GlobalLocations.h:22
std::uint32_t priority
Definition: GlobalLocations.h:24
Definition: Info.h:10
Definition: BSTSingleton.h:50