本文整理汇总了C++中BlockInfo::clearBlock方法的典型用法代码示例。如果您正苦于以下问题:C++ BlockInfo::clearBlock方法的具体用法?C++ BlockInfo::clearBlock怎么用?C++ BlockInfo::clearBlock使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BlockInfo
的用法示例。
在下文中一共展示了BlockInfo::clearBlock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findBlock
BlockInfo* Buffer::findBlock(string& dbName){
if (fileHead->blockAmount < MAX_BLOCK){
BlockInfo* tempBlock = new BlockInfo();
fileHead->blockAmount++;
return tempBlock;
}
else{ //LRU algorithm
FileInfo* tempFile = fileHead->firstFile;
BlockInfo* tempBlock = NULL;
BlockInfo* minDirtyBlock = NULL;
BlockInfo* minBlock = NULL;
while (tempFile){
tempBlock = tempFile->firstBlock;
if (tempBlock){
if (tempBlock->dirtyBit && !minDirtyBlock)
minDirtyBlock = tempBlock;
else if (tempBlock->dirtyBit && (minDirtyBlock->iTime > tempBlock->iTime))
minDirtyBlock = tempBlock;
else if (!tempBlock->dirtyBit && !minBlock)
minBlock = tempBlock;
else if (!tempBlock->dirtyBit && (minBlock->iTime > tempBlock->iTime))
minBlock = tempBlock;
}
tempFile = tempFile->next;
}
if (minBlock){
minBlock->file->firstBlock = minBlock->next;
tempBlock = minBlock;
}
else{
minDirtyBlock->file->firstBlock = minDirtyBlock->next;
tempBlock = minDirtyBlock;
writeBlock(dbName, tempBlock);
}
tempBlock->clearBlock();
return tempBlock;
}
}