Dynalib Utils
src
Utilities
DynaBufferCache.h
Go to the documentation of this file.
1
//
2
// Created by Ken Kopelson on 26/04/18.
3
//
4
5
#ifndef DYNABUFFERCACHE_H
6
#define DYNABUFFERCACHE_H
7
8
#include "
PageFile.h
"
9
#include "
DynaCache.h
"
10
//#include "Utilities/IDynaBufferCacheListener.h"
11
12
#define MAKE_BUFFERCACHETYPE_DEF(C, T) \
13
typedef DynaBufferCache<C> T##BufferCache
14
15
template
<
class
T>
class
DynaBufferCache
:
public
DynaCache
<T> {
16
PageFile
* _file =
nullptr
;
17
18
public
:
19
explicit
DynaBufferCache
(
PageFile
* file);
20
21
void
setListener
(
IDynaCacheListener<T>
* listener)
override
;
22
void
flushPage
(T* page)
override
;
23
void
flushAndInvalidate
(T* page);
24
T*
getPageForRemoval
(
LinkedEntry<T>
* entry)
override
;
25
LinkedEntry<T>
*
useLastPage
(
Index
keyValue,
DynaBuffer
* buffer);
26
LinkedEntry<T>
*
putPageEntry
(
Index
keyValue,
DynaBuffer
* buffer);
27
T*
putPage
(
Index
keyValue,
DynaBuffer
* buffer);
28
};
29
30
31
#endif //DYNABUFFERCACHE_H
DynaBufferCache::getPageForRemoval
T * getPageForRemoval(LinkedEntry< T > *entry) override
Definition:
DynaBufferCacheImpl.h:51
IDynaCacheListener
Definition:
IDynaCacheListener.h:11
LinkedEntry
Definition:
DynaLinkedList.h:32
DynaCache.h
DynaCache
Definition:
DynaCache.h:16
DynaBufferCache::setListener
void setListener(IDynaCacheListener< T > *listener) override
Definition:
DynaBufferCacheImpl.h:21
IntWrapper
Definition:
IntWrapper.h:13
DynaBufferCache::flushAndInvalidate
void flushAndInvalidate(T *page)
Definition:
DynaBufferCacheImpl.h:43
DynaBufferCache::DynaBufferCache
DynaBufferCache(PageFile *file)
Definition:
DynaBufferCacheImpl.h:16
PageFile.h
DynaBufferCache
Definition:
DynaBufferCache.h:15
DynaBufferCache::putPage
T * putPage(Index keyValue, DynaBuffer *buffer)
Definition:
DynaBufferCacheImpl.h:92
DynaBufferCache::flushPage
void flushPage(T *page) override
Definition:
DynaBufferCacheImpl.h:26
DynaBufferCache::useLastPage
LinkedEntry< T > * useLastPage(Index keyValue, DynaBuffer *buffer)
Definition:
DynaBufferCacheImpl.h:58
PageFile
Definition:
PageFile.h:36
DynaBuffer
Definition:
DynaBuffer.h:20
DynaBufferCache::putPageEntry
LinkedEntry< T > * putPageEntry(Index keyValue, DynaBuffer *buffer)
Definition:
DynaBufferCacheImpl.h:74
Generated by
1.8.13