LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
iscriptloader.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#ifndef INTERFACES_ISCRIPTLOADER_H
10
#define INTERFACES_ISCRIPTLOADER_H
11
#include <memory>
12
#include <QVariant>
13
19
class
Q_DECL_EXPORT
IScript
20
{
21
public
:
22
virtual
~IScript
() {}
23
28
virtual
QObject*
GetQObject
() = 0;
29
47
virtual
QVariant
InvokeMethod
(
const
QString& name,
48
const
QVariantList& args = {}) = 0;
49
64
virtual
void
AddQObject
(QObject *
object
,
const
QString& name) = 0;
65
76
virtual
void
Execute
() = 0;
77
};
78
79
typedef
std::shared_ptr<IScript>
IScript_ptr
;
80
113
class
Q_DECL_EXPORT
IScriptLoaderInstance
114
{
115
public
:
116
virtual
~IScriptLoaderInstance
() {}
117
122
virtual
QObject*
GetQObject
() = 0;
123
130
virtual
void
AddGlobalPrefix
() = 0;
131
136
virtual
void
AddLocalPrefix
(QString prefix = QString ()) = 0;
137
146
virtual
QStringList
EnumerateScripts
()
const
= 0;
147
150
virtual
QVariantMap
GetScriptInfo
(
const
QString& script) = 0;
151
168
virtual
IScript_ptr
LoadScript
(
const
QString& script) = 0;
169
};
170
171
typedef
std::shared_ptr<IScriptLoaderInstance>
IScriptLoaderInstance_ptr
;
172
186
class
Q_DECL_EXPORT
IScriptLoader
187
{
188
public
:
189
virtual
~IScriptLoader
() {}
190
206
virtual
IScriptLoaderInstance_ptr
CreateScriptLoaderInstance
(
const
QString& relPath) = 0;
207
};
208
209
Q_DECLARE_INTERFACE (
IScript
,
"org.Deviant.LeechCraft.IScript/1.0"
)
210
Q_DECLARE_INTERFACE (
IScriptLoaderInstance
,
"org.Deviant.LeechCraft.IScriptLoaderInstance/1.0"
)
211
Q_DECLARE_INTERFACE (
IScriptLoader
,
"org.Deviant.LeechCraft.IScriptLoader/1.0"
)
212
213
#endif
IScript
Interface for objects representing scripts.
Definition
iscriptloader.h:20
IScript::InvokeMethod
virtual QVariant InvokeMethod(const QString &name, const QVariantList &args={})=0
Runs the given function and returns its value.
IScript::~IScript
virtual ~IScript()
Definition
iscriptloader.h:22
IScript::GetQObject
virtual QObject * GetQObject()=0
Returns this script object as a QObject.
IScript::AddQObject
virtual void AddQObject(QObject *object, const QString &name)=0
Adds the given object to the script context.
IScript::Execute
virtual void Execute()=0
Executes the script.
IScriptLoader
Interface for plugins providing scripting.
Definition
iscriptloader.h:187
IScriptLoader::CreateScriptLoaderInstance
virtual IScriptLoaderInstance_ptr CreateScriptLoaderInstance(const QString &relPath)=0
Creates an instance of the script loader.
IScriptLoader::~IScriptLoader
virtual ~IScriptLoader()
Definition
iscriptloader.h:189
IScriptLoaderInstance
Interface for script loaders.
Definition
iscriptloader.h:114
IScriptLoaderInstance::AddGlobalPrefix
virtual void AddGlobalPrefix()=0
Adds a global load prefix.
IScriptLoaderInstance::LoadScript
virtual IScript_ptr LoadScript(const QString &script)=0
Loads the given script.
IScriptLoaderInstance::~IScriptLoaderInstance
virtual ~IScriptLoaderInstance()
Definition
iscriptloader.h:116
IScriptLoaderInstance::GetQObject
virtual QObject * GetQObject()=0
Returns this loader instance as a QObject.
IScriptLoaderInstance::AddLocalPrefix
virtual void AddLocalPrefix(QString prefix=QString())=0
Adds a local load prefix.
IScriptLoaderInstance::GetScriptInfo
virtual QVariantMap GetScriptInfo(const QString &script)=0
Returns the metadata of the given script.
IScriptLoaderInstance::EnumerateScripts
virtual QStringList EnumerateScripts() const =0
Lists all available scripts.
IScriptLoaderInstance_ptr
std::shared_ptr< IScriptLoaderInstance > IScriptLoaderInstance_ptr
Definition
iscriptloader.h:171
IScript_ptr
std::shared_ptr< IScript > IScript_ptr
Definition
iscriptloader.h:79
src
interfaces
iscriptloader.h
Generated by
1.17.0