ImagingTools Core SDK
IFeatureInfo.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/QSet>
7
8// ACF includes
9#include <idoc/IDocumentMetaInfo.h>
10#include <iser/IObject.h>
11
12
13namespace imtlic
14{
15
16
174class IFeatureInfo: virtual public iser::IObject
175{
176public:
177 enum MetaInfoTypes
178 {
179 MIT_FEATURE_ID = idoc::IDocumentMetaInfo::MIT_USER + 1,
180 MIT_FEATURE_NAME,
181 MIT_FEATURE_DESCRIPTION,
182 MIT_IS_OPTIONAL,
183 MIT_IS_PERMISSION
184 };
185
186 typedef QSet<QByteArray> FeatureIds;
187 typedef istd::TSharedInterfacePtr<IFeatureInfo> FeatureInfoPtr;
188 typedef QVector<FeatureInfoPtr> FeatureInfoList;
189
194 virtual QByteArray GetFeatureId() const = 0;
195
200 virtual QString GetFeatureName() const = 0;
201
206 virtual QString GetFeatureDescription() const = 0;
207
218 virtual bool IsOptional() const = 0;
219
232 virtual bool IsPermission() const = 0;
233
239 virtual const IFeatureInfo* GetParentFeature() const = 0;
240
246 virtual QByteArrayList GetSubFeatureIds(int maxDepth = -1) const = 0;
247
254 virtual FeatureInfoPtr GetSubFeature(const QByteArray& subfeatureId, int maxDepth = -1) const = 0;
255
260 virtual const FeatureInfoList& GetSubFeatures() const = 0;
261
267 virtual bool InsertSubFeature(FeatureInfoPtr subFeatureInfo) = 0;
268
273 virtual void DeleteSubFeature(const QByteArray& subFeatureId) = 0;
274
280 virtual QByteArrayList GetDependencies() const = 0;
281};
282
283
284typedef istd::TUniqueInterfacePtr<IFeatureInfo> IFeatureInfoUniquePtr;
285typedef istd::TSharedInterfacePtr<IFeatureInfo> IFeatureInfoSharedPtr;
286
287
288} // namespace imtlic
289
290
Interface for accessing information about a feature within a product.
virtual const FeatureInfoList & GetSubFeatures() const =0
virtual QString GetFeatureDescription() const =0
virtual bool IsPermission() const =0
virtual FeatureInfoPtr GetSubFeature(const QByteArray &subfeatureId, int maxDepth=-1) const =0
virtual bool IsOptional() const =0
virtual bool InsertSubFeature(FeatureInfoPtr subFeatureInfo)=0
virtual void DeleteSubFeature(const QByteArray &subFeatureId)=0
virtual QByteArray GetFeatureId() const =0
virtual const IFeatureInfo * GetParentFeature() const =0
virtual QByteArrayList GetSubFeatureIds(int maxDepth=-1) const =0
virtual QByteArrayList GetDependencies() const =0
virtual QString GetFeatureName() const =0
Core licensing domain model providing feature-based product licensing and instance management.