swift-metrics/docs/current/CoreMetrics/Protocols/TimerHandler.html

276 lines
12 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<title>TimerHandler Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset="utf-8">
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
<script src="../js/lunr.min.js" defer></script>
<script src="../js/typeahead.jquery.js" defer></script>
<script src="../js/jazzy.search.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/TimerHandler" class="dashAnchor"></a>
<a title="TimerHandler Protocol Reference"></a>
<header class="header">
<p class="header-col header-col--primary">
<a class="header-link" href="../index.html">
CoreMetrics 2.2.0 Docs
</a>
(83% documented)
</p>
<div class="header-col--secondary">
<form role="search" action="../search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
<p class="header-col header-col--secondary">
<a class="header-link" href="https://github.com/apple/swift-metrics">
<img class="header-icon" src="../img/gh.png" alt="GitHub"/>
View on GitHub
</a>
</p>
<p class="header-col header-col--secondary">
<a class="header-link" href="dash-feed://https%3A%2F%2Fapple.github.io%2Fswift-metrics%2Fdocs%2F2.2.0%2FCoreMetrics%2Fdocsets%2FCoreMetrics.xml">
<img class="header-icon" src="../img/dash.png" alt="Dash"/>
Install in Dash
</a>
</p>
</header>
<p class="breadcrumbs">
<a class="breadcrumb" href="../index.html">CoreMetrics Reference</a>
<img class="carat" src="../img/carat.png" alt=""/>
TimerHandler Protocol Reference
</p>
<div class="content-wrapper">
<nav class="navigation">
<ul class="nav-groups">
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Counter.html">Counter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/FloatingPointCounter.html">FloatingPointCounter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Gauge.html">Gauge</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/MultiplexMetricsHandler.html">MultiplexMetricsHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/NOOPMetricsHandler.html">NOOPMetricsHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Recorder.html">Recorder</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Timer.html">Timer</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MetricsSystem.html">MetricsSystem</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/CounterHandler.html">CounterHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/FloatingPointCounterHandler.html">FloatingPointCounterHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/MetricsFactory.html">MetricsFactory</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/RecorderHandler.html">RecorderHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/TimerHandler.html">TimerHandler</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/TimeUnit.html">TimeUnit</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section class="section">
<div class="section-content top-matter">
<h1>TimerHandler</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">TimerHandler</span> <span class="p">:</span> <span class="kt">AnyObject</span></code></pre>
</div>
</div>
<p>A <code>TimerHandler</code> represents a backend implementation of a <code><a href="../Classes/Timer.html">Timer</a></code>.</p>
<p>This type is an implementation detail and should not be used directly, unless implementing your own metrics backend.
To use the SwiftMetrics API, please refer to the documentation of <code><a href="../Classes/Timer.html">Timer</a></code>.</p>
<h1 id='implementation-requirements' class='heading'>Implementation requirements</h1>
<p>To implement your own <code>TimerHandler</code> you should respect a few requirements that are necessary so applications work
as expected regardless of the selected <code>TimerHandler</code> implementation.</p>
<ul>
<li>The <code>TimerHandler</code> must be a <code>class</code>.</li>
</ul>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L751-L763">Show on GitHub</a>
</div>
</div>
</section>
<section class="section">
<div class="section-content">
<div class="task-group">
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics12TimerHandlerP17recordNanosecondsyys5Int64VF"></a>
<a name="//apple_ref/swift/Method/recordNanoseconds(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics12TimerHandlerP17recordNanosecondsyys5Int64VF">recordNanoseconds(_:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Record a duration in nanoseconds.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">recordNanoseconds</span><span class="p">(</span><span class="n">_</span> <span class="nv">duration</span><span class="p">:</span> <span class="kt">Int64</span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>value</em>
</code>
</td>
<td>
<div>
<p>Duration to record.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L756">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics12TimerHandlerP17preferDisplayUnityyAA04TimeG0VF"></a>
<a name="//apple_ref/swift/Method/preferDisplayUnit(_:)" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics12TimerHandlerP17preferDisplayUnityyAA04TimeG0VF">preferDisplayUnit(_:<wbr>)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Set the preferred display unit for this TimerHandler.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">preferDisplayUnit</span><span class="p">(</span><span class="n">_</span> <span class="nv">unit</span><span class="p">:</span> <span class="kt"><a href="../Structs/TimeUnit.html">TimeUnit</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>unit</em>
</code>
</td>
<td>
<div>
<p>A hint to the backend responsible for presenting the data of the preferred display unit. This is not guaranteed to be supported by all backends.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L762">Show on GitHub</a>
</div>
</section>
</div>
</li>
</ul>
</div>
</div>
</section>
</article>
</div>
<section class="footer">
<p>&copy; 2021 <a class="link" href="https://github.com/apple/swift-metrics" target="_blank" rel="external noopener">SwiftMetrics team</a>. All rights reserved. (Last updated: 2021-12-17)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.1</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</body>
</html>