sdi_toolBox
Private Member Functions | Friends | List of all members
INode Class Referenceabstract

#include <inode.h>

Inheritance diagram for INode:
Inheritance graph
[legend]

Detailed Description

Abstract interface representing a subscriber node in the event bus system.

INode is the base interface that all subscriber nodes must implement to participate in the event bus. It exposes a single private pure virtual method, append(), which is called exclusively by the Bus when a message is dispatched to this node.

The Bus is declared as a friend class to allow it to invoke append() without exposing it to the rest of the codebase, enforcing a strict encapsulation of the message delivery mechanism.

Note
INode is non-copyable and non-movable.
Direct instantiation is not possible - this class must be subclassed. The concrete implementation is provided by Node.
See also
Bus
Node
Message

Definition at line 41 of file inode.h.

Public Member Functions

Construction & Destruction
 INode ()=default
 Default constructor.
 
virtual ~INode ()=default
 Default destructor.
 
 INode (const INode &obj)=delete
 Copy constructor - deleted.
 
 INode (INode &&obj) noexcept=delete
 Move constructor - deleted.
 
INodeoperator= (const INode &obj)=delete
 Copy assignment operator - deleted.
 
INodeoperator= (INode &&obj) noexcept=delete
 Move assignment operator - deleted.
 

Private Member Functions

virtual void append (const std::shared_ptr< Message > &message)=0
 Insert a message into the node's internal message queue.
 

Friends

class Bus
 Allow the Bus class to access private members.
 

Constructor & Destructor Documentation

◆ INode() [1/3]

INode ( )
default

Default constructor.

◆ ~INode()

virtual ~INode ( )
virtualdefault

Default destructor.

◆ INode() [2/3]

INode ( const INode obj)
delete

Copy constructor - deleted.

INode is non-copyable.

◆ INode() [3/3]

INode ( INode &&  obj)
deletenoexcept

Move constructor - deleted.

INode is non-movable.

Member Function Documentation

◆ operator=() [1/2]

INode & operator= ( const INode obj)
delete

Copy assignment operator - deleted.

INode is non-copyable.

◆ operator=() [2/2]

INode & operator= ( INode &&  obj)
deletenoexcept

Move assignment operator - deleted.

INode is non-movable.

◆ append()

virtual void append ( const std::shared_ptr< Message > &  message)
privatepure virtual

Insert a message into the node's internal message queue.

This method is called exclusively by the Bus when a message matching this node's subscriptions (or a broadcast message) is dispatched. It must be implemented by all concrete subclasses to define how incoming messages are stored or processed.

Parameters
messageShared pointer to the message being delivered.
Note
This method is intentionally private and only accessible to Bus via the friend declaration, preventing external code from injecting messages directly into a node.

Implemented in Node.

Friends And Related Symbol Documentation

◆ Bus

friend class Bus
friend

Allow the Bus class to access private members.

Definition at line 43 of file inode.h.