ImagingTools Core SDK
IReferenceCollection.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/IObjectCollectionInfo.h>
10#include <imtbase/ICollectionObjectLink.h>
11
12
13namespace imtbase
14{
15
16
22 virtual public IObjectCollectionInfo,
23 virtual public iser::ISerializable
24{
25public:
26 typedef std::shared_ptr<const ICollectionObjectLink> ICollectionObjectLinkPtr;
27
28 virtual ICollectionObjectLinkPtr GetObjectLink(const Id& objectId, const QByteArray& repositoryId = QByteArray()) const = 0;
29
35 virtual bool InsertReference(const Id& objectId, const QByteArray& repositoryId = QByteArray()) = 0;
36
40 virtual bool RemoveReference(const Id& objectId) = 0;
41
45 virtual bool RemoveAllReferences() = 0;
46};
47
48
49typedef istd::TUniqueInterfacePtr<IReferenceCollection> IReferenceCollectionUniquePtr;
50typedef istd::TSharedInterfacePtr<IReferenceCollection> IReferenceCollectionSharedPtr;
51
52
53} // namespace imtbase
54
55
virtual bool RemoveAllReferences()=0
virtual bool InsertReference(const Id &objectId, const QByteArray &repositoryId=QByteArray())=0
virtual bool RemoveReference(const Id &objectId)=0