\image html ratestuffer.png
Above image depicts the module setup implementing the rate stuffer. A
- senf::ppi::module::ActiveSocketReader reads the incoming UDP packets and sends them into a
+ senf::ppi::module::ActiveSocketSource reads the incoming UDP packets and sends them into a
senf::ppi::module::PassiveQueue (via a senf::ppi::module::ThrottleBarrier).
The \a queue feeds the packets into a senf::ppi::module::PriorityJoin. The CloneSource
CopyPacketGenerator generator (stuffingPacket);
senf::UDPv4ClientSocketHandle inputSocket (1111);
- senf::ppi::module::ActiveSocketReader udpInput (inputSocket);
+ senf::ppi::module::ActiveSocketSource<> udpInput (inputSocket);
senf::UDPv4ClientSocketHandle outputSocket ("2.3.4.5:2222");
- senf::ppi::module::PassiveSocketWriter udpOutput (outputSocket);
+ senf::ppi::module::PassiveSocketSink<> udpOutput (outputSocket);
senf::ppi::module::PassiveQueue adaptor;
{
# include SENF_FIXED_PARSER()
- SENF_PARSER_FIELD ( sync_byte , UInt8Parser );
-
- SENF_PARSER_BITFIELD ( transport_error_indicator , 1 , bool );
- SENF_PARSER_BITFIELD ( pusi , 1 , bool );
- SENF_PARSER_BITFIELD ( transport_priority , 1 , bool );
- SENF_PARSER_BITFIELD ( pid , 13 , unsigned );
- SENF_PARSER_BITFIELD ( transport_scrmbl_ctrl , 2 , unsigned );
- SENF_PARSER_BITFIELD ( adaptation_field_ctrl , 2 , unsigned );
- SENF_PARSER_BITFIELD ( continuity_counter , 4 , unsigned );
+ SENF_PARSER_FIELD ( sync_byte, UInt8Parser );
+
+ SENF_PARSER_BITFIELD ( transport_error_indicator, 1, bool );
+ SENF_PARSER_BITFIELD ( pusi, 1, bool );
+ SENF_PARSER_BITFIELD ( transport_priority, 1, bool );
+ SENF_PARSER_BITFIELD ( pid, 13, unsigned );
+ SENF_PARSER_BITFIELD ( transport_scrmbl_ctrl, 2, unsigned );
+ SENF_PARSER_BITFIELD ( adaptation_field_ctrl, 2, unsigned );
+ SENF_PARSER_BITFIELD ( continuity_counter, 4, unsigned );
SENF_PARSER_FINALIZE( TransportPacketParser );
multicast groups received. The group is left from the
interface with the given local address.
\param[in] mcAddr address of group to leave
- \param[in] localAddr address of interface to leave
- from */
+ \param[in] iface interface name */
};
class INet6MulticastProtocol
<em>Runtime</em> configuration on the other hand deals with routing all those messages, which
are enabled at compile time to the logging targets. If a message is not routed, it will be
discarded. This allows to additionally disable messages at run-time. Message routing is managed
- via the \ref Target interface.
+ via the \ref Targets interface.
\section config_compile Compile time configuration
/** \brief Default global log stream */
SENF_LOG_DEF_STREAM(Debug, MESSAGE, MESSAGE, MESSAGE);
- /** \brief Default global log area */
+ /** \brief Default global %log area */
SENF_LOG_DEF_AREA(DefaultArea);
///\}
namespace senf {
namespace log {
- /** \brief Log target writing to a log file.
+ /** \brief Log target writing to a %log file.
- The FileTarget will save all log messages in the given file. Messages will be appended at
+ The FileTarget will save all %log messages in the given file. Messages will be appended at
the end of the file.
- After log files have been rotated, the reopen() member should be called to create a new log
+ After %log files have been rotated, the reopen() member should be called to create a new %log
file.
\ingroup targets
///@}
///////////////////////////////////////////////////////////////////////////
- void reopen(); ///< Reopen log after log-file rotation
- void reopen(std::string file); ///< Reopen log under a new name
+ void reopen(); ///< Reopen %log after log-file rotation
+ void reopen(std::string file); ///< Reopen %log under a new name
private:
std::string file_;
namespace senf {
namespace log {
- /** \brief Write log messages to arbitrary std::ostream
+ /** \brief Write %log messages to arbitrary std::ostream
- This target will write log messages to an arbitrary std::ostream in the format
+ This target will write %log messages to an arbitrary std::ostream in the format
<pre>
<date> [<area>] <message>
</pre>
namespace senf {
namespace log {
- /** \brief Store log messages in a string buffer
+ /** \brief Store %log messages in a string buffer
This target is mostly useful for debug purposes.
/** \brief Logging target base class
- Targets are the final destination of log messages. Every message is eventually routed to one
+ Targets are the final destination of %log messages. Every message is eventually routed to one
or several targets.
\section target_routing Routing
simple logging over NFS or many other network
protocols.
- \param[in] timestamp log message timing information
+ \param[in] timestamp %log message timing information
\param[in] stream message stream
\param[in] area message area
\param[in] level message level
virtual boost::posix_time::ptime operator()() const = 0;
};
- /** \brief Default log message time source
+ /** \brief Default %log message time source
This time source is installed by default and uses gettimeofday() (via the Boost.DateTime
library) to get the current universal time.