diff options
Diffstat (limited to 'SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h')
| -rw-r--r-- | SQLiteStudio3/sqlitestudiocli/commands/clicommandfactory.h | 25 |
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 |
