comparison vamp-sdk/hostext/PluginLoader.h @ 69:3456fe86d385

* Switch PluginLoader to an m_impl structure to make it generally nicer
author cannam
date Wed, 06 Jun 2007 09:49:50 +0000
parents 9d3272c7db60
children 64697dca0d48
comparison
equal deleted inserted replaced
68:47d6e670a810 69:3456fe86d385
181 181
182 protected: 182 protected:
183 PluginLoader(); 183 PluginLoader();
184 virtual ~PluginLoader(); 184 virtual ~PluginLoader();
185 185
186 class PluginDeletionNotifyAdapter : public PluginWrapper { 186 class Impl;
187 public: 187 Impl *m_impl;
188 PluginDeletionNotifyAdapter(Plugin *plugin, PluginLoader *loader);
189 virtual ~PluginDeletionNotifyAdapter();
190 protected:
191 PluginLoader *m_loader;
192 };
193
194 virtual void pluginDeleted(PluginDeletionNotifyAdapter *adapter);
195
196 std::map<PluginKey, std::string> m_pluginLibraryNameMap;
197 void generateLibraryMap();
198
199 std::map<PluginKey, PluginCategoryHierarchy> m_taxonomy;
200 void generateTaxonomy();
201
202 std::map<Plugin *, void *> m_pluginLibraryHandleMap;
203
204 void *loadLibrary(std::string path);
205 void unloadLibrary(void *handle);
206 void *lookupInLibrary(void *handle, const char *symbol);
207
208 std::string splicePath(std::string a, std::string b);
209 std::vector<std::string> listFiles(std::string dir, std::string ext);
210 188
211 static PluginLoader *m_instance; 189 static PluginLoader *m_instance;
212 }; 190 };
213 191
214 } 192 }