本文整理汇总了C++中ModulePtr类的典型用法代码示例。如果您正苦于以下问题:C++ ModulePtr类的具体用法?C++ ModulePtr怎么用?C++ ModulePtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ModulePtr类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: default_constructible_type
ModulePtr default_constructible_type(const std::string &type, ModulePtr m = ModulePtr(new Module()))
{
m->add(constructor<Type ()>(), type);
return m;
}
示例2: getMetaData
void
Slice::ObjCGenerator::MetaDataVisitor::validate(const ContainedPtr& cont)
{
ModulePtr m = ModulePtr::dynamicCast(cont);
if(m)
{
bool error = false;
bool foundPrefix = false;
StringList meta = getMetaData(m);
for(StringList::iterator p = meta.begin(); p != meta.end();)
{
string s = *p++;
const string prefix = "objc:prefix:";
string name;
if(s.find(prefix) == 0)
{
foundPrefix = true;
name = trim(s.substr(prefix.size()));
if(name.empty())
{
m->definitionContext()->warning(InvalidMetaData, m->definitionContext()->filename(),
m->line(), _msg + " `" + s + "'");
meta.remove(s);
error = true;
}
else
{
if(!addModule(m, name))
{
modulePrefixError(m, s);
}
}
}
else
{
m->definitionContext()->warning(InvalidMetaData, m->definitionContext()->filename(),
m->line(), _msg + " `" + s + "'");
meta.remove(s);
error = true;
}
}
setMetaData(m, meta);
if(!error && !foundPrefix)
{
StringList names = splitScopedName(m->scoped());
string name;
for(StringList::const_iterator i = names.begin(); i != names.end(); ++i)
{
name += *i;
}
if(!addModule(m, name))
{
modulePrefixError(m, "");
}
}
}
EnumPtr en = EnumPtr::dynamicCast(cont);
if(en)
{
StringList meta = getMetaData(en);
for(StringList::iterator p = meta.begin(); p != meta.end();)
{
string s = *p;
if(s != "objc:scoped")
{
en->definitionContext()->warning(InvalidMetaData, en->definitionContext()->filename(),
en->line(), _msg + " `" + s + "'");
meta.erase(p++);
}
else
{
++p;
}
}
setMetaData(en, meta);
}
}
示例3: ensureModuleLoaded
void ModuleManager::ensureModuleLoaded(const std::string& moduleName)
{
ModulePtr module = g_modules.getModule(moduleName);
if(!module || !module->load())
g_logger.fatal(stdext::format("Unable to load '%s' module", moduleName));
}