Static Buffer
Friend class of BlockBuffer - access to protected and private members of BlockBuffer
===Protected Members can be accessed by the derived classes===
BufferMetaInfo
struct BufferMetaInfo {
bool free;
bool dirty;
int blockNum;
int timeStamp;
}
static unsigned char blocks[BUFFER_CAPACITY][BLOCK_SIZE];
static struct BufferMetaInfo metainfo[BUFFER_CAPACITY];
StaticBuffer::StaticBuffer() {
loop -> BUFFER_CAPACITY
metainfo -> free -> true
}
StaticBuffer::getFreeBuffer(int blockNum) {
loop -> till free block
metainfo[allocatedBlock].free = false
metainfo[allocatedBlock].blockNum = blockNum
}
StaticBuffer::getBufferNum(int blockNum) {
loop -> find metainfo[index].blockNum = blockNum;
}