Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
FPageCache Class Reference

#include <PageCache.h>

+ Collaboration diagram for FPageCache:

Public Member Functions

 FPageCache (void *InLowAdress, void *InHighAddress, size_t InPageSize)
 
uint32 GetMemoryRequirements ()
 
void InitPageCache (void *Memory)
 
size_t MarkForPendingDecommit (void *InAddr, size_t Size)
 
template<typename T >
size_t Commit (void *InAddr, size_t Size, size_t &OutUnPending, T &&CommitFunction)
 
template<typename T >
size_t ForceDecommit (void *InAddr, size_t Size, size_t &OutUnPending, T &&DecommitFunction)
 
template<typename T >
size_t DecommitPending (size_t Size, T &&DecommitFunction)
 
template<typename T >
size_t TryDecommitPending (size_t Size, T &&DecommitFunction)
 
size_t GetFreeableMemory ()
 
float GetHitRate ()
 

Private Member Functions

uint32 AddrToPageIndex (void *Addr) const
 
voidPageIndexToAddr (uint32 PageIndex) const
 
bool IsCommitted (void *Addr) const
 
bool IsPendingDecommit (void *Addr) const
 
void Commit (void *Addr)
 
void Decommit (void *Addr)
 
void MarkPendingDecommit (void *Addr)
 
void UnMarkPendingDecommit (void *Addr)
 

Private Attributes

FCriticalSection CriticalSection
 
uint8LowAddress
 
uint8HighAddress
 
size_t PageSize
 
uint32 NumPages
 
uint32 MemSize
 
uint32 SweepPage
 
uint32 CommittedPages
 
uint32 DecommittedPages
 
uint32 PendingDecommittedPages
 
uint64 CommitHits
 
uint64 CommitMisses
 
FBitTree CurrentlyCommitted
 
FBitTree NotPendingDecommit
 

Detailed Description

Definition at line 11 of file PageCache.h.

Constructor & Destructor Documentation

◆ FPageCache()

FPageCache::FPageCache ( void * InLowAdress,
void * InHighAddress,
size_t InPageSize )
inline

Definition at line 86 of file PageCache.h.

Member Function Documentation

◆ AddrToPageIndex()

uint32 FPageCache::AddrToPageIndex ( void * Addr) const
inlineprivate

Definition at line 32 of file PageCache.h.

+ Here is the caller graph for this function:

◆ Commit() [1/2]

void FPageCache::Commit ( void * Addr)
inlineprivate

Definition at line 61 of file PageCache.h.

+ Here is the call graph for this function:

◆ Commit() [2/2]

template<typename T >
size_t FPageCache::Commit ( void * InAddr,
size_t Size,
size_t & OutUnPending,
T && CommitFunction )
inline

Definition at line 138 of file PageCache.h.

◆ Decommit()

void FPageCache::Decommit ( void * Addr)
inlineprivate

Definition at line 66 of file PageCache.h.

+ Here is the call graph for this function:

◆ DecommitPending()

template<typename T >
size_t FPageCache::DecommitPending ( size_t Size,
T && DecommitFunction )
inline

Definition at line 238 of file PageCache.h.

◆ ForceDecommit()

template<typename T >
size_t FPageCache::ForceDecommit ( void * InAddr,
size_t Size,
size_t & OutUnPending,
T && DecommitFunction )
inline

Definition at line 191 of file PageCache.h.

◆ GetFreeableMemory()

size_t FPageCache::GetFreeableMemory ( )
inline

Definition at line 361 of file PageCache.h.

◆ GetHitRate()

float FPageCache::GetHitRate ( )
inline

Definition at line 366 of file PageCache.h.

◆ GetMemoryRequirements()

uint32 FPageCache::GetMemoryRequirements ( )
inline

Definition at line 98 of file PageCache.h.

◆ InitPageCache()

void FPageCache::InitPageCache ( void * Memory)
inline

Definition at line 106 of file PageCache.h.

◆ IsCommitted()

bool FPageCache::IsCommitted ( void * Addr) const
inlineprivate

Definition at line 45 of file PageCache.h.

+ Here is the call graph for this function:

◆ IsPendingDecommit()

bool FPageCache::IsPendingDecommit ( void * Addr) const
inlineprivate

Definition at line 53 of file PageCache.h.

+ Here is the call graph for this function:

◆ MarkForPendingDecommit()

size_t FPageCache::MarkForPendingDecommit ( void * InAddr,
size_t Size )
inline

Definition at line 115 of file PageCache.h.

+ Here is the call graph for this function:

◆ MarkPendingDecommit()

void FPageCache::MarkPendingDecommit ( void * Addr)
inlineprivate

Definition at line 71 of file PageCache.h.

+ Here is the call graph for this function:

◆ PageIndexToAddr()

void * FPageCache::PageIndexToAddr ( uint32 PageIndex) const
inlineprivate

Definition at line 39 of file PageCache.h.

◆ TryDecommitPending()

template<typename T >
size_t FPageCache::TryDecommitPending ( size_t Size,
T && DecommitFunction )
inline

Definition at line 293 of file PageCache.h.

◆ UnMarkPendingDecommit()

void FPageCache::UnMarkPendingDecommit ( void * Addr)
inlineprivate

Definition at line 77 of file PageCache.h.

+ Here is the call graph for this function:

Member Data Documentation

◆ CommitHits

uint64 FPageCache::CommitHits
private

Definition at line 25 of file PageCache.h.

◆ CommitMisses

uint64 FPageCache::CommitMisses
private

Definition at line 26 of file PageCache.h.

◆ CommittedPages

uint32 FPageCache::CommittedPages
private

Definition at line 21 of file PageCache.h.

◆ CriticalSection

FCriticalSection FPageCache::CriticalSection
private

Definition at line 13 of file PageCache.h.

◆ CurrentlyCommitted

FBitTree FPageCache::CurrentlyCommitted
private

Definition at line 29 of file PageCache.h.

◆ DecommittedPages

uint32 FPageCache::DecommittedPages
private

Definition at line 22 of file PageCache.h.

◆ HighAddress

uint8* FPageCache::HighAddress
private

Definition at line 16 of file PageCache.h.

◆ LowAddress

uint8* FPageCache::LowAddress
private

Definition at line 15 of file PageCache.h.

◆ MemSize

uint32 FPageCache::MemSize
private

Definition at line 19 of file PageCache.h.

◆ NotPendingDecommit

FBitTree FPageCache::NotPendingDecommit
private

Definition at line 30 of file PageCache.h.

◆ NumPages

uint32 FPageCache::NumPages
private

Definition at line 18 of file PageCache.h.

◆ PageSize

size_t FPageCache::PageSize
private

Definition at line 17 of file PageCache.h.

◆ PendingDecommittedPages

uint32 FPageCache::PendingDecommittedPages
private

Definition at line 23 of file PageCache.h.

◆ SweepPage

uint32 FPageCache::SweepPage
private

Definition at line 20 of file PageCache.h.


The documentation for this class was generated from the following file: