ImagingTools Core SDK
CLicenseBasedRightsProviderComp.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/QByteArray>
7#include <QtCore/QMap>
8
9// ACF includes
10#include <iauth/IRightsProvider.h>
11#include <imod/IModel.h>
12#include <icomp/CComponentBase.h>
13#include <imod/CModelUpdateBridge.h>
14
15// ImtCore includes
16#include <imtlic/ILicenseInstanceProvider.h>
17
18
19namespace imtlic
20{
21
22
28 public icomp::CComponentBase,
29 virtual public iauth::IRightsProvider
30{
31public:
32 typedef icomp::CComponentBase BaseClass;
33
34 I_BEGIN_COMPONENT(CLicenseBasedRightsProviderComp);
35 I_REGISTER_INTERFACE(IRightsProvider);
36 I_ASSIGN(m_licenseInfoProviderCompPtr, "LicenseInfoProvider", "License info provider", false, "LicenseInfoProvider");
37 I_ASSIGN_TO(m_licenseInfoProviderModelCompPtr, m_licenseInfoProviderCompPtr, false);
38 I_ASSIGN(m_slaveProviderCompPtr, "SlaveProvider", "Slave rights provider. Rights of the slave override the license rights", false, "SlaveProvider");
39 I_ASSIGN_TO(m_slaveProviderModelCompPtr, m_slaveProviderCompPtr, false);
40 I_END_COMPONENT;
41
43
44 // reimplemented (iauth::IRightsProvider)
45 virtual bool HasRight(
46 const QByteArray& operationId,
47 bool beQuiet = false) const;
48
49protected:
50 // reimplemented (icomp::CComponentBase)
51 virtual void OnComponentCreated() override;
52 virtual void OnComponentDestroyed() override;
53
54private:
55 I_REF(imtlic::ILicenseInstanceProvider, m_licenseInfoProviderCompPtr);
56 I_REF(imod::IModel, m_licenseInfoProviderModelCompPtr);
57 I_REF(iauth::IRightsProvider, m_slaveProviderCompPtr);
58 I_REF(imod::IModel, m_slaveProviderModelCompPtr);
59
60 imod::CModelUpdateBridge m_updateBridge;
61};
62
63
64} // namespace imtlic
65
66
Core licensing domain model providing feature-based product licensing and instance management.