00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef Fennel_DelegatingCacheAccessor_Included
00025 #define Fennel_DelegatingCacheAccessor_Included
00026
00027 #include "fennel/cache/CacheAccessor.h"
00028
00029 FENNEL_BEGIN_NAMESPACE
00030
00036 class FENNEL_CACHE_EXPORT DelegatingCacheAccessor : public CacheAccessor
00037 {
00038 SharedCacheAccessor pDelegate;
00039
00040 public:
00046 explicit DelegatingCacheAccessor(
00047 SharedCacheAccessor pDelegate);
00048
00049
00050 virtual CachePage *lockPage(
00051 BlockId blockId,
00052 LockMode lockMode,
00053 bool readIfUnmapped = true,
00054 MappedPageListener *pMappedPageListener = NULL,
00055 TxnId txnId = IMPLICIT_TXN_ID);
00056 virtual void unlockPage(
00057 CachePage &page,LockMode lockMode,TxnId txnId = IMPLICIT_TXN_ID);
00058 virtual void discardPage(BlockId blockId);
00059 virtual bool prefetchPage(
00060 BlockId blockId,
00061 MappedPageListener *pMappedPageListener = NULL);
00062 virtual void prefetchBatch(
00063 BlockId blockId,uint nPages,
00064 MappedPageListener *pMappedPageListener = NULL);
00065 virtual void flushPage(CachePage &page,bool async);
00066 virtual void nicePage(CachePage &page);
00067 virtual SharedCache getCache();
00068 virtual uint getMaxLockedPages();
00069 virtual void setMaxLockedPages(uint nPages);
00070 virtual void setTxnId(TxnId txnId);
00071 virtual TxnId getTxnId() const;
00072 virtual void getPrefetchParams(
00073 uint &prefetchPagesMax,
00074 uint &prefetchThrottleRate);
00075
00076 };
00077
00078 FENNEL_END_NAMESPACE
00079
00080 #endif
00081
00082