1# -*- tcl -*
2# Debug -- Timestamps.
3# -- Colin McCormack / originally Wub server utilities
4#
5# Generate timestamps for debug messages.
6# The provided commands are for use in prefixes and headers.
7
8# # ## ### ##### ######## ############# #####################
9## Requisites
10
11package require Tcl 8.5
12package require debug
13
14namespace eval ::debug {
15    namespace export timestamp
16    namespace ensemble create
17}
18
19# # ## ### ##### ######## ############# #####################
20## API & Implementation
21
22proc ::debug::timestamp {} {
23    variable timestamp::delta
24    variable timestamp::baseline
25
26    set now [::tcl::clock::milliseconds]
27    if {$delta} {
28	set time "${now}-[expr {$now - $delta}]mS "
29    } else {
30	set time "${now}mS "
31    }
32    set delta $now
33    return $time
34}
35
36# # ## ### ##### ######## ############# #####################
37
38namespace eval ::debug::timestamp {
39    variable delta    0
40    variable baseline [::tcl::clock::milliseconds]
41}
42
43# # ## ### ##### ######## ############# #####################
44## Ready
45
46package provide debug::timestamp 1
47return
48