ROSE 0.11.145.192
|
Sends incoming messages to multiple destinations.
This is the base class for all internal nodes of the plumbing lattice.
#include <Sawyer/Message.h>
Public Member Functions | |
virtual void | bakeDestinations (const MesgProps &, BakedDestinations &) |
Bakes message properties according to the plumbing lattice. | |
virtual void | post (const Mesg &, const MesgProps &) |
Causes a message to be emitted. | |
MultiplexerPtr | addDestination (const DestinationPtr &) |
Adds a child node to this node of the lattice. | |
MultiplexerPtr | removeDestination (const DestinationPtr &) |
Removes the specified child from this node of the lattice. | |
MultiplexerPtr | to (const DestinationPtr &) |
Add a child nodes to this node of the lattice and returns this node. | |
MultiplexerPtr | to (const DestinationPtr &, const DestinationPtr &) |
Add a child nodes to this node of the lattice and returns this node. | |
MultiplexerPtr | to (const DestinationPtr &, const DestinationPtr &, const DestinationPtr &) |
Add a child nodes to this node of the lattice and returns this node. | |
MultiplexerPtr | to (const DestinationPtr &, const DestinationPtr &, const DestinationPtr &, const DestinationPtr &) |
Add a child nodes to this node of the lattice and returns this node. | |
Public Member Functions inherited from Sawyer::Message::Destination | |
MesgProps | mergePropertiesNS (const MesgProps &props) |
Merge properties of this lattice node into the specified properties. | |
const MesgProps & | defaultPropertiesNS () const |
Default values for message properties. | |
MesgProps & | defaultPropertiesNS () |
Default values for message properties. | |
const MesgProps & | overridePropertiesNS () const |
Overrides message properties. | |
MesgProps & | overridePropertiesNS () |
Overrides message properties. | |
Public Member Functions inherited from Sawyer::SharedObject | |
SharedObject () | |
Default constructor. | |
SharedObject (const SharedObject &) | |
Copy constructor. | |
virtual | ~SharedObject () |
Virtual destructor. | |
SharedObject & | operator= (const SharedObject &) |
Assignment. | |
Public Member Functions inherited from Sawyer::SharedFromThis< Destination > | |
SharedPointer< Destination > | sharedFromThis () |
Create a shared pointer from this . | |
SharedPointer< const Destination > | sharedFromThis () const |
Create a shared pointer from this . | |
Static Public Member Functions | |
static MultiplexerPtr | instance () |
Allocating constructor. | |
Protected Member Functions | |
Multiplexer () | |
Constructor for derived classes. | |
Additional Inherited Members | |
Protected Attributes inherited from Sawyer::Message::Destination | |
Sawyer::SynchronizationTraits< Sawyer::SingleThreadedTag >::RecursiveMutex | mutex_ |
Mutex protecting data members here and in subclasses. | |
MesgProps | dflts_ |
Default properties merged into each incoming message. | |
MesgProps | overrides_ |
Override properties applied to incoming message. | |
|
inlineprotected |
|
inlinestatic |
|
virtual |
Bakes message properties according to the plumbing lattice.
The given message properties are applied to the plumbing lattice rooted at this Destination, adjusted according to the default and override properties at this node of the lattice and all lower nodes. The property values at the bottom nodes of the lattice are appended to the baked
argument.
Thread safety: All implementations must be thread-safe.
Reimplemented from Sawyer::Message::Destination.
Reimplemented in Sawyer::Message::Filter.
|
virtual |
Causes a message to be emitted.
The bakedProperties
argument is one of the values returned by the bakeDestinations method.
Implements Sawyer::Message::Destination.
MultiplexerPtr Sawyer::Message::Multiplexer::addDestination | ( | const DestinationPtr & | ) |
Adds a child node to this node of the lattice.
An std::runtime_error
is thrown if the addition of this child would cause the lattice to become malformed by having a cycle.
Thread safety: This method is not thread-safe.
MultiplexerPtr Sawyer::Message::Multiplexer::removeDestination | ( | const DestinationPtr & | ) |
Removes the specified child from this node of the lattice.
Thread safety: This method is thread-safe.
MultiplexerPtr Sawyer::Message::Multiplexer::to | ( | const DestinationPtr & | ) |
Add a child nodes to this node of the lattice and returns this node.
It is often more convenient to call this method instead of addDestination.
Thread safety: This method is not thread-safe.
MultiplexerPtr Sawyer::Message::Multiplexer::to | ( | const DestinationPtr & | , |
const DestinationPtr & | |||
) |
Add a child nodes to this node of the lattice and returns this node.
It is often more convenient to call this method instead of addDestination.
Thread safety: This method is not thread-safe.
MultiplexerPtr Sawyer::Message::Multiplexer::to | ( | const DestinationPtr & | , |
const DestinationPtr & | , | ||
const DestinationPtr & | |||
) |
Add a child nodes to this node of the lattice and returns this node.
It is often more convenient to call this method instead of addDestination.
Thread safety: This method is not thread-safe.
MultiplexerPtr Sawyer::Message::Multiplexer::to | ( | const DestinationPtr & | , |
const DestinationPtr & | , | ||
const DestinationPtr & | , | ||
const DestinationPtr & | |||
) |
Add a child nodes to this node of the lattice and returns this node.
It is often more convenient to call this method instead of addDestination.
Thread safety: This method is not thread-safe.