39 lines
872 B
C++
39 lines
872 B
C++
#ifndef JSENGINE_H
|
|
#define JSENGINE_H
|
|
|
|
#include <QJSValue>
|
|
#include <QThreadPool>
|
|
|
|
#include "DoricExport.h"
|
|
|
|
#include "../DoricRegistry.h"
|
|
#include "DoricInterfaceJSE.h"
|
|
|
|
class DORIC_EXPORT DoricJSEngine : public QObject {
|
|
Q_OBJECT
|
|
private:
|
|
DoricInterfaceJSE *mJSE;
|
|
DoricRegistry *mRegistry = DoricRegistry::getInstance();
|
|
|
|
void loadBuiltinJS(QString assetName);
|
|
QString packageContextScript(QString contextId, QString content);
|
|
QString packageModuleScript(QString moduleName, QString content);
|
|
|
|
public:
|
|
QThreadPool mJSThreadPool;
|
|
|
|
explicit DoricJSEngine(QObject *parent = nullptr);
|
|
|
|
~DoricJSEngine();
|
|
|
|
QString prepareContext(QString contextId, QString script, QString source);
|
|
|
|
QString destroyContext(QString contextId);
|
|
|
|
QString invokeDoricMethod(QString method, QVariantList arguments);
|
|
|
|
DoricRegistry *getRegistry();
|
|
};
|
|
|
|
#endif // JSENGINE_H
|