ImagingTools Core SDK
CCompanyBaseInfo.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 <imod/CModelUpdateBridge.h>
7
8// ImtCore includes
9#include <imtbase/TIdentifiableWrap.h>
10#include <imtauth/ICompanyInfo.h>
11#include <imtauth/CContactBaseInfo.h>
12
13
14namespace imtauth
15{
16
17
18class CCompanyBaseInfo: virtual public ICompanyBaseInfo, virtual public CContactBaseInfo
19{
20public:
21 typedef CContactBaseInfo BaseClass;
22
23 CCompanyBaseInfo();
24
25 // reimplemented (ICompanyInfo)
26 virtual const ICompanyInfo* GetParent() const override;
27 virtual const istd::TPointerVector<const ICompanyBaseInfo>& GetChildren() const override;
28
29 // reimplemented (iser::ISerializable)
30 virtual bool Serialize(iser::IArchive& archive) override;
31
32 // reimplemented (iser::IChangeable)
33 virtual bool CopyFrom(const IChangeable &object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
34 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
35 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
36
37protected:
38 void GetAllCompanyRecursive(const CompanyInfoList& allCompany, int maxDepth, int currentDepth, QByteArrayList& companyList) const;
39 const ICompanyInfo* GetCompanyRecursive(const CompanyInfoList& allCompany, const QByteArray& subfeatureId, int maxDepth, int currentDepth = 1) const;
40
41private:
42 ICompanyInfo* m_parentCompanyPtr;
43 CompanyInfoList m_companyChildren;
44};
45
46
47typedef imtbase::TIdentifiableWrap<CCompanyBaseInfo> CIdentifiableCompanyBaseInfo;
48
49
50}