Dynalib Utils
Public Member Functions | List of all members
DynaBufferCache< T > Class Template Reference

#include <DynaBufferCache.h>

Inheritance diagram for DynaBufferCache< T >:
Inheritance graph
[legend]
Collaboration diagram for DynaBufferCache< T >:
Collaboration graph
[legend]

Public Member Functions

 DynaBufferCache (PageFile *file)
 
void setListener (IDynaCacheListener< T > *listener) override
 
void flushPage (T *page) override
 
void flushAndInvalidate (T *page)
 
T * getPageForRemoval (LinkedEntry< T > *entry) override
 
LinkedEntry< T > * useLastPage (Index keyValue, DynaBuffer *buffer)
 
LinkedEntry< T > * putPageEntry (Index keyValue, DynaBuffer *buffer)
 
T * putPage (Index keyValue, DynaBuffer *buffer)
 
- Public Member Functions inherited from DynaCache< T >
 DynaCache ()
 
virtual ~DynaCache ()
 
 DynaCache (const DynaCache< T > &other)
 
DynaCache< T > * copy () override
 
void setAutoTouch (bool autoTouch)
 
bool isAutoTouch ()
 
void resetStats ()
 
void clear ()
 
bool isEmpty ()
 
bool isFull ()
 
bool isDirty ()
 
int getMaxPages ()
 
int getPageCount ()
 
int getDirtyPageCount ()
 
DynaLinkedList< T > * getPageList ()
 
void setMaxPages (int maxPages)
 
void flush ()
 
void touchEntry (LinkedEntry< T > *entry)
 
T * getNewPage ()
 
LinkedEntry< T > * addNewPage (T *page)
 
LinkedEntry< T > * useLastPage (Index keyValue)
 
LinkedEntry< T > * useLastPage (T *newPage)
 
void removePage (Index keyValue)
 
void removeLastPage ()
 
virtual void purgePages (double removePercent=0.80)
 
LinkedEntry< T > * findPageEntry (Index keyValue)
 
LinkedEntry< T > * getPageEntry (Index keyValue)
 
LinkedEntry< T > * putPageEntry (Index keyValue)
 
LinkedEntry< T > * putPageEntry (T *page)
 
T * findPage (Index keyValue)
 
T * getPage (Index keyValue)
 
T * putPage (Index keyValue)
 
T * putPage (T *page)
 
void printStatReport (String &name)
 
- Public Member Functions inherited from ICopyable< DynaCache< T > >
 ICopyable ()=default
 
virtual ~ICopyable ()=default
 

Additional Inherited Members

- Protected Attributes inherited from DynaCache< T >
int _maxPages = 0
 
DynaLinkedList< T > * _pageList = nullptr
 
DynaHashMap< Index, LinkedEntry< T > > * _pageMap = nullptr
 
IDynaCacheListener< T > * _listener = nullptr
 
long _pageFlushes = 0
 
long _pageReplacements = 0
 
long _pageAccesses = 0
 

Constructor & Destructor Documentation

◆ DynaBufferCache()

template<class T >
DynaBufferCache< T >::DynaBufferCache ( PageFile file)
explicit

Member Function Documentation

◆ flushAndInvalidate()

template<class T >
void DynaBufferCache< T >::flushAndInvalidate ( T *  page)

◆ flushPage()

template<class T >
void DynaBufferCache< T >::flushPage ( T *  page)
overridevirtual

Reimplemented from DynaCache< T >.

◆ getPageForRemoval()

template<class T >
T * DynaBufferCache< T >::getPageForRemoval ( LinkedEntry< T > *  entry)
overridevirtual

Reimplemented from DynaCache< T >.

◆ putPage()

template<class T >
T * DynaBufferCache< T >::putPage ( Index  keyValue,
DynaBuffer buffer 
)

◆ putPageEntry()

template<class T >
LinkedEntry< T > * DynaBufferCache< T >::putPageEntry ( Index  keyValue,
DynaBuffer buffer 
)

◆ setListener()

template<class T >
void DynaBufferCache< T >::setListener ( IDynaCacheListener< T > *  listener)
overridevirtual

Reimplemented from DynaCache< T >.

◆ useLastPage()

template<class T >
LinkedEntry< T > * DynaBufferCache< T >::useLastPage ( Index  keyValue,
DynaBuffer buffer 
)

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