19#include <zypp/base/Logger.h>
21#include <zypp/base/String.h>
25#undef ZYPP_BASE_LOGGER_LOGGROUP
26#define ZYPP_BASE_LOGGER_LOGGROUP "Measure"
73 std::string
stringIf( clock_t ticks_r,
const std::string & tag_r )
const
84 double asSec( clock_t ticks_r )
const
85 {
return double(ticks_r) /
ticks; }
89 time_t h = sec_r/3600;
94 return str::form(
"%lu:%02lu:%02lu", h, m, sec_r );
96 return str::form(
"%lu:%02lu", m, sec_r );
102 time_t h = time_t(sec_r)/3600;
104 time_t m = time_t(sec_r)/60;
107 return str::form(
"%lu:%02lu:%05.2lf", h, m, sec_r );
109 return str::form(
"%lu:%05.2lf", m, sec_r );
123 const struct tms
Tm::
tmsEmpty = { 0, 0, 0, 0 };
124 const long Tm::ticks = sysconf(_SC_CLK_TCK);
141 Impl(
const std::string & ident_r, std::ostream * log_r =
nullptr )
167 void elapsed(
const std::string & tag_r = std::string() )
const
177 std::ostream &
log()
const
183 std::ostream &
dumpMeasure( std::ostream & str_r,
const std::string & tag_r = std::string() )
const
190 if ( ! tag_r.empty() )
191 str_r <<
" - " << tag_r;
192 return str_r << endl;
222 : _pimpl( new
Impl( ident_r ) )
226 : _pimpl( new
Impl( ident_r, &out_r ) )
std::ostream & log() const
Return the log stream.
std::ostream & dumpMeasure(std::ostream &str_r, const std::string &tag_r=std::string()) const
static std::string _glevel
std::ostream * logp() const
void elapsed(const std::string &tag_r=std::string()) const
Impl(const std::string &ident_r, std::ostream *log_r=nullptr)
Measure()
Default Ctor does nothing.
void elapsed() const
Print elapsed time for a running timer.
void stop()
Stop a running timer.
void restart()
re start the timer without reset-ing it.
void start(const std::string &ident_r=std::string())
Start timer for ident_r string.
RW_pointer< Impl > _pimpl
Pointer to implementation.
String related utilities and Regular expression matching.
std::ostream & operator<<(std::ostream &str, const Tm &obj)
\refers Tm Stream output.
std::string form(const char *format,...) __attribute__((format(printf
Printf style construction of std::string.
Easy-to use interface to the ZYPP dependency resolver.
Times measured by Measure.
std::string stringIf(clock_t ticks_r, const std::string &tag_r) const
time_t _real
Real time via ::time.
std::string timeStr(double sec_r) const
struct tms _proc
Process times via ::times.
std::string asString() const
static const long ticks
Systems ticks per second.
Tm operator-(const Tm &rhs) const
std::string timeStr(time_t sec_r) const
double asSec(clock_t ticks_r) const