20 #ifndef TULIP_PLUGINLISTER_H
21 #define TULIP_PLUGINLISTER_H
27 #include <tulip/Plugin.h>
28 #include <tulip/TlpTools.h>
29 #include <tulip/PluginLibraryLoader.h>
61 struct PluginDescription {
100 template<
typename PluginType>
102 const Plugin* p = getPluginObject(pluginName,NULL);
107 bool result =
dynamic_cast<const PluginType*
>(p) != NULL;
122 template<
typename PluginType>
124 Plugin* p = getPluginObject(name,context);
125 PluginType* result =
dynamic_cast<PluginType*
>(getPluginObject(name, context));
127 if (result == NULL && p != NULL)
139 static std::list<std::string> availablePlugins();
141 template<
typename PluginType>
142 std::list<std::string> availablePlugins() {
143 std::list<std::string> keys;
145 for(std::map<std::string , PluginDescription>::const_iterator it = _plugins.begin(); it != _plugins.end(); ++it) {
146 PluginType* plugin =
dynamic_cast<PluginType*
>(it->second.factory->createPluginObject(NULL));
149 keys.push_back(it->first);
164 static const Plugin* pluginInformations(
const std::string& name);
172 static bool pluginExists(
const std::string& pluginName);
180 static const ParameterDescriptionList getPluginParameters(std::string name);
188 static std::list<tlp::Dependency> getPluginDependencies(std::string name);
196 static std::string getPluginLibrary(
const std::string& name);
205 static void removePlugin(
const std::string &name);
213 static void registerPlugin(FactoryInterface* objectFactory);
216 static PluginLister* _instance;
221 std::map<std::string , PluginDescription>
_plugins;
229 static std::string getPluginRelease(std::string name);
234 #endif //TULIP_PLUGINLISTER_H