ImagingTools Core SDK
CLoginBasedEnablerComp.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 <icomp/CComponentBase.h>
7#include <imod/TSingleModelObserverBase.h>
8#include <iprm/IEnableableParam.h>
9
10// ACF-Solutions includes
11#include <iauth/ILogin.h>
12
13
14namespace imtbase
15{
16
17
18class CLoginBasedEnablerComp:
19 public icomp::CComponentBase,
20 virtual public iprm::IEnableableParam,
21 protected imod::TSingleModelObserverBase<iauth::ILogin>
22{
23public:
24 typedef icomp::CComponentBase BaseClass;
25 typedef imod::TSingleModelObserverBase<iauth::ILogin> BaseClass2;
26
27 I_BEGIN_COMPONENT(CLoginBasedEnablerComp);
28 I_REGISTER_INTERFACE(iprm::IEnableableParam);
29 I_ASSIGN(m_loginCompPtr, "Login", "Login", true, "Login");
30 I_ASSIGN_TO(m_loginModelCompPtr, m_loginCompPtr, true);
31 I_END_COMPONENT;
32
33 CLoginBasedEnablerComp();
34
35 // reimplemented (iprm::IEnableableParam)
36 virtual bool IsEnabled() const override;
37 virtual bool IsEnablingAllowed() const override;
38 virtual bool SetEnabled(bool isEnabled = true) override;
39
40 // reimplemented (iser::ISerializable)
41 virtual bool Serialize(iser::IArchive& archive) override;
42
43protected:
44 // reimplemented (icomp::CComponentBase)
45 virtual void OnComponentCreated() override;
46 virtual void OnComponentDestroyed() override;
47
48 // reimplemented (imod::TSingleModelObserverBase)
49 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
50
51private:
52 I_REF(iauth::ILogin, m_loginCompPtr);
53 I_REF(imod::IModel, m_loginModelCompPtr);
54
55 bool m_isEnabled;
56};
57
58
59} // namespace imtbase
60
61