Move back timer comments to header (#2572)

This commit is contained in:
cryptocode 2020-02-19 14:31:24 +01:00 committed by GitHub
commit e0fe3fca69
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 29 deletions

View file

@ -66,7 +66,6 @@ desc (description_a)
{ {
} }
/** Do not output if measured time is below the time units threshold in \p minimum_a */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::set_minimum (UNIT minimum_a) nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::set_minimum (UNIT minimum_a)
{ {
@ -74,11 +73,6 @@ nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::set_minimum (UNIT minimum_a
return *this; return *this;
} }
/**
* Create a child timer without starting it.
* Since the timing API needs to have low overhead, this function
* does not check if a timer with the same name already exists.
*/
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::child (std::string const & description_a) nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::child (std::string const & description_a)
{ {
@ -86,7 +80,6 @@ nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::child (std::string const &
return children.back (); return children.back ();
} }
/** Create and start a child timer */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::start_child (std::string const & description_a) nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::start_child (std::string const & description_a)
{ {
@ -95,7 +88,6 @@ nano::timer<UNIT, CLOCK> & nano::timer<UNIT, CLOCK>::start_child (std::string co
return child_timer; return child_timer;
} }
/** Start the timer. This will assert if the timer is already started. */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
void nano::timer<UNIT, CLOCK>::start () void nano::timer<UNIT, CLOCK>::start ()
{ {
@ -104,7 +96,6 @@ void nano::timer<UNIT, CLOCK>::start ()
begin = CLOCK::now (); begin = CLOCK::now ();
} }
/** Restarts the timer */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
void nano::timer<UNIT, CLOCK>::restart () void nano::timer<UNIT, CLOCK>::restart ()
{ {
@ -114,11 +105,6 @@ void nano::timer<UNIT, CLOCK>::restart ()
measurements = 0; measurements = 0;
} }
/**
* Stops the timer and increases the measurement count. A timer can be started and paused
* multiple times (e.g. in a loop).
* @return duration
*/
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
UNIT nano::timer<UNIT, CLOCK>::pause () UNIT nano::timer<UNIT, CLOCK>::pause ()
{ {
@ -126,10 +112,6 @@ UNIT nano::timer<UNIT, CLOCK>::pause ()
return stop (); return stop ();
} }
/**
* Stop timer
* @return duration
*/
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
UNIT nano::timer<UNIT, CLOCK>::stop () UNIT nano::timer<UNIT, CLOCK>::stop ()
{ {
@ -141,16 +123,12 @@ UNIT nano::timer<UNIT, CLOCK>::stop ()
return ticks; return ticks;
} }
/**
* Return current units.
*/
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
UNIT nano::timer<UNIT, CLOCK>::value () const UNIT nano::timer<UNIT, CLOCK>::value () const
{ {
return ticks; return ticks;
} }
/** Returns the duration in UNIT since the timer was last started. */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
UNIT nano::timer<UNIT, CLOCK>::since_start () const UNIT nano::timer<UNIT, CLOCK>::since_start () const
{ {
@ -158,7 +136,6 @@ UNIT nano::timer<UNIT, CLOCK>::since_start () const
return std::chrono::duration_cast<UNIT> (end - begin); return std::chrono::duration_cast<UNIT> (end - begin);
} }
/** Returns true if the timer was last started longer than \p duration_a units ago*/
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
bool nano::timer<UNIT, CLOCK>::after_deadline (UNIT duration_a) bool nano::timer<UNIT, CLOCK>::after_deadline (UNIT duration_a)
{ {
@ -166,7 +143,6 @@ bool nano::timer<UNIT, CLOCK>::after_deadline (UNIT duration_a)
return std::chrono::duration_cast<UNIT> (end - begin) > duration_a; return std::chrono::duration_cast<UNIT> (end - begin) > duration_a;
} }
/** Returns true if the timer was last started shorter than \p duration_a units ago*/
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
bool nano::timer<UNIT, CLOCK>::before_deadline (UNIT duration_a) bool nano::timer<UNIT, CLOCK>::before_deadline (UNIT duration_a)
{ {
@ -174,7 +150,6 @@ bool nano::timer<UNIT, CLOCK>::before_deadline (UNIT duration_a)
return std::chrono::duration_cast<UNIT> (end - begin) < duration_a; return std::chrono::duration_cast<UNIT> (end - begin) < duration_a;
} }
/** Stop timer and write measurements to \p stream_a */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
void nano::timer<UNIT, CLOCK>::stop (std::ostream & stream_a) void nano::timer<UNIT, CLOCK>::stop (std::ostream & stream_a)
{ {
@ -182,7 +157,6 @@ void nano::timer<UNIT, CLOCK>::stop (std::ostream & stream_a)
print (stream_a); print (stream_a);
} }
/** Stop timer and write measurements to \p output_a */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
void nano::timer<UNIT, CLOCK>::stop (std::string & output_a) void nano::timer<UNIT, CLOCK>::stop (std::string & output_a)
{ {
@ -191,7 +165,6 @@ void nano::timer<UNIT, CLOCK>::stop (std::string & output_a)
output_a = stream.str (); output_a = stream.str ();
} }
/** Print measurements to the \p stream_a */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
void nano::timer<UNIT, CLOCK>::print (std::ostream & stream_a) void nano::timer<UNIT, CLOCK>::print (std::ostream & stream_a)
{ {
@ -222,7 +195,6 @@ void nano::timer<UNIT, CLOCK>::print (std::ostream & stream_a)
} }
} }
/** Returns the SI unit string */
template <typename UNIT, typename CLOCK> template <typename UNIT, typename CLOCK>
std::string nano::timer<UNIT, CLOCK>::unit () const std::string nano::timer<UNIT, CLOCK>::unit () const
{ {

View file

@ -22,20 +22,66 @@ public:
timer (nano::timer_state state_a, std::string const & description_a = "timer"); timer (nano::timer_state state_a, std::string const & description_a = "timer");
timer (std::string const & description_a); timer (std::string const & description_a);
timer (std::string const & description_a, timer * parent_a); timer (std::string const & description_a, timer * parent_a);
/** Do not output if measured time is below the time units threshold in \p minimum_a */
timer & set_minimum (UNIT minimum_a); timer & set_minimum (UNIT minimum_a);
/**
* Create a child timer without starting it.
* Since the timing API needs to have low overhead, this function
* does not check if a timer with the same name already exists.
*/
timer & child (std::string const & description_a = "child timer"); timer & child (std::string const & description_a = "child timer");
/** Create and start a child timer */
timer & start_child (std::string const & description_a = "child timer"); timer & start_child (std::string const & description_a = "child timer");
/** Start the timer. This will assert if the timer is already started. */
void start (); void start ();
/**
* Restarts the timer by setting start time to current time and resetting tick count.
* This can be called in any timer state.
*/
void restart (); void restart ();
/**
* Stops the timer and increases the measurement count. A timer can be started and paused
* multiple times (e.g. in a loop).
* @return duration
*/
UNIT pause (); UNIT pause ();
/**
* Stop timer. This will assert if the timer is not in a started state.
* @return duration
*/
UNIT stop (); UNIT stop ();
/**
* Return current tick count.
*/
UNIT value () const; UNIT value () const;
/** Returns the duration in UNIT since the timer was last started. */
UNIT since_start () const; UNIT since_start () const;
/** Returns true if the timer was last started longer than \p duration_a units ago*/
bool after_deadline (UNIT duration_a); bool after_deadline (UNIT duration_a);
/** Returns true if the timer was last started shorter than \p duration_a units ago*/
bool before_deadline (UNIT duration_a); bool before_deadline (UNIT duration_a);
/** Stop timer and write measurements to \p stream_a */
void stop (std::ostream & stream_a); void stop (std::ostream & stream_a);
/** Stop timer and write measurements to \p output_a */
void stop (std::string & output_a); void stop (std::string & output_a);
/** Print measurements to the \p stream_a */
void print (std::ostream & stream_a); void print (std::ostream & stream_a);
/** Returns the SI unit string */
std::string unit () const; std::string unit () const;
nano::timer_state current_state () const; nano::timer_state current_state () const;

View file

@ -13,7 +13,7 @@
namespace nano namespace nano
{ {
/** Policy to affects at which stage a buffer can be dropped */ /** Policy to affect at which stage a buffer can be dropped */
enum class buffer_drop_policy enum class buffer_drop_policy
{ {
/** Can be dropped by bandwidth limiter (default) */ /** Can be dropped by bandwidth limiter (default) */