本文整理汇总了C++中ModuleMap::insert方法的典型用法代码示例。如果您正苦于以下问题:C++ ModuleMap::insert方法的具体用法?C++ ModuleMap::insert怎么用?C++ ModuleMap::insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModuleMap
的用法示例。
在下文中一共展示了ModuleMap::insert方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Register
void ModuleRegistry::Register(ModuleInfo* info)
{
static long regCount = 0;
if (info->id > 0)
{
// The module was already registered
Module* module = 0;
{
MutexLocker lock(*modulesLock());
module = modules()->operator[](info->id);
assert(module != 0);
}
module->Start();
}
else
{
Module* module = 0;
// check if the module is reloaded
{
MutexLocker lock(*modulesLock());
ModuleMap* map = modules();
for (ModuleMap::const_iterator i = map->begin();
i != map->end(); ++i)
{
if (i->second->GetLocation() == info->location)
{
module = i->second;
info->id = module->GetModuleId();
}
}
}
if (!module)
{
module = new Module();
countLock()->Lock();
info->id = ++regCount;
countLock()->Unlock();
module->Init(coreModuleContext(), info);
MutexLocker lock(*modulesLock());
ModuleMap* map = modules();
map->insert(std::make_pair(info->id, module));
}
else
{
module->Init(coreModuleContext(), info);
}
module->Start();
}
}