21 #if TY_COMPILER == TY_COMPILER_MSVC
22 #define WIN32_LEAN_AND_MEAN
62 filters.append(
"*.dll");
63 filters.append(
"*.so");
64 QFileInfoList file_list = directory.entryInfoList(filters, QDir::Files, QDir::Name);
70 QFileInfoList::const_iterator itfile;
71 for (itfile = file_list.begin(); itfile != file_list.end(); ++itfile)
74 plugin_data->
filename = itfile->absoluteFilePath();
77 itfile->absoluteFilePath().toUtf8().data());
94 itfile->absoluteFilePath().toUtf8().data());
104 itfile->absoluteFilePath().toUtf8().data());
115 itfile->absoluteFilePath().toUtf8().data());
143 QString dirPath = QDir::toNativeSeparators(directory);
150 dir.absolutePath().toUtf8().data());
178 for (TYPluginList::iterator it =
_plugins.begin(); it !=
_plugins.end(); ++it)
199 for (TYPluginList::const_iterator it =
_plugins.begin(); it !=
_plugins.end(); ++it)
200 if ((*it)->getPlugin()->getUUID() == uuid)
202 return (*it)->getPlugin();
221 if (info ==
"author")
225 else if (info ==
"version")
229 else if (info ==
"description")
235 return pInfos->
_name;
247 for (TYPluginList::iterator it =
_plugins.begin(); it !=
_plugins.end(); ++it)
248 if ((*it)->getPlugin()->getUUID() == uuid)
260 for (TYPluginList::iterator it =
_plugins.begin(); it !=
_plugins.end(); ++it)
261 if ((*it)->getPlugin()->getName() == solverName)
272 for (TYPluginList::iterator it =
_plugins.begin(); it !=
_plugins.end(); ++it)
274 if ((*it)->getPlugin()->getName() == solverName)
276 return (*it)->getPlugin()->getUUID();
287 plugin_manager->unloadPlugins();
288 plugin_manager->loadPlugins(path);
294 if (plugin_manager->getPluginList().empty())
302 mm->
info(
"***************************************************************");
303 mm->
info(
" CHARGEMENT DE LA DLL");
305 mm->
info(
"Nom : %s", pInfos->
_name.toLatin1().data());
306 mm->
info(
"Version : %s", pInfos->
_version.toLatin1().data());
308 mm->
info(
"Auteur : %s", pInfos->
_author.toLatin1().data());
310 mm->
info(
"***************************************************************");
318 if (plugin_manager->getPluginList().empty())
322 return plugin_manager->solverID(QString::fromStdString(
name));
Plugin * plugin
Le plugin associe au solver 9613.
#define DEFAULT_SOLVER_UUID
void(* TYPGStartPlugin)()
Plugin *(* TYPGGetPlugin)()
virtual void debug(const char *message,...)
static OMessageManager * get()
virtual void info(const char *message,...)
void getInfos(pluginInfos *pInfos)
SolverInterface * getSolver() const
Interface class for solvers.
bool exist(const OGenID &uuid)
OGenID solverID(const QString &solverName)
bool loadPlugins(const QString &directory)
Load, check, create and start plugins.
static LPTYPluginManager _pInstance
QString getInfo(const QString &info, const OGenID &uuid) const
Retourne une info spécifique du solveur.
TYPluginList & getPluginList()
void createPlugins(const QFileInfoList &file_list)
Create TYPluginData related to library files to load.
std::list< TYPluginData * > TYPluginList
bool startPlugin(TYPluginData *plugin_data)
Check the loaded plugin.
Plugin * getPlugin(const OGenID &uuid) const
SolverInterface * getSolver(const OGenID &uuid) const
QFileInfoList getPluginFileList(const QDir &directory) const
Get the list of dynamic library files to load.
void getInfos(pluginInfos *pInfos, const OGenID &uuid) const
static LPTYPluginManager get()
Utilities to handle exceptions and to pretty-print value.
#define tympan_source_loc
This macro build a source_loc object to be attached to a tympan::Exception.
OGenID solver_id(std::string name)
Return the id of the solver named name (a previous call to tympan::load_solvers() is.
SolverInterface * select_solver(OGenID uuid)
Select a solver amongst the loaded solvers (a previous call to tympan::load_solvers() is.
void load_solvers(const char *path)
Load the solver plugins found in path
TYPGStopPlugin stopPlugin
TYPGStartPlugin startPlugin
LIB_HANDLE pluginDllInstance
The base exception class for errors due to invalid data.