DynLib* DynLibMgr::load(const char* libName) { DynLibMap::iterator itr = mDynLibMap.find(libName); if(itr != mDynLibMap.end()) { return itr->second; } DynLib* lib = NEW DynLib(libName); lib->load(); mDynLibMap[libName] = lib; return lib; }
//----------------------------------------------------------------------- DynLib* DynLibManager::load( const String& filename) { DynLibList::iterator i = mLibList.find(filename); if (i != mLibList.end()) { return i->second; } else { DynLib* pLib = OGRE_NEW DynLib(filename); pLib->load(); mLibList[filename] = pLib; return pLib; } }
DynLib * DynLibManager::load(std::string const & path) { DynLibMap::iterator loaded = libs.find(path); if (loaded != libs.end()) { loaded->second->addRef(); return loaded->second; } else { DynLib * lib = new DynLib(path); lib->load(); libs[path] = lib; return lib; } }
//-------------------------------------------------------------------------------// void Root::loadPlugin(const String& pluginName) { DynLib* lib = TITAN_NEW DynLib(pluginName); lib->load(); if (std::find(mDynLibVector.begin(), mDynLibVector.end(), lib) == mDynLibVector.end()) { mDynLibVector.push_back(lib); // Call startup function DLL_START_PLUGIN pFunc = (DLL_START_PLUGIN)lib->getSymbol("dllStartPlugin"); if (!pFunc) TITAN_EXCEPT_FILELOST("Cannot find symbol dllStartPlugin in library " + pluginName); // This must call installPlugin pFunc(); } }
DynLib* DynLibManager::load(const std::string& fileName) { StringDynLibMap::iterator it = mLibsMap.find(fileName); if (it != mLibsMap.end()) { return it->second; } DynLib* pLib = new DynLib(fileName); if (!pLib->load()) { delete pLib; return 0; } mLibsMap[fileName] = pLib; return pLib; }