| <?xml version='1.0' encoding='UTF-8' standalone='no'?> |
| <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.8" xml:lang="en-US"> |
| <compounddef id="classiceberg_1_1Timer" kind="class" language="C++" prot="public" abstract="yes"> |
| <compoundname>iceberg::Timer</compoundname> |
| <derivedcompoundref refid="classiceberg_1_1DefaultTimer" prot="public" virt="non-virtual">iceberg::DefaultTimer</derivedcompoundref> |
| <includes refid="timer_8h" local="no">timer.h</includes> |
| <innerclass refid="classiceberg_1_1Timer_1_1Timed" prot="public">iceberg::Timer::Timed</innerclass> |
| <sectiondef kind="public-func"> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1abf1ce3bb2234cdec3c4b1d2f179c7bf8" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual"> |
| <type></type> |
| <definition>virtual iceberg::Timer::~Timer</definition> |
| <argsstring>()=default</argsstring> |
| <name>~Timer</name> |
| <qualifiedname>iceberg::Timer::~Timer</qualifiedname> |
| <briefdescription> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="98" column="11"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1a221670653142490dd9b0d8f503a93fe0" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual"> |
| <type>int64_t</type> |
| <definition>virtual int64_t iceberg::Timer::Count</definition> |
| <argsstring>() const =0</argsstring> |
| <name>Count</name> |
| <qualifiedname>iceberg::Timer::Count</qualifiedname> |
| <reimplementedby refid="classiceberg_1_1DefaultTimer_1a0680281fb49a3b28f17b3534beeb7849">Count</reimplementedby> |
| <briefdescription> |
| <para>Number of timing recordings made so far. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="101" column="19"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1a9cb0b951b21d13fbab08d62ce8152ee6" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual"> |
| <type>std::chrono::nanoseconds</type> |
| <definition>virtual std::chrono::nanoseconds iceberg::Timer::TotalDuration</definition> |
| <argsstring>() const =0</argsstring> |
| <name>TotalDuration</name> |
| <qualifiedname>iceberg::Timer::TotalDuration</qualifiedname> |
| <reimplementedby refid="classiceberg_1_1DefaultTimer_1a2344941bb8e0ac6872833b067695cde0">TotalDuration</reimplementedby> |
| <briefdescription> |
| <para>Total accumulated duration across all recordings. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="104" column="36"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1aea567b5246f94785cac35eaab22472d0" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual"> |
| <type>void</type> |
| <definition>virtual void iceberg::Timer::Record</definition> |
| <argsstring>(std::chrono::nanoseconds duration)=0</argsstring> |
| <name>Record</name> |
| <qualifiedname>iceberg::Timer::Record</qualifiedname> |
| <reimplementedby refid="classiceberg_1_1DefaultTimer_1a5f12e8509b6cda2f688d175787088279">Record</reimplementedby> |
| <param> |
| <type>std::chrono::nanoseconds</type> |
| <declname>duration</declname> |
| </param> |
| <briefdescription> |
| <para>Record a nanosecond duration directly. </para> |
| </briefdescription> |
| <detaileddescription> |
| <para>Use the template overload below to record any std::chrono duration type with automatic unit conversion. </para> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="110" column="16"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1a42e9476ad403c7bcd61327f585e51922" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual"> |
| <templateparamlist> |
| <param> |
| <type>typename Rep</type> |
| </param> |
| <param> |
| <type>typename Period</type> |
| </param> |
| </templateparamlist> |
| <type>void</type> |
| <definition>void iceberg::Timer::Record</definition> |
| <argsstring>(std::chrono::duration< Rep, Period > duration)</argsstring> |
| <name>Record</name> |
| <qualifiedname>iceberg::Timer::Record</qualifiedname> |
| <param> |
| <type>std::chrono::duration< Rep, Period ></type> |
| <declname>duration</declname> |
| </param> |
| <briefdescription> |
| <para>Record a duration of any chrono type, converting to nanoseconds. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="114" column="8" bodyfile="iceberg/metrics/timer.h" bodystart="114" bodyend="116"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1a4a4910174c81ea6545a130e42412ad03" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual"> |
| <type>std::string_view</type> |
| <definition>virtual std::string_view iceberg::Timer::Unit</definition> |
| <argsstring>() const</argsstring> |
| <name>Unit</name> |
| <qualifiedname>iceberg::Timer::Unit</qualifiedname> |
| <reimplementedby refid="classiceberg_1_1DefaultTimer_1a730501496959c45605b4735823760a25">Unit</reimplementedby> |
| <briefdescription> |
| <para>Return the time unit used by this timer. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="119" column="28" bodyfile="iceberg/metrics/timer.h" bodystart="119" bodyend="119"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1a625487b1476a9c96e4c2be7443afc2aa" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual"> |
| <type>bool</type> |
| <definition>virtual bool iceberg::Timer::IsNoop</definition> |
| <argsstring>() const</argsstring> |
| <name>IsNoop</name> |
| <qualifiedname>iceberg::Timer::IsNoop</qualifiedname> |
| <briefdescription> |
| <para>Return true if this timer is a no-op. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="122" column="16" bodyfile="iceberg/metrics/timer.h" bodystart="122" bodyend="122"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1af19032db807f4c8890aae045e3384a7f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> |
| <type><ref refid="classiceberg_1_1Timer_1_1Timed" kindref="compound">Timed</ref></type> |
| <definition>Timed iceberg::Timer::Start</definition> |
| <argsstring>()</argsstring> |
| <name>Start</name> |
| <qualifiedname>iceberg::Timer::Start</qualifiedname> |
| <briefdescription> |
| <para>Start timing and return a RAII <ref refid="classiceberg_1_1Timer_1_1Timed" kindref="compound">Timed</ref> guard. </para> |
| </briefdescription> |
| <detaileddescription> |
| <para>The elapsed duration is recorded into this timer when the <ref refid="classiceberg_1_1Timer_1_1Timed" kindref="compound">Timed</ref> guard is destroyed or Stop() is called. The caller must ensure this timer outlives the returned guard. </para> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="129" column="9"/> |
| </memberdef> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1a1a40cd3e1bd699ba5cf6787ecbb59395" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual"> |
| <templateparamlist> |
| <param> |
| <type>typename Callable</type> |
| </param> |
| </templateparamlist> |
| <type>decltype(auto)</type> |
| <definition>decltype(auto) iceberg::Timer::Time</definition> |
| <argsstring>(Callable &&fn)</argsstring> |
| <name>Time</name> |
| <qualifiedname>iceberg::Timer::Time</qualifiedname> |
| <param> |
| <type>Callable &&</type> |
| <declname>fn</declname> |
| </param> |
| <briefdescription> |
| <para>Execute a callable, record its wall-clock duration, and return its result. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="133" column="12" bodyfile="iceberg/metrics/timer.h" bodystart="133" bodyend="143"/> |
| </memberdef> |
| </sectiondef> |
| <sectiondef kind="public-static-func"> |
| <memberdef kind="function" id="classiceberg_1_1Timer_1aa52e69efb7f9bedcdc150a46f2b7c08c" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual"> |
| <type>std::shared_ptr< <ref refid="classiceberg_1_1Timer" kindref="compound">Timer</ref> ></type> |
| <definition>static std::shared_ptr< Timer > iceberg::Timer::Noop</definition> |
| <argsstring>()</argsstring> |
| <name>Noop</name> |
| <qualifiedname>iceberg::Timer::Noop</qualifiedname> |
| <briefdescription> |
| <para>Return a shared no-op timer singleton. </para> |
| </briefdescription> |
| <detaileddescription> |
| </detaileddescription> |
| <inbodydescription> |
| </inbodydescription> |
| <location file="iceberg/metrics/timer.h" line="146" column="26"/> |
| </memberdef> |
| </sectiondef> |
| <briefdescription> |
| <para>Abstract timer for measuring operation durations. </para> |
| </briefdescription> |
| <detaileddescription> |
| <para>Use <ref refid="classiceberg_1_1Timer_1af19032db807f4c8890aae045e3384a7f" kindref="member">Start()</ref> to obtain a <ref refid="classiceberg_1_1Timer_1_1Timed" kindref="compound">Timed</ref> RAII guard that records the elapsed duration when it goes out of scope. </para> |
| </detaileddescription> |
| <inheritancegraph> |
| <node id="2"> |
| <label>iceberg::DefaultTimer</label> |
| <link refid="classiceberg_1_1DefaultTimer"/> |
| <childnode refid="1" relation="public-inheritance"> |
| </childnode> |
| </node> |
| <node id="1"> |
| <label>iceberg::Timer</label> |
| <link refid="classiceberg_1_1Timer"/> |
| </node> |
| </inheritancegraph> |
| <location file="iceberg/metrics/timer.h" line="74" column="1" bodyfile="iceberg/metrics/timer.h" bodystart="74" bodyend="147"/> |
| <listofallmembers> |
| <member refid="classiceberg_1_1Timer_1a221670653142490dd9b0d8f503a93fe0" prot="public" virt="pure-virtual"><scope>iceberg::Timer</scope><name>Count</name></member> |
| <member refid="classiceberg_1_1Timer_1a625487b1476a9c96e4c2be7443afc2aa" prot="public" virt="virtual"><scope>iceberg::Timer</scope><name>IsNoop</name></member> |
| <member refid="classiceberg_1_1Timer_1aa52e69efb7f9bedcdc150a46f2b7c08c" prot="public" virt="non-virtual"><scope>iceberg::Timer</scope><name>Noop</name></member> |
| <member refid="classiceberg_1_1Timer_1aea567b5246f94785cac35eaab22472d0" prot="public" virt="pure-virtual"><scope>iceberg::Timer</scope><name>Record</name></member> |
| <member refid="classiceberg_1_1Timer_1a42e9476ad403c7bcd61327f585e51922" prot="public" virt="non-virtual"><scope>iceberg::Timer</scope><name>Record</name></member> |
| <member refid="classiceberg_1_1Timer_1af19032db807f4c8890aae045e3384a7f" prot="public" virt="non-virtual"><scope>iceberg::Timer</scope><name>Start</name></member> |
| <member refid="classiceberg_1_1Timer_1a1a40cd3e1bd699ba5cf6787ecbb59395" prot="public" virt="non-virtual"><scope>iceberg::Timer</scope><name>Time</name></member> |
| <member refid="classiceberg_1_1Timer_1a9cb0b951b21d13fbab08d62ce8152ee6" prot="public" virt="pure-virtual"><scope>iceberg::Timer</scope><name>TotalDuration</name></member> |
| <member refid="classiceberg_1_1Timer_1a4a4910174c81ea6545a130e42412ad03" prot="public" virt="virtual"><scope>iceberg::Timer</scope><name>Unit</name></member> |
| <member refid="classiceberg_1_1Timer_1abf1ce3bb2234cdec3c4b1d2f179c7bf8" prot="public" virt="virtual"><scope>iceberg::Timer</scope><name>~Timer</name></member> |
| </listofallmembers> |
| </compounddef> |
| </doxygen> |