本文整理汇总了C++中CDatabase::adapt方法的典型用法代码示例。如果您正苦于以下问题:C++ CDatabase::adapt方法的具体用法?C++ CDatabase::adapt怎么用?C++ CDatabase::adapt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDatabase
的用法示例。
在下文中一共展示了CDatabase::adapt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getDatabase
/*
* Load a database and adapt to the description if needed
*/
CDatabase* CDbManager::loadDatabase(TDatabaseId id, const string& description, CLog* log)
{
CHECK_DB_MGR_INIT(loadDatabase, false);
nlinfo("CDbManager::loadDatabase(): load/setup database '%d'", id);
CDatabase* db = getDatabase(id);
// database not loaded yet?
if (db == NULL)
{
// create a memory image
db = createDatabase(id, log);
if (db == NULL)
{
log->displayNL("failed to create database '%d'", id);
return NULL;
}
// if can't load database
if (!db->loadState())
{
nlinfo("CDbManager::loadDatabase(): database '%d' doesn't exist, create new", id);
// create a new database with the new description
if (!db->createFromScratch(description))
{
log->displayNL("failed to create database '%d' from scratch", id);
return NULL;
}
return db;
}
}
CDatabase* adapted = db->adapt(description);
if (adapted == NULL)
{
log->displayNL("failed to adapt database '%s' to new description", db->getName().c_str());
return NULL;
}
// database changed?
if (db != adapted)
{
// replace old on with new one
_DatabaseMap[id] = adapted;
// and delete old
delete db;
}
return adapted;
}