9#ifndef INTERFACES_ISCRIPTLOADER_H
10#define INTERFACES_ISCRIPTLOADER_H
48 const QVariantList& args = {}) = 0;
64 virtual void AddQObject (QObject *
object,
const QString& name) = 0;
209Q_DECLARE_INTERFACE (
IScript,
"org.Deviant.LeechCraft.IScript/1.0")
Interface for objects representing scripts.
virtual QVariant InvokeMethod(const QString &name, const QVariantList &args={})=0
Runs the given function and returns its value.
virtual QObject * GetQObject()=0
Returns this script object as a QObject.
virtual void AddQObject(QObject *object, const QString &name)=0
Adds the given object to the script context.
virtual void Execute()=0
Executes the script.
Interface for plugins providing scripting.
virtual IScriptLoaderInstance_ptr CreateScriptLoaderInstance(const QString &relPath)=0
Creates an instance of the script loader.
Interface for script loaders.
virtual void AddGlobalPrefix()=0
Adds a global load prefix.
virtual IScript_ptr LoadScript(const QString &script)=0
Loads the given script.
virtual ~IScriptLoaderInstance()
virtual QObject * GetQObject()=0
Returns this loader instance as a QObject.
virtual void AddLocalPrefix(QString prefix=QString())=0
Adds a local load prefix.
virtual QVariantMap GetScriptInfo(const QString &script)=0
Returns the metadata of the given script.
virtual QStringList EnumerateScripts() const =0
Lists all available scripts.
std::shared_ptr< IScriptLoaderInstance > IScriptLoaderInstance_ptr
std::shared_ptr< IScript > IScript_ptr