g2o
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Functions
timeutil.h File Reference

utility functions for handling time related stuff More...

#include <chrono>
#include <string>
#include "g2o/stuff/misc.h"
#include "g2o_stuff_api.h"
Include dependency graph for timeutil.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  g2o::ScopeTime
 Class to measure the time spent in a scope. More...
 

Namespaces

namespace  g2o
 

Macros

#define DO_EVERY_TS(secs, currentTime, code)
 
#define DO_EVERY(secs, code)   DO_EVERY_TS(secs, g2o::get_time(), code)
 Executes code, only if secs are gone since last exec.
 
#define MEASURE_TIME(text, code)
 
#define MEASURE_FUNCTION_TIME   g2o::ScopeTime scopeTime(__PRETTY_FUNCTION__)
 

Typedefs

using g2o::seconds = std::chrono::duration< double >
 

Functions

double g2o::get_time ()
 
double g2o::get_monotonic_time ()
 

Detailed Description

utility functions for handling time related stuff

Definition in file timeutil.h.

Macro Definition Documentation

◆ DO_EVERY

#define DO_EVERY (   secs,
  code 
)    DO_EVERY_TS(secs, g2o::get_time(), code)

Executes code, only if secs are gone since last exec.

Definition at line 62 of file timeutil.h.

◆ DO_EVERY_TS

#define DO_EVERY_TS (   secs,
  currentTime,
  code 
)
Value:
if (1) { \
static double s_lastDone_ = (currentTime); \
double s_now_ = (currentTime); \
if (s_lastDone_ > s_now_) s_lastDone_ = s_now_; \
if (s_now_ - s_lastDone_ > (secs)) { \
code; \
s_lastDone_ = s_now_; \
} \
} else \
(void)0

Executes code, only if secs are gone since last exec. extended version, in which the current time is given, e.g., timestamp of IPC message

Definition at line 47 of file timeutil.h.

48 { \
49 static double s_lastDone_ = (currentTime); \
50 double s_now_ = (currentTime); \
51 if (s_lastDone_ > s_now_) s_lastDone_ = s_now_; \
52 if (s_now_ - s_lastDone_ > (secs)) { \
53 code; \
54 s_lastDone_ = s_now_; \
55 } \
56 } else \
57 (void)0

◆ MEASURE_FUNCTION_TIME

#define MEASURE_FUNCTION_TIME   g2o::ScopeTime scopeTime(__PRETTY_FUNCTION__)

Definition at line 112 of file timeutil.h.

◆ MEASURE_TIME

#define MEASURE_TIME (   text,
  code 
)
Value:
if (1) { \
double _start_time_ = g2o::get_time(); \
code; \
G2O_DEBUG("{} took {} sec", text, g2o::get_time() - _start_time_); \
} else \
(void)0
double get_time()
Definition timeutil.h:82

Definition at line 66 of file timeutil.h.

67 { \
68 double _start_time_ = g2o::get_time(); \
69 code; \
70 G2O_DEBUG("{} took {} sec", text, g2o::get_time() - _start_time_); \
71 } else \
72 (void)0