本文整理汇总了C++中BinTree::loadDB方法的典型用法代码示例。如果您正苦于以下问题:C++ BinTree::loadDB方法的具体用法?C++ BinTree::loadDB怎么用?C++ BinTree::loadDB使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BinTree
的用法示例。
在下文中一共展示了BinTree::loadDB方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processUnsortedFiles
bool FileIntersect::processUnsortedFiles()
{
const QuickString &databaseFilename = _context->getDatabaseFileName();
BinTree *binTree = new BinTree(_context->getDatabaseFileIdx(), _context);
FileRecordMgr *queryFRM = new FileRecordMgr(_context->getQueryFileIdx(), _context);
if (!queryFRM->open()) {
return false;
}
if (!binTree->loadDB()) {
fprintf(stderr, "Error: Unable to load database file %s.\n", databaseFilename.c_str());
delete binTree;
exit(1);
}
_context->determineOutputType();
_recordOutputMgr->init(_context);
while (!queryFRM->eof()) {
Record *queryRecord = queryFRM->allocateAndGetNextRecord();
if (queryRecord == NULL) {
continue;
}
RecordKeyList hitSet(queryRecord);
binTree->getHits(queryRecord, hitSet);
if (_context->getObeySplits()) {
RecordKeyList keySet(hitSet.getKey());
RecordKeyList resultSet;
_blockMgr->findBlockedOverlaps(keySet, hitSet, resultSet);
processHits(resultSet);
} else {
processHits(hitSet);
}
queryFRM->deleteRecord(queryRecord);
}
queryFRM->close();
//clean up.
delete queryFRM;
delete binTree;
return true;
}