#ifndef CTKPLUGINREPOSITORY_P_H #define CTKPLUGINREPOSITORY_P_H #include "ctkPlugin.h" #include "ctkVersion.h" #include #include namespace ctk { class PluginRepository { private: QList pluginsByInstallOrder; QHash pluginsById; QHash > pluginsBySymbolicName; public: const QList& getPlugins() const; Plugin* getPlugin(long pluginId) const; QList getPlugins(const QString& symbolicName) const; Plugin* getPlugin(const QString& symbolicName, const Version& version); void add(Plugin* plugin); bool remove(Plugin* plugin); void update(const QString& oldSymbolicName, Plugin* plugin); void removeAllPlugins(); private: void addSymbolicName(Plugin* plugin); void removeSymbolicName(const QString& symbolicName, Plugin* plugin); }; } #endif // CTKPLUGINREPOSITORY_P_H