ICF 3.1.1.10
Technical documentation of ICF Libraries
TMessageDelegatorComp.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#ifndef ilog_TMessageDelegatorComp_included
7#define ilog_TMessageDelegatorComp_included
8
9
10// ICF includes
13
14
15namespace ilog
16{
17
18
22template <class BaseComponent>
23class TMessageDelegatorComp: public BaseComponent, virtual public ilog::IMessageConsumer
24{
25public:
26 typedef BaseComponent BaseClass;
27
28 I_BEGIN_COMPONENT(TMessageDelegatorComp);
29 I_REGISTER_INTERFACE(ilog::IMessageConsumer);
30 I_ASSIGN(m_slaveMessageConsumerCompPtr, "SlaveMessageConsumer", "Slave message consumer", false, "SlaveMessageConsumer");
31 I_END_COMPONENT;
32
33 // reimplemented (ilog::IMessageConsumer)
35 int messageCategory = -1,
36 int messageId = -1,
37 const QByteArray* senderIdPtr = nullptr) const override;
38 void AddMessage(const MessagePtr& messagePtr) override;
39
40protected:
41 I_REF(ilog::IMessageConsumer, m_slaveMessageConsumerCompPtr);
42};
43
44
45// public methods
46
47// reimplemented (ilog::IMessageConsumer)
48
49template <class BaseComponent>
51 int messageCategory,
52 int messageId,
53 const QByteArray* senderIdPtr) const
54{
55 if (m_slaveMessageConsumerCompPtr != nullptr) {
56 return m_slaveMessageConsumerCompPtr->IsMessageSupported(messageCategory, messageId, senderIdPtr);
57 }
58
59 return false;
60}
61
62
63template <class BaseComponent>
65{
66 if (m_slaveMessageConsumerCompPtr != nullptr) {
67 return m_slaveMessageConsumerCompPtr->AddMessage(messagePtr);
68 }
69}
70
71
72} // namespace ilog
73
74
75#endif // !ilog_TMessageDelegatorComp_included
76
77
Common interface for a message container consuming information objects (messages).
std::shared_ptr< const istd::IInformationProvider > MessagePtr
Delegator component for a message consumer.
bool IsMessageSupported(int messageCategory=-1, int messageId=-1, const QByteArray *senderIdPtr=nullptr) const override
Check if some messge is supported.
void AddMessage(const MessagePtr &messagePtr) override
Adds a message item to the container.
This namespace contains implementations for the logging functionality.

© Witold Gantzke and Kirill Lepskiy