Module Mtime
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
Add the following to your project's
dependencies/CMakeLists.txt:DkSDKProject_DeclareAvailable(mtime CONSTRAINT "= 2.0.0+dune" FINDLIBS mtime mtime.clock mtime.clock.os mtime.top) DkSDKProject_MakeAvailable(mtime)Add the
Findlib::mtimelibrary to any desired targets insrc/*/CMakeLists.txt:target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::mtime)Click your IDE's
Buildbutton
Not using DkSDK?
FIRST, do one or all of the following:
Run:
opam install mtime.2.0.0+duneEdit your
dune-projectand add:(package (name YourExistingPackage) (depends ; ... existing dependenices ... (mtime (>= 2.0.0+dune))))Then run:
dune build *.opam # if this fails, run: dune buildEdit your
<package>.opamfile and add:depends: [ # ... existing dependencies ... "mtime" {>= "2.0.0+dune"} ]Then run:
opam install . --deps-only
FINALLY, add the mtime library to any desired (library)and/or (executable) targets in your **/dune files:
(library
(name YourLibrary)
; ... existing library options ...
(libraries
; ... existing libraries ...
mtime))
(executable
(name YourExecutable)
; ... existing executable options ...
(libraries
; ... existing libraries ...
mtime))Monotonic time spans
typespan
The type for non-negative monotonic time spans. They represent the
difference between two monotonic clock readings. If the platform's clock
has nanosecond resolution the representation guarantees that the
function Mtime_clock.elapsed can
measure up to approximatively 584 Julian year spans before silently
rolling over (unlikely since this is in a single program run).
moduleSpan:sig...end
Monotonic time spans.
Monotonic timestamps
Note. Only use timestamps if you need inter-process time
correlation, otherwise prefer
Mtime_clock.elapsed and
counters.
typet
The type for monotonic timestamps relative to an indeterminate system-wide event (e.g. last startup). Their absolute value has no meaning but can be used for inter-process time correlation.
valto_uint64_ns :t->int64
to_uint64_ns t is t as an unsigned 64-bit integer nanosecond
timestamp. The absolute value is meaningless.
valof_uint64_ns : ``int64->t
to_uint64_ns t is t is an unsigned 64-bit integer nanosecond
timestamp as a timestamp.
Warning. Timestamps returned by this function should only be used with other timestamp values that are know to come from the same operating system run.
valmin_stamp :t
min_stamp is the earliest timestamp.
valmax_stamp :t
max_stamp is the latest timestamp.
Predicates
Arithmetic
span t t' is the span between t and t' regardless of the order
between t and t'.
add_span t s is the timestamp s units later than t or None if
the result overflows.
sub_span t s is the timestamp s units earlier than t or None if
the result underflows.
Formatting
valpp :Stdlib.Format.formatter->t->unit
pp formats t as an unsigned 64-bit integer nanosecond timestamp.
Note that the absolute value is meaningless.
valdump :Stdlib.Format.formatter->t->unit
dump ppf t formats an unspecified raw representation of t on ppf.
