4#ifndef _Stroika_Framework_SystemPerformance_Instrument_h_
5#define _Stroika_Framework_SystemPerformance_Instrument_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
12#include "Stroika/Foundation/Common/Property.h"
13#include "Stroika/Foundation/Containers/Mapping.h"
14#include "Stroika/Foundation/Containers/Set.h"
16#include "Stroika/Foundation/DataExchange/ObjectVariantMapper.h"
18#include "Stroika/Frameworks/SystemPerformance/Measurement.h"
19#include "Stroika/Frameworks/SystemPerformance/MeasurementSet.h"
24namespace Stroika::Frameworks::SystemPerformance {
89 virtual ~IRep () =
default;
91 virtual unique_ptr<IRep> Clone ()
const = 0;
92 virtual shared_ptr<ICaptureContext> GetContext ()
const = 0;
93 virtual void SetContext (
const shared_ptr<ICaptureContext>&
context) = 0;
120 template <
typename T>
131 template <
typename T>
133 template <
typename T>
178 nonvirtual
bool operator== (
const Instrument& rhs)
const;
183 nonvirtual strong_ordering operator<=> (
const Instrument& rhs)
const
185 return fInstrumentName_ <=> rhs.fInstrumentName_;
193 unique_ptr<IRep> fCaptureRep_;
204#include "Instrument.inl"
time_point< RealtimeClock, DurationSeconds > TimePointSeconds
TimePointSeconds is a simpler approach to chrono::time_point, which doesn't require using templates e...
#define Stroika_ATTRIBUTE_NO_UNIQUE_ADDRESS_VCFORCE
[[msvc::no_unique_address]] isn't always broken in MSVC. Annotate with this on things where its not b...
String is like std::u32string, except it is much easier to use, often much more space efficient,...
A Mapping uniquely associates two elements: a key and a value (use Assocation to allow multiple value...
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.
An Atom is like a String, except that its much cheaper to copy/store/compare, and the semantics of co...
ObjectVariantMapper can be used to map C++ types to and from variant-union types, which can be transp...
NOT a real mutex - just a debugging infrastructure support tool so in debug builds can be assured thr...