1 #ifndef COLLATIONMANAGERIMPL_H 2 #define COLLATIONMANAGERIMPL_H 3 4 #include "services/collationmanager.h" 5 6 class ScriptingPlugin; 7 class Plugin; 8 class PluginType; 9 10 class API_EXPORT CollationManagerImpl : public CollationManager 11 { 12 public: 13 CollationManagerImpl(); 14 15 void setCollations(const QList<CollationPtr>& newCollations); 16 QList<CollationPtr> getAllCollations() const; 17 QList<CollationPtr> getCollationsForDatabase(const QString& dbName) const; 18 int evaluate(const QString& name, const QString& value1, const QString& value2); 19 int evaluateDefault(const QString& value1, const QString& value2); 20 21 private: 22 void init(); 23 void storeInConfig(); 24 void loadFromConfig(); 25 void refreshCollationsByKey(); 26 27 QList<CollationPtr> collations; 28 QHash<QString,CollationPtr> collationsByKey; 29 QHash<QString,ScriptingPlugin*> scriptingPlugins; 30 31 private slots: 32 void pluginLoaded(Plugin* plugin, PluginType* type); 33 void pluginUnloaded(Plugin* plugin, PluginType* type); 34 }; 35 36 #endif // COLLATIONMANAGERIMPL_H 37