本文整理汇总了C++中Importer::load方法的典型用法代码示例。如果您正苦于以下问题:C++ Importer::load方法的具体用法?C++ Importer::load怎么用?C++ Importer::load使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Importer
的用法示例。
在下文中一共展示了Importer::load方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
Module * PackageMgr::loadModule(StringRef qname) {
// First, attempt to search the modules already loaded.
ModuleMap::iterator it = modules_.find(qname);
if (it != modules_.end()) {
if (ShowImports && it->second != NULL) {
diag.debug() << "Import: Found module '" << qname << "' in module cache";
}
return it->second;
}
// If it's a regular file.
Module * mod = NULL;
// Search each element on the import path list.
for (PathList::iterator it = importers_.begin(); it != importers_.end(); ++it) {
Importer * imp = *it;
if (imp->load(qname, mod)) {
// If the module was there but failed to load (NULL) then we're done
if (mod == NULL) {
break;
}
}
}
if (!mod && ShowImports) {
diag.debug() << "Import: module '" << qname << "' NOT FOUND";
}
// Regardless of whether the module was found, record this result in the map
// so we don't have to look it up again.
modules_[qname] = mod;
// Do this *after* we add the module to the map, because createMembers() might
// do other module lookups.
if (mod != NULL) {
mod->createMembers();
}
return mod;
}