ACF $AcfVersion:0$
Public Types | Public Member Functions | List of all members
ilog::TMessageDelegatorComp< BaseComponent > Class Template Reference

Template component that delegates messages to a slave consumer. More...

#include <TMessageDelegatorComp.h>

Inheritance diagram for ilog::TMessageDelegatorComp< BaseComponent >:
ilog::IMessageConsumer istd::IPolymorphic

Public Types

typedef BaseComponent BaseClass
 Base class typedef.
 
- Public Types inherited from ilog::IMessageConsumer
typedef istd::TSharedInterfacePtr< istd::IInformationProviderMessagePtr
 Shared pointer type for message objects.
 

Public Member Functions

virtual bool IsMessageSupported (int messageCategory=-1, int messageId=-1, const istd::IInformationProvider *messagePtr=NULL) const override
 Check if a message is supported.
 
virtual void AddMessage (const MessagePtr &messagePtr) override
 Forward a message to the slave consumer.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Detailed Description

template<class BaseComponent>
class ilog::TMessageDelegatorComp< BaseComponent >

Template component that delegates messages to a slave consumer.

TMessageDelegatorComp provides message delegation functionality by implementing IMessageConsumer and forwarding all messages to a configurable slave consumer. This enables building chains and hierarchies of message consumers.

The template can be combined with any component base class to add message delegation capability.

Template Parameters
BaseComponentBase component class to extend with delegation (typically icomp::CComponentBase or derived)
Features
  • Implements IMessageConsumer interface
  • Forwards all messages to slave consumer
  • Component-based configuration
  • Supports message filtering by slave
  • Can be used to build consumer chains
Component References
Usage Example
// Create a simple delegator component
class MyDelegator : public ilog::TMessageDelegatorComp<icomp::CComponentBase>
{
public:
I_BEGIN_COMPONENT(MyDelegator);
// SlaveMessageConsumer reference is inherited
I_END_COMPONENT;
// Can add custom processing before/after delegation
virtual void AddMessage(const MessagePtr& messagePtr) override {
// Custom processing
qDebug() << "Forwarding:" << messagePtr->GetInformationDescription();
// Delegate to slave
BaseClass::AddMessage(messagePtr);
}
};
// Configure chain
// MessageSource -> MyDelegator -> FinalConsumer
Template component that delegates messages to a slave consumer.
BaseComponent BaseClass
Base class typedef.
Shared ownership smart pointer for interface types.
Component Configuration
<Component Id="Delegator" Class="MyDelegatorClass">
<Reference Id="SlaveMessageConsumer" Value="FinalConsumer"/>
</Component>
Building Consumer Chains
// Create consumers
istd::TSharedInterfacePtr<MyDelegator> delegator1(new MyDelegator);
istd::TSharedInterfacePtr<MyDelegator> delegator2(new MyDelegator);
// Configure chain: source -> delegator1 -> delegator2 -> finalLog
// delegator1.SlaveMessageConsumer -> delegator2
// delegator2.SlaveMessageConsumer -> finalLog
// Messages sent to delegator1 are forwarded through the chain
Complete logging component with message storage and container interface.
Definition CLogComp.h:86
See also
ilog::IMessageConsumer, ilog::CLogCompBase

Definition at line 89 of file TMessageDelegatorComp.h.

Member Typedef Documentation

◆ BaseClass

template<class BaseComponent >
typedef BaseComponent ilog::TMessageDelegatorComp< BaseComponent >::BaseClass

Base class typedef.

Definition at line 93 of file TMessageDelegatorComp.h.

Member Function Documentation

◆ AddMessage()

template<class BaseComponent >
void ilog::TMessageDelegatorComp< BaseComponent >::AddMessage ( const MessagePtr messagePtr)
overridevirtual

Forward a message to the slave consumer.

If a slave consumer is configured via SlaveMessageConsumer reference, the message is forwarded to it. If no slave is configured, the message is silently discarded.

Parameters
messagePtrShared pointer to message to forward
Note
This method does nothing if no slave is configured. Override to add custom behavior when no slave is present.

Implements ilog::IMessageConsumer.

Reimplemented in ilog::CLogComp, and ilog::CLogCompBase.

Definition at line 156 of file TMessageDelegatorComp.h.

◆ IsMessageSupported()

template<class BaseComponent >
bool ilog::TMessageDelegatorComp< BaseComponent >::IsMessageSupported ( int  messageCategory = -1,
int  messageId = -1,
const istd::IInformationProvider messagePtr = NULL 
) const
overridevirtual

Check if a message is supported.

Delegates the check to the slave consumer if present. If no slave is configured, returns true (accepts all messages).

Parameters
messageCategoryMessage category to check (or -1)
messageIdMessage ID to check (or -1)
messagePtrComplete message to check (or NULL)
Returns
true if message is supported by slave (or if no slave)

Implements ilog::IMessageConsumer.

Reimplemented in ilog::CLogComp, and ilog::CStreamLogCompBase.

Definition at line 142 of file TMessageDelegatorComp.h.


The documentation for this class was generated from the following file: