ROSE 0.11.145.147
|
Filters messages based on time.
Any message posted within some specified time of a previously forwarded message will not be forwarded to children nodes in the plumbing lattice.
#include <Sawyer/Message.h>
Public Member Functions | |
size_t | nPosted () const |
Number of messages processed. | |
virtual bool | shouldForward (const MesgProps &) |
Predicate determines when a message should be forwarded onward. | |
virtual void | forwarded (const MesgProps &) |
Called once by bakeDestinations if shouldForward() returned true. | |
double | minInterval () const |
Property: minimum time between messages. | |
TimeFilterPtr | minInterval (double d) |
Property: minimum time between messages. | |
double | initialDelay () const |
Property: delay before the next message. | |
TimeFilterPtr | initialDelay (double d) |
Property: delay before the next message. | |
Public Member Functions inherited from Sawyer::Message::Filter | |
virtual void | bakeDestinations (const MesgProps &, BakedDestinations &) |
Bakes message properties according to the plumbing lattice. | |
Public Member Functions inherited from Sawyer::Message::Multiplexer | |
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 TimeFilterPtr | instance (double minInterval) |
Allocating constructor. | |
Static Public Member Functions inherited from Sawyer::Message::Multiplexer | |
static MultiplexerPtr | instance () |
Allocating constructor. | |
Protected Member Functions | |
TimeFilter (double minInterval) | |
Constructor for derived classes. | |
Protected Member Functions inherited from Sawyer::Message::Filter | |
Filter () | |
Constructor for derived classes. | |
Protected Member Functions inherited from Sawyer::Message::Multiplexer | |
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. | |
|
inlineexplicitprotected |
|
inlinestatic |
double Sawyer::Message::TimeFilter::minInterval | ( | ) | const |
Property: minimum time between messages.
Any message arriving within the specified interval from a previous message that was forwarded to children in the lattice will be discarded.
Thread safety: This method is thread-safe.
TimeFilterPtr Sawyer::Message::TimeFilter::minInterval | ( | double | d | ) |
Property: minimum time between messages.
Any message arriving within the specified interval from a previous message that was forwarded to children in the lattice will be discarded.
Thread safety: This method is thread-safe.
double Sawyer::Message::TimeFilter::initialDelay | ( | ) | const |
Property: delay before the next message.
Any message arriving within the specified number of seconds from this call will be discarded.
Thread safety: This method is thread-safe.
TimeFilterPtr Sawyer::Message::TimeFilter::initialDelay | ( | double | d | ) |
Property: delay before the next message.
Any message arriving within the specified number of seconds from this call will be discarded.
Thread safety: This method is thread-safe.
size_t Sawyer::Message::TimeFilter::nPosted | ( | ) | const |
Number of messages processed.
This includes messages forwarded and messages not forwarded.
Thread safety: This method is thread-safe.
|
virtual |
Predicate determines when a message should be forwarded onward.
This method is called once from bakeDestinations(), and if it returns true then the baking is forwarded on to the child nodes in the plumbing lattice. If this method returns false then none of the descendents will see the properties (unless they can be reached by some other path), and the unreached leaf nodes will not be returned by bakeDestinations().
Thread safety: all implementations must be thread-safe.
Implements Sawyer::Message::Filter.
|
virtual |
Called once by bakeDestinations if shouldForward() returned true.
This method is called after the properties have been forwarded to the child nodes.
Implements Sawyer::Message::Filter.