ImagingTools Core SDK
CObjectLink.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// ImtCore includes
6#include <imtbase/ICollectionObjectLink.h>
7
8
9namespace imtbase
10{
11
12
13class CObjectLink: virtual public ICollectionObjectLink
14{
15public:
16 virtual void SetFactoryId(const QByteArray& objectType);
17 virtual void SetCollectionPtr(const imtbase::IObjectCollection* collectionPtr);
18
19 // reimplemented (ICollectionObjectLink)
20 virtual const imtbase::IObjectCollection* GetCollection() const override;
21
22 // reimplemented (IIdentifiable)
23 virtual QByteArray GetObjectUuid() const override;
24 virtual bool SetObjectUuid(const QByteArray& objectUuid) override;
25
26 // reimplemented (iser::IObject)
27 virtual QByteArray GetFactoryId() const override;
28
29 // reimplemented (iser::ISerializable)
30 virtual bool Serialize(iser::IArchive& archive) override;
31
32 // reimplemented (istd::IChangeable)
33 virtual int GetSupportedOperations() const override;
34 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
35 virtual bool IsEqual(const IChangeable& object) const override;
36 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
37 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
38
39private:
40 QByteArray m_objectUuid;
41 QByteArray m_objectTypeId;
42 const imtbase::IObjectCollection* m_collectionPtr;
43};
44
45
46} // namespace imtbase
47
48