ImagingTools Core SDK
CCollectionHeadersProviderComp.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
8// ImtCore includes
9#include <imtcol/ICollectionHeadersProvider.h>
10
11
12namespace imtcol
13{
14
15
16class CCollectionHeadersProviderComp : public icomp::CComponentBase, virtual public ICollectionHeadersProvider
17{
18public:
19 typedef icomp::CComponentBase BaseClass;
20
21 I_BEGIN_COMPONENT(CCollectionHeadersProviderComp);
22 I_REGISTER_INTERFACE(imtcol::ICollectionHeadersProvider);
23 I_ASSIGN_MULTI_0(m_headersIdsAttrPtr, "HeaderIds", "Headers Ids", true);
24 I_ASSIGN_MULTI_0(m_arrayTypeHeadersIdsAttrPtr, "ArrayTypeHeaderIds", "List of header IDs that represent ARRAY-type fields. Any header NOT listed here is treated as SCALAR by default.", false);
25 I_ASSIGN_MULTI_0(m_headersNamesAttrPtr, "HeaderNames", "Headers names", true);
26 I_ASSIGN_MULTI_0(m_sortableHeaderIdsAttrPtr, "SortableHeaderIds", "Header-IDs that can be sorted", false);
27 I_ASSIGN_MULTI_0(m_filterableHeaderIdsAttrPtr, "FilterableHeaderIds", "Header-IDs that can be filtered", false);
28 I_ASSIGN_MULTI_0(m_headerPermissionsAttrPtr, "HeaderPermissions", "Header access permissions", false);
29 I_END_COMPONENT;
30
31protected:
32 // reimplemented (imtcol::ICollectionHeadersProvider)
33 virtual HeaderIds GetHeaderIds() const override;
34 virtual bool GetHeaderInfo(const QByteArray& headerId, HeaderInfo& headerInfo) const override;
35
36private:
37 I_MULTIATTR(QByteArray, m_headersIdsAttrPtr);
38 I_MULTIATTR(QByteArray, m_arrayTypeHeadersIdsAttrPtr);
39 I_MULTITEXTATTR(m_headersNamesAttrPtr);
40 I_MULTIATTR(QByteArray, m_sortableHeaderIdsAttrPtr);
41 I_MULTIATTR(QByteArray, m_filterableHeaderIdsAttrPtr);
42 I_MULTIATTR(QByteArray, m_headerPermissionsAttrPtr);
43};
44
45
46} // namespace imtcom
47
48