ACF $AcfVersion:0$
TMessageDelegatorComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
8
9
10namespace ilog
11{
12
13
88template <class BaseComponent>
89class TMessageDelegatorComp: public BaseComponent, virtual public ilog::IMessageConsumer
90{
91public:
93 typedef BaseComponent BaseClass;
94
95 I_BEGIN_COMPONENT(TMessageDelegatorComp);
96 I_REGISTER_INTERFACE(ilog::IMessageConsumer);
97 I_ASSIGN(m_slaveMessageConsumerCompPtr, "SlaveMessageConsumer", "Slave message consumer", false, "SlaveMessageConsumer");
98 I_END_COMPONENT;
99
100 // reimplemented (ilog::IMessageConsumer)
101
113 virtual bool IsMessageSupported(
114 int messageCategory = -1,
115 int messageId = -1,
116 const istd::IInformationProvider* messagePtr = NULL) const override;
117
130 virtual void AddMessage(const MessagePtr& messagePtr) override;
131
132protected:
133 I_REF(ilog::IMessageConsumer, m_slaveMessageConsumerCompPtr);
134};
135
136
137// public methods
138
139// reimplemented (ilog::IMessageConsumer)
140
141template <class BaseComponent>
143 int messageCategory,
144 int messageId,
145 const istd::IInformationProvider* messagePtr) const
146{
147 if (m_slaveMessageConsumerCompPtr.IsValid()){
148 return m_slaveMessageConsumerCompPtr->IsMessageSupported(messageCategory, messageId, messagePtr);
149 }
150
151 return true;
152}
153
154
155template <class BaseComponent>
157{
158 if (m_slaveMessageConsumerCompPtr.IsValid()){
159 return m_slaveMessageConsumerCompPtr->AddMessage(messagePtr);
160 }
161}
162
163
164} // namespace ilog
165
166
167
168
Common interface for a message container consuming information objects (messages).
Template component that delegates messages to a slave consumer.
BaseComponent BaseClass
Base class typedef.
virtual void AddMessage(const MessagePtr &messagePtr) override
Forward a message to the slave consumer.
virtual bool IsMessageSupported(int messageCategory=-1, int messageId=-1, const istd::IInformationProvider *messagePtr=NULL) const override
Check if a message is supported.
Common interface for class providing some basic information object.
Shared ownership smart pointer for interface types.
#define NULL
Definition istd.h:74
This namespace contains implementations for the logging functionality.