Fennel: /home/pub/open/dev/fennel/cache/DelegatingCacheAccessor.h Source File (original) (raw)

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