aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h')
-rw-r--r--SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h b/SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h
new file mode 100644
index 0000000..4329463
--- /dev/null
+++ b/SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h
@@ -0,0 +1,25 @@
+#ifndef CLICOMMANDFACTORY_H
+#define CLICOMMANDFACTORY_H
+
+#include <QString>
+#include <QHash>
+
+class CliCommand;
+
+class CliCommandFactory
+{
+ public:
+ static void init();
+ static CliCommand* getCommand(const QString& cmdName);
+ static QHash<QString,CliCommand*> getAllCommands();
+ static QStringList getCommandNames();
+
+ private:
+ typedef CliCommand* (*CliCommandCreatorFunc)();
+
+ static void registerCommand(CliCommandCreatorFunc func);
+
+ static QHash<QString,CliCommandCreatorFunc> mapping;
+};
+
+#endif // CLICOMMANDFACTORY_H