ImagingTools Core SDK
CIdentifiable.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 <iser/ISerializable.h>
7
8// ImtCore includes
9#include <imtbase/IIdentifiable.h>
10
11
12namespace imtbase
13{
14
15
16class CIdentifiable: virtual public IIdentifiable, virtual public iser::ISerializable
17{
18public:
19 // reimplemented (IIdentifiable)
20 virtual QByteArray GetObjectUuid() const override;
21 virtual bool SetObjectUuid(const QByteArray& identifier) override;
22
23 // reimplemented (iser::ISerializable)
24 virtual bool Serialize(iser::IArchive& archive) override;
25
26 // reimplemented (istd::IChangeable)
27 virtual int GetSupportedOperations() const override;
28 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
29 virtual bool IsEqual(const istd::IChangeable& object) const override;
30 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
31 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
32
33protected:
34 virtual bool IsIdentifierAccepted(const QByteArray& identifier) const;
35 virtual bool IsMutable() const;
36
37private:
38 QByteArray m_identifier;
39};
40
41
42} // namespace imtbase
43
44