CommonLibSSE NG
IMemoryPagePolicy.h
Go to the documentation of this file.
1 #pragma once
2 #include "RE/M/MemoryPage.h"
3 namespace RE
4 {
5  namespace BSScript
6  {
8  {
9  public:
10  inline static constexpr auto RTTI = RTTI_BSScript__IMemoryPagePolicy;
11 
12  enum class AllocationStatus
13  {
14  kSuccess,
15  kFailed,
17  };
18 
19  enum class NewPageStrategy
20  {
21  kNormal,
23  };
24 
25  virtual ~IMemoryPagePolicy(); // 00
26 
27  // add
28  virtual std::uint32_t MaximumPageSize() = 0; // 01
29  virtual AllocationStatus AllocatePage(std::uint32_t a_pageSize, NewPageStrategy a_stategy, BSTAutoPointer<MemoryPage>& a_newPage) = 0; // 02
31  virtual void DisposePage(BSTAutoPointer<MemoryPage>& a_oldPage) = 0; // 04
32  };
33  static_assert(sizeof(IMemoryPagePolicy) == 0x8);
34  }
35 }
Definition: BSTSmartPointer.h:36
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BSScript__IMemoryPagePolicy(691841, 399885, 0x1f7d2b8)
Definition: IMemoryPagePolicy.h:8
virtual AllocationStatus AllocatePage(std::uint32_t a_pageSize, NewPageStrategy a_stategy, BSTAutoPointer< MemoryPage > &a_newPage)=0
virtual void DisposePage(BSTAutoPointer< MemoryPage > &a_oldPage)=0
NewPageStrategy
Definition: IMemoryPagePolicy.h:20
AllocationStatus
Definition: IMemoryPagePolicy.h:13
virtual std::uint32_t MaximumPageSize()=0
virtual AllocationStatus GetLargestAvailablePage(BSTAutoPointer< MemoryPage > &a_newPage)=0
static constexpr auto RTTI
Definition: IMemoryPagePolicy.h:10