6#include <iprm/IParamsSet.h>
7#include <iprm/IOptionsList.h>
8#include <ibase/IProgressManager.h>
9#include <ilog/IMessageConsumer.h>
10#include <iattr/IAttributesMetaInfoProvider.h>
11#include <iattr/IAttributesManager.h>
14#include <imtpy/IScriptRunner.h>
21class IScriptEngine:
virtual public istd::IChangeable
27 virtual bool InitializeEngine(
const iprm::IParamsSet* paramsPtr =
nullptr) = 0;
32 virtual const iprm::IOptionsList& GetScriptInfoList()
const = 0;
38 virtual QByteArray RegisterScript(
const QString& scriptFilePath, IScriptRunner* runnerPtr =
nullptr) = 0;
43 virtual void UnregisterScript(
const QByteArray& scriptId) = 0;
48 virtual const iattr::IAttributesMetaInfoProvider* GetAttributeMetaInfoManager(
const QByteArray& scriptId)
const = 0;
53 virtual iattr::IAttributesProvider* GetAttributeManager(
const QByteArray& scriptId)
const = 0;
58 virtual bool SetAttributeValue(
59 const QByteArray& scriptId,
60 const QByteArray& attributeId,
61 const iser::IObject* valuePtr) = 0;
68 virtual int ExecuteScript(
69 const QByteArray& scriptId,
70 ibase::IProgressManager* progressPtr,
71 ilog::IMessageConsumer* logPtr)
const = 0;