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