ImagingTools Core SDK
CAccountInfo.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 <iimg/CBitmap.h>
7#include <imod/TModelWrap.h>
8#include <istd/TSmartPtr.h>
9#include <imod/CModelUpdateBridge.h>
10
11// ImtCore includes
12#include <imtbase/TIdentifiableWrap.h>
13#include <imtbase/IObjectCollection.h>
14#include <imtauth/IAccountInfo.h>
15#include <imtauth/CContactInfo.h>
16
17
18namespace imtauth
19{
20
21
22class CAccountInfo: virtual public IAccountInfo, virtual public iauth::IRightsProvider
23{
24public:
25 static QByteArray GetTypeId();
26
27 CAccountInfo();
28 ~CAccountInfo();
29
30 // reimplemented (IAccountInfo)
31 virtual AccountType GetAccountType() const override;
32 virtual void SetAccountType(AccountType accountType) override;
33 virtual QString GetAccountName() const override;
34 virtual void SetAccountName(QString accountName) override;
35 virtual QString GetAccountDescription() const override;
36 virtual void SetAccountDescription(QString accountDescription) override;
37 virtual const iimg::IBitmap& GetAccountPicture() const override;
38 virtual void SetAccountPicture(const iimg::IBitmap& picture) override;
39 virtual const IContactInfo* GetAccountOwner() const override;
40 virtual void SetAccountOwner(const IContactInfo& ownerInfo) override;
41 virtual const iauth::IRightsProvider& GetAccountRights() const override;
42
43 // reimplemented (iauth::IRightsProvider)
44 virtual bool HasRight(const QByteArray& operationId, bool beQuiet = false) const override;
45
46 // reimplemented (iser::IObject)
47 virtual QByteArray GetFactoryId() const override;
48
49 // reimplemented (iser::ISerializable)
50 virtual bool Serialize(iser::IArchive& archive) override;
51
52 // reimplemented (istd::IChangeable)
53 virtual int GetSupportedOperations() const override;
54 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
55 virtual bool IsEqual(const IChangeable& object) const override;
56 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
57 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
58
59private:
60 AccountType m_accountType;
61 QString m_accountName;
62 QString m_accountDescription;
63 imod::TModelWrap<iimg::CBitmap> m_accountPicture;
64
65// imod::TModelWrap<CContactInfo> m_contact;
66 imod::CModelUpdateBridge m_contactUpdateBridge;
67};
68
69
70typedef imtbase::TIdentifiableWrap<CAccountInfo> CIdentifiableAccountInfo;
71
72
73} // namespace imtauth
74
75