Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
MeasurementSet.h
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#ifndef _Stroika_Framework_SystemPerformance_MeasurementSet_h_
5#define _Stroika_Framework_SystemPerformance_MeasurementSet_h_ 1
6
7#include "Stroika/Frameworks/StroikaPreComp.h"
8
9#include "Stroika/Foundation/Containers/Collection.h"
12
13#include "Measurement.h"
14
15/*
16 * TODO:
17 *
18 * @todo Consider adding some sort of MeasurementType registry to capture meta inforamtion - descriptions
19 * etc - about measurements. Don't do yet, cuz I'm not sure how to manage it - when to add things.
20 *
21 * The challenge is how do to this modularly.
22 *
23 */
24
25namespace Stroika::Frameworks::SystemPerformance {
26
27 using namespace Stroika::Foundation;
30 using Traversal::Range;
31
32 /**
33 * A MeasurementSet is typically produced by a call to Instrument::Capture (). It represents the data
34 * from a single run of that instrument. It can be point in time, or potentially span a range of times.
35 *
36 * \note \em Thread-Safety <a href="Thread-Safety.md#C++-Standard-Thread-Safety">C++-Standard-Thread-Safety</a>
37 */
40
41 // @todo - this should use KeyedCollection, as the Measurement::fType is a KEY to this collection
42 Collection<Measurement> fMeasurements;
43
44 /**
45 * Combine m with this measurement set. any overlapping measurements replace their cooresponding values.
46 */
47 nonvirtual void MergeAdditions (const MeasurementSet& m);
48 };
49
50}
51
52/*
53 ********************************************************************************
54 ***************************** Implementation Details ***************************
55 ********************************************************************************
56 */
57#include "MeasurementSet.inl"
58
59#endif /*_Stroika_Framework_SystemPerformance_MeasurementSet_h_*/
String is like std::u32string, except it is much easier to use, often much more space efficient,...
Definition String.h:201
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
Definition Collection.h:102
nonvirtual void MergeAdditions(const MeasurementSet &m)