ImagingTools Core SDK
IScriptEngine.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
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>
12
13// ImtCore includes
14#include <imtpy/IScriptRunner.h>
15
16
17namespace imtpy
18{
19
20
21class IScriptEngine: virtual public istd::IChangeable
22{
23public:
27 virtual bool InitializeEngine(const iprm::IParamsSet* paramsPtr = nullptr) = 0;
28
32 virtual const iprm::IOptionsList& GetScriptInfoList() const = 0;
33
38 virtual QByteArray RegisterScript(const QString& scriptFilePath, IScriptRunner* runnerPtr = nullptr) = 0;
39
43 virtual void UnregisterScript(const QByteArray& scriptId) = 0;
44
48 virtual const iattr::IAttributesMetaInfoProvider* GetAttributeMetaInfoManager(const QByteArray& scriptId) const = 0;
49
53 virtual iattr::IAttributesProvider* GetAttributeManager(const QByteArray& scriptId) const = 0;
54
58 virtual bool SetAttributeValue(
59 const QByteArray& scriptId,
60 const QByteArray& attributeId,
61 const iser::IObject* valuePtr) = 0;
62
68 virtual int ExecuteScript(
69 const QByteArray& scriptId,
70 ibase::IProgressManager* progressPtr,
71 ilog::IMessageConsumer* logPtr) const = 0;
72};
73
74
75} // namespace imtpy
76
77