ImagingTools Core SDK
CSdlRequest.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// Qt includes
6#include <QtCore/QString>
7
8//Acf includes
9#include <iser/ISerializable.h>
10#include <imod/CModelUpdateBridge.h>
11#include <iprm/IParamsSet.h>
12
13// ImtCore includes
14#include <imtsdl/imtsdl.h>
15#include <imtsdl/CSdlEntryBase.h>
16#include <imtsdl/CSdlField.h>
17
18
19
20namespace imtsdl
21{
22
23
24class CSdlRequest;
25typedef QList<CSdlRequest> SdlRequestList;
26
27
28class CSdlRequest: virtual public CSdlEntryBase
29{
30
31public:
32 typedef CSdlEntryBase BaseClass;
33 enum Type
34 {
35 T_QUERY,
36 T_MUTATION,
37 T_SUBSCRIPTION
38 };
39 I_DECLARE_ENUM(Type, T_QUERY, T_MUTATION, T_SUBSCRIPTION)
40
41 CSdlRequest();
42 Type GetType() const;
43 void SetType(Type type);
44
45 SdlFieldList GetInputArguments() const;
46 void SetInputArguments(const SdlFieldList& inputArguments);
47
48 CSdlField GetOutputArgument() const;
49 void SetOutputArgument(const CSdlField& outputArgument);
50
51 // operators
52 bool operator==(const CSdlRequest& other) const;
53 bool operator!=(const CSdlRequest& other) const {return !(operator==(other));}
54
55 // reimplemented(iser::ISerializable)
56 virtual bool Serialize(iser::IArchive& archive) override;
57
58private:
59 Type m_type;
60 SdlFieldList m_inputArguments;
61 CSdlField m_outputArgument;
62};
63
64
65} // namespace imtsdl