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