ImagingTools Core SDK
CGroupMessageIdsProviderComp.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 <imtlog/IGroupMessageIdsProvider.h>
10
11
12namespace imtlog
13{
14
15
16class CGroupMessageIdsProviderComp:
17 public icomp::CComponentBase,
18 virtual public IGroupMessageIdsProvider
19{
20public:
21 typedef icomp::CComponentBase BaseClass;
22
23 I_BEGIN_COMPONENT(CGroupMessageIdsProviderComp)
24 I_REGISTER_INTERFACE(IGroupMessageIdsProvider);
25 I_TASSIGN_MULTI_0(m_idsAttrPtr, "MessageIdList", "Message id list", false);
26 I_ASSIGN(m_groupIdAttrPtr, "GroupId", "Group id", true, "");
27 I_ASSIGN(m_slaveAttrPtr, "SlaveProvider", "Slave group message ids provider", false, "");
28 I_END_COMPONENT
29
30 // reimplemented (imtlog::IGroupMessageIdsProvider)
31 virtual bool GetGroupMessageIds(const QByteArray& groupId, QSet<int>& messageIds) const override;
32
33private:
34 I_MULTIATTR(int, m_idsAttrPtr);
35 I_ATTR(QByteArray, m_groupIdAttrPtr);
36 I_REF(IGroupMessageIdsProvider, m_slaveAttrPtr);
37};
38
39
40} // namespace imtlog
41
42