예제 #1
0
        public Page ReadPage(Transaction tx, int scratchNumber, long p, PagerState pagerState = null)
        {
            ScratchBufferFile      bufferFile;
            ScratchBufferCacheItem item = lastScratchBuffer;

            if (item.Number == scratchNumber)
            {
                bufferFile = item.File;
            }
            else
            {
                bufferFile        = _scratchBuffers[scratchNumber];
                lastScratchBuffer = new ScratchBufferCacheItem(scratchNumber, bufferFile);
            }

            return(bufferFile.ReadPage(tx, p, pagerState));
        }
예제 #2
0
        public Page ReadPage(int scratchNumber, long p, PagerState pagerState = null)
        {
            ScratchBufferFile bufferFile;
            ScratchBufferCacheItem item = lastScratchBuffer;
            if ( item.Number == scratchNumber )
            {
                bufferFile = item.File;
            }
            else
            {
                bufferFile = _scratchBuffers[scratchNumber];
                lastScratchBuffer = new ScratchBufferCacheItem( scratchNumber, bufferFile );
            }

            return bufferFile.ReadPage(p, pagerState);
        }