Fennel: /home/pub/open/dev/fennel/cache/TransactionalCacheAccessor.cpp 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 #include "fennel/common/CommonPreamble.h" 00024 #include "fennel/cache/TransactionalCacheAccessor.h" 00025 00026 FENNEL_BEGIN_CPPFILE("$Id: //open/dev/fennel/cache/TransactionalCacheAccessor.cpp#3 $"); 00027 00028 TransactionalCacheAccessor::TransactionalCacheAccessor( 00029 SharedCacheAccessor pDelegateInit) 00030 : DelegatingCacheAccessor(pDelegateInit) 00031 { 00032 implicitTxnId = IMPLICIT_TXN_ID; 00033 } 00034 00035 TransactionalCacheAccessor::~TransactionalCacheAccessor() 00036 { 00037 } 00038 00039 CachePage *TransactionalCacheAccessor::lockPage( 00040 BlockId blockId, 00041 LockMode lockMode, 00042 bool readIfUnmapped, 00043 MappedPageListener *pMappedPageListener, 00044 TxnId txnId) 00045 { 00046 if (txnId == IMPLICIT_TXN_ID) { 00047 txnId = implicitTxnId; 00048 } 00049 CachePage *pPage = DelegatingCacheAccessor::lockPage( 00050 blockId,lockMode,readIfUnmapped,pMappedPageListener,txnId); 00051 return pPage; 00052 } 00053 00054 void TransactionalCacheAccessor::unlockPage( 00055 CachePage &page, 00056 LockMode lockMode, 00057 TxnId txnId) 00058 { 00059 if (txnId == IMPLICIT_TXN_ID) { 00060 txnId = implicitTxnId; 00061 } 00062 DelegatingCacheAccessor::unlockPage(page,lockMode,txnId); 00063 } 00064 00065 void TransactionalCacheAccessor::setTxnId(TxnId txnId) 00066 { 00067 implicitTxnId = txnId; 00068 } 00069 00070 TxnId TransactionalCacheAccessor::getTxnId() const 00071 { 00072 return implicitTxnId; 00073 } 00074 00075 FENNEL_END_CPPFILE("$Id: //open/dev/fennel/cache/TransactionalCacheAccessor.cpp#3 $"); 00076 00077