diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h index d081073..80aa758 100644 --- a/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h +++ b/SQLiteStudio3/coreSQLiteStudio/plugins/scriptingplugin.h @@ -15,33 +15,45 @@ class ScriptingPlugin : virtual public Plugin virtual ~Context() {} }; + class FunctionInfo + { + public: + virtual QString getName() const = 0; + virtual QStringList getArguments() const = 0; + virtual bool getUndefinedArgs() const = 0; + }; + virtual QString getLanguage() const = 0; virtual Context* createContext() = 0; virtual void releaseContext(Context* context) = 0; virtual void resetContext(Context* context) = 0; virtual void setVariable(Context* context, const QString& name, const QVariant& value) = 0; virtual QVariant getVariable(Context* context, const QString& name) = 0; - virtual QVariant evaluate(Context* context, const QString& code, const QList<QVariant>& args = QList<QVariant>()) = 0; + virtual QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, + const QList<QVariant>& args = QList<QVariant>()) = 0; virtual bool hasError(Context* context) const = 0; virtual QString getErrorMessage(Context* context) const = 0; - virtual QVariant evaluate(const QString& code, const QList<QVariant>& args = QList<QVariant>(), QString* errorMessage = nullptr) = 0; + virtual QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList<QVariant>& args = QList<QVariant>(), + QString* errorMessage = nullptr) = 0; virtual QString getIconPath() const = 0; }; class DbAwareScriptingPlugin : public ScriptingPlugin { public: - virtual QVariant evaluate(Context* context, const QString& code, const QList<QVariant>& args, Db* db, bool locking = false) = 0; - virtual QVariant evaluate(const QString& code, const QList<QVariant>& args, Db* db, bool locking = false, QString* errorMessage = nullptr) = 0; + virtual QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, const QList<QVariant>& args, + Db* db, bool locking = false) = 0; + virtual QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList<QVariant>& args, Db* db, + bool locking = false, QString* errorMessage = nullptr) = 0; - QVariant evaluate(Context* context, const QString& code, const QList<QVariant>& args) + QVariant evaluate(Context* context, const QString& code, const FunctionInfo& funcInfo, const QList<QVariant>& args) { - return evaluate(context, code, args, nullptr, true); + return evaluate(context, code, funcInfo, args, nullptr, true); } - QVariant evaluate(const QString& code, const QList<QVariant>& args, QString* errorMessage = nullptr) + QVariant evaluate(const QString& code, const FunctionInfo& funcInfo, const QList<QVariant>& args, QString* errorMessage = nullptr) { - return evaluate(code, args, nullptr, true, errorMessage); + return evaluate(code, funcInfo, args, nullptr, true, errorMessage); } }; |
