2 * UCW Library -- A Simple Millisecond Timer
4 * (c) 2007--2012 Martin Mares <mj@ucw.cz>
6 * This software may be freely distributed and used according to the terms
7 * of the GNU Lesser General Public License.
16 * All timing functions in LibUCW are based on signed 64-bit timestamps
17 * with millisecond precision (the <<basics:type_timestamp_t,`timestamp_t`>> type), which measure
18 * time from an unspecified moment in the past. Depending on the compile-time
19 * settings, that moment can be the traditional UNIX epoch, or for example
20 * system boot if POSIX monotonic clock is used.
25 timestamp_t get_timestamp(void); /** Get current time as a millisecond timestamp. **/
30 * A user type for parsing of time intervals in configuration files.
31 * It is specified as fractional seconds and internally converted to
32 * a <<basics:type_timestamp_t,`timestamp_t`>>. When conversion of
33 * a non-zero value yields zero, an error is raised.
35 extern struct cf_user_type timestamp_type;
40 * A timer is a very simple construct for measuring execution time.
41 * It can be initialized and then read multiple times. Each read returns
42 * the number of milliseconds elapsed since the previous read or initialization.
47 void init_timer(timestamp_t *timer); /** Initialize a timer. **/
48 uns get_timer(timestamp_t *timer); /** Get the number of milliseconds since last init/get of a timer. **/
49 uns switch_timer(timestamp_t *oldt, timestamp_t *newt); /** Stop ticking of one timer and resume another. **/