ImagingTools Core SDK
CSdlUnion.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
11// ImtCore includes
12#include <imtsdl/imtsdl.h>
13#include <imtsdl/CSdlEntryBase.h>
14
15
16namespace imtsdl
17{
18
19
20class CSdlUnion;
21typedef QList<CSdlUnion> SdlUnionList;
22
23
24class CSdlUnion: virtual public CSdlEntryBase
25{
26
27public:
28 typedef CSdlEntryBase BaseClass;
29
31 [[nodiscard]] QList<QString> GetTypes() const;
32 void SetTypes(const QList<QString>& types);
33 void AddType(const QString& type);
34
35 // reimplemented(iser::ISerializable)
36 virtual bool Serialize(iser::IArchive& archive) override;
37
38 // operators
39 [[nodiscard]] bool operator==(const CSdlUnion& other) const;
40 [[nodiscard]] bool operator!=(const CSdlUnion& other) const { return !(operator==(other)); }
41
42private:
43 QList<QString> m_types;
44};
45
46
47}