ocaml-opentelemetry/mtime/Mtime/index.html
2025-07-23 14:08:20 +00:00

2 lines
10 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Mtime (mtime.Mtime)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">Index</a> &#x00BB; <a href="../index.html">mtime</a> &#x00BB; Mtime</nav><header class="odoc-preamble"><h1>Module <code><span>Mtime</span></code></h1><p>Monotonic time values.</p><p><code>Mtime</code> has platform independent support for monotonic wall-clock time. This time increases monotonically and is not subject to operating system calendar time adjustments.</p><p><a href="#spans" title="spans">Time spans</a> represent non-negative monotonic time spans between two monotonic clock readings. <a href="#timestamps" title="timestamps">Timestamps</a> represent system-relative monotonic <em>timestamps</em>, their absolute value is meaningless but they can be compared across the processes of an operating system run.</p><p><a href="../Mtime_clock/index.html"><code>Mtime_clock</code></a> provides access to a system monotonic clock.</p></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#spans">Monotonic time spans</a></li><li><a href="#timestamps">Monotonic timestamps</a><ul><li><a href="#preds">Predicates</a></li><li><a href="#arith">Arithmetic</a></li><li><a href="#fmt">Formatting</a></li></ul></li></ul></nav></div><div class="odoc-content"><h2 id="spans"><a href="#spans" class="anchor"></a>Monotonic time spans</h2><div class="odoc-spec"><div class="spec type anchored" id="type-span"><a href="#type-span" class="anchor"></a><code><span><span class="keyword">type</span> span</span></code></div><div class="spec-doc"><p>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 <a href="../Mtime_clock/index.html#val-elapsed"><code>Mtime_clock.elapsed</code></a> can measure up to approximatively 584 Julian year spans before silently rolling over (unlikely since this is in a single program run).</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Span"><a href="#module-Span" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Span/index.html">Span</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Monotonic time spans.</p></div></div><h2 id="timestamps"><a href="#timestamps" class="anchor"></a>Monotonic timestamps</h2><p><b>Note.</b> Only use timestamps if you need inter-process time correlation, otherwise prefer <a href="../Mtime_clock/index.html#val-elapsed"><code>Mtime_clock.elapsed</code></a> and <a href="../Mtime_clock/index.html#counters" title="counters">counters</a>.</p><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>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.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_uint64_ns"><a href="#val-to_uint64_ns" class="anchor"></a><code><span><span class="keyword">val</span> to_uint64_ns : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int64</span></code></div><div class="spec-doc"><p><code>to_uint64_ns t</code> is <code>t</code> as an <em>unsigned</em> 64-bit integer nanosecond timestamp. The absolute value is meaningless.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_uint64_ns"><a href="#val-of_uint64_ns" class="anchor"></a><code><span><span class="keyword">val</span> of_uint64_ns : <span>int64 <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>to_uint64_ns t</code> is <code>t</code> is an <em>unsigned</em> 64-bit integer nanosecond timestamp as a timestamp.</p><p><b>Warning.</b> Timestamps returned by this function should only be used with other timestamp values that are know to come from the same operating system run.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_stamp"><a href="#val-min_stamp" class="anchor"></a><code><span><span class="keyword">val</span> min_stamp : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>min_stamp</code> is the earliest timestamp.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_stamp"><a href="#val-max_stamp" class="anchor"></a><code><span><span class="keyword">val</span> max_stamp : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>max_stamp</code> is the latest timestamp.</p></div></div><h3 id="preds"><a href="#preds" class="anchor"></a>Predicates</h3><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>equal t t'</code> is <code>true</code> iff <code>t</code> and <code>t'</code> are equal.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p><code>compare t t'</code> orders timestamps by increasing time.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_earlier"><a href="#val-is_earlier" class="anchor"></a><code><span><span class="keyword">val</span> is_earlier : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">than</span>:<a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>is_earlier t ~than</code> is <code>true</code> iff <code>t</code> occurred before <code>than</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_later"><a href="#val-is_later" class="anchor"></a><code><span><span class="keyword">val</span> is_later : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">than</span>:<a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>is_later t ~than</code> is <code>true</code> iff <code>t</code> occurred after <code>than</code>.</p></div></div><h3 id="arith"><a href="#arith" class="anchor"></a>Arithmetic</h3><div class="odoc-spec"><div class="spec value anchored" id="val-span"><a href="#val-span" class="anchor"></a><code><span><span class="keyword">val</span> span : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-span">span</a></span></code></div><div class="spec-doc"><p><code>span t t'</code> is the span between <code>t</code> and <code>t'</code> regardless of the order between <code>t</code> and <code>t'</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_span"><a href="#val-add_span" class="anchor"></a><code><span><span class="keyword">val</span> add_span : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><p><code>add_span t s</code> is the timestamp <code>s</code> units later than <code>t</code> or <code>None</code> if the result overflows.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sub_span"><a href="#val-sub_span" class="anchor"></a><code><span><span class="keyword">val</span> sub_span : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><p><code>sub_span t s</code> is the timestamp <code>s</code> units earlier than <code>t</code> or <code>None</code> if the result underflows.</p></div></div><h3 id="fmt"><a href="#fmt" class="anchor"></a>Formatting</h3><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>pp</code> formats <code>t</code> as an <em>unsigned</em> 64-bit integer nanosecond timestamp. Note that the absolute value is meaningless.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dump"><a href="#val-dump" class="anchor"></a><code><span><span class="keyword">val</span> dump : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>dump ppf t</code> formats an unspecified raw representation of <code>t</code> on <code>ppf</code>.</p></div></div></div></body></html>