///////////////////////////////////////////////////////////////////////////
// senf::ppi::connector::PassiveConnector
+prefix_ senf::ppi::connector::PassiveConnector::~PassiveConnector()
+{
+ // Must be here and NOT in base so it is called before destructing the routes_ member
+ unregisterConnector();
+}
+
////////////////////////////////////////
// private members
///////////////////////////////////////////////////////////////////////////
// senf::ppi::connector::ActiveConnector
+prefix_ senf::ppi::connector::ActiveConnector::~ActiveConnector()
+{
+ // Must be here and NOT in base so it is called before destructing the routes_ member
+ unregisterConnector();
+}
+
////////////////////////////////////////
// private members
///////////////////////////////////////////////////////////////////////////
// senf::ppi::connector::PassiveConnector
-prefix_ senf::ppi::connector::PassiveConnector::~PassiveConnector()
-{
- // Must be here and NOT in base so it is called before destructing the routes_ member
- unregisterConnector();
-}
-
template <class Handler>
prefix_ void senf::ppi::connector::PassiveConnector::onRequest(Handler handler)
{
///////////////////////////////////////////////////////////////////////////
// senf::ppi::connector::ActiveConnector
-prefix_ senf::ppi::connector::ActiveConnector::~ActiveConnector()
-{
- // Must be here and NOT in base so it is called before destructing the routes_ member
- unregisterConnector();
-}
-
template <class Handler>
prefix_ void senf::ppi::connector::ActiveConnector::onThrottle(Handler handler)
{
prefix_ senf::Packet senf::ppi::FIFOQueueingAlgorithm::v_dequeue()
{
if (queue_.size() > 0) {
- Packet const & p = queue_.front();
+ Packet p (queue_.front());
queue_.pop();
return p;
}
/** \brief Absolute time data type
- <a href="www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
+ <a href="http://www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
datatype used to represent absolute date/time values.
*/
typedef boost::posix_time::ptime abstime_type;
/** \brief Relative time data type
- <a href="www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
+ <a href="http://www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
datatype used to represent time intervals
*/
typedef boost::posix_time::time_duration reltime_type;
static abstime_type abstime(clock_type clock); ///< Convert clock to absolute time
/**< This member converts a clock value into an absolute
- <a href="www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
+ <a href="http://www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
value.
\note You should not base timeout calculations on this
absolute time value. Clock time is guaranteed to be
static reltime_type reltime(clock_type clock); ///< Convert clock to relative time
/**< This member converts a clock value into a relative
- <a href="www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
+ <a href="http://www.boost.org/doc/libs/release/libs/date_time/index.html">Boost.DateTime</a>
time interval
\note The resolution of reltime_type might be smaller
than the clock_type resolution */
template <class ForwardReadableRange>
std::string stringJoin(ForwardReadableRange const & range, std::string sep);
+ /** \brief Get string representation
+
+ Returns the result of streaming the argument into a standard library string-based
+ stream and then out as a std::string object. The conversion is done with
+ <tt>boost::lexical_cast</tt>. The call is equivalent to
+ <pre>
+ boost::lexical_cast<std::string>(t);
+ </pre>
+ \pre
+ <tt>t</tt> must be <i>OutputStreamable</i>,
+ meaning that an <tt>operator\<\<</tt> is defined\n
+ <tt>t</tt> must be <i>CopyConstructible</i>
+
+ \see <a href="http://www.boost.org/doc/libs/release/libs/conversion/lexical_cast.htm">
+ boost::lexical_cast</a>
+ */
template <class T>
std::string str(T const & t);