Skip to content

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;
}