LeviLamina
Loading...
Searching...
No Matches
RollingAverageTracker.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5class RollingAverageTracker {
6public:
7 // member variables
8 // NOLINTBEGIN
9 ::ll::TypedStorage<4, 4, uint> mSampleBufferIdx;
10 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mSampleAverage;
11 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mSampleSum;
12 ::ll::TypedStorage<8, 160, ::std::chrono::nanoseconds[20]> mSampleBuffer;
13 // NOLINTEND
14
15public:
16 // member functions
17 // NOLINTBEGIN
18 MCAPI RollingAverageTracker();
19
20 MCAPI void addSample(::std::chrono::nanoseconds dt);
21
22 MCFOLD ::std::chrono::nanoseconds getAverage() const;
23
24 MCAPI ::std::chrono::nanoseconds getLastSample() const;
25
26 MCAPI ::std::vector<::std::chrono::nanoseconds> getLastSamples(uint count) const;
27 // NOLINTEND
28
29public:
30 // constructor thunks
31 // NOLINTBEGIN
32 MCAPI void* $ctor();
33 // NOLINTEND
34};