ctkPluginRepository_p.h 928 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef CTKPLUGINREPOSITORY_P_H
  2. #define CTKPLUGINREPOSITORY_P_H
  3. #include "ctkPlugin.h"
  4. #include "ctkVersion.h"
  5. #include <QList>
  6. #include <QHash>
  7. namespace ctk {
  8. class PluginRepository {
  9. private:
  10. QList<Plugin*> pluginsByInstallOrder;
  11. QHash<long, Plugin*> pluginsById;
  12. QHash<QString, QList<Plugin*> > pluginsBySymbolicName;
  13. public:
  14. const QList<Plugin*>& getPlugins() const;
  15. Plugin* getPlugin(long pluginId) const;
  16. QList<Plugin*> getPlugins(const QString& symbolicName) const;
  17. Plugin* getPlugin(const QString& symbolicName, const Version& version);
  18. void add(Plugin* plugin);
  19. bool remove(Plugin* plugin);
  20. void update(const QString& oldSymbolicName, Plugin* plugin);
  21. void removeAllPlugins();
  22. private:
  23. void addSymbolicName(Plugin* plugin);
  24. void removeSymbolicName(const QString& symbolicName, Plugin* plugin);
  25. };
  26. }
  27. #endif // CTKPLUGINREPOSITORY_P_H