LeviLamina
Loading...
Searching...
No Matches
DiskAccessTracker.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/file/DiskAccessDiagnostics.h"
7#include "mc/deps/core/file/WriteOperation.h"
8
9// auto generated forward declare list
10// clang-format off
11namespace Core { class DiskAccessDiagnostics; }
12namespace Core { class PathView; }
13namespace Core::WriteThrottledOS { class OSWriteThrottleTracker; }
14// clang-format on
15
16namespace Core {
17
18class DiskAccessTracker {
19public:
20 // DiskAccessTracker inner types declare
21 // clang-format off
22 struct TrackerStats;
23 struct WriteOperation;
24 // clang-format on
25
26 // DiskAccessTracker inner types define
27 struct TrackerStats {
28 public:
29 // member variables
30 // NOLINTBEGIN
38 // NOLINTEND
39
40 public:
41 // prevent constructor by default
42 TrackerStats& operator=(TrackerStats const&);
43 TrackerStats(TrackerStats const&);
44 TrackerStats();
45 };
46
47 struct WriteOperation {
48 public:
49 // member variables
50 // NOLINTBEGIN
54 // NOLINTEND
55
56 public:
57 // prevent constructor by default
58 WriteOperation& operator=(WriteOperation const&);
59 WriteOperation(WriteOperation const&);
60 WriteOperation();
61 };
62
63public:
64 // member variables
65 // NOLINTBEGIN
80 // NOLINTEND
81
82public:
83 // prevent constructor by default
84 DiskAccessTracker& operator=(DiskAccessTracker const&);
85 DiskAccessTracker(DiskAccessTracker const&);
86 DiskAccessTracker();
87
88public:
89 // member functions
90 // NOLINTBEGIN
91 MCNAPI explicit DiskAccessTracker(::std::unique_ptr<::Core::DiskAccessDiagnostics> diagnostics);
92
93 MCNAPI void _addNewWriteOperation(uint64 amount, ::Core::WriteOperation path, ::Core::PathView);
94
95#ifdef LL_PLAT_C
96 MCNAPI void _computeTrackerStats(
98 ::std::chrono::steady_clock::time_point byteWriteCalculationWindow,
99 ::std::chrono::steady_clock::time_point writeCountCalculationWindow
100 );
101
102 MCNAPI void _setCurrentWriteThrottleTracker(
103 ::std::shared_ptr<::Core::WriteThrottledOS::OSWriteThrottleTracker> osWriteThrottleTracker
104 );
105#endif
106
108
109#ifdef LL_PLAT_C
110 MCNAPI ::Core::DiskAccessTracker::TrackerStats computeMainTrackerStats(
111 ::std::chrono::nanoseconds byteWriteCalculationWindow,
112 ::std::chrono::nanoseconds writeCountCalculationWindow
113 );
114
115 MCNAPI void computeTrackerStats(
117 ::std::chrono::nanoseconds byteWriteCalculationWindow,
118 ::std::chrono::nanoseconds writeCountCalculationWindow
119 );
120
121 MCNAPI void setOSWriteThrottleTracker(
122 ::std::shared_ptr<::Core::WriteThrottledOS::OSWriteThrottleTracker> osWriteThrottleTracker
123 );
124
125 MCNAPI void setOnBudgetAboveRecoverThreshold(
126 ::std::function<void(::std::chrono::nanoseconds, uint64, ::std::optional<uint64>, ::std::string const&)>
127 onBudgetAboveRecoverThreshold
128 );
129
130 MCNAPI void setOnBudgetBelowLowThreshold(
131 ::std::function<void(uint64, double, double, ::std::string const&)> onBudgetBelowLowThreshold
132 );
133
134 MCNAPI void setShouldRepeatLowTelemetryFunc(
136 shouldRepeatLowTelemetryFunc
137 );
138
139 MCNAPI void showVerboseLogs(bool showLogs);
140
141 MCNAPI void update();
142#endif
143
145 // NOLINTEND
146
147public:
148 // static functions
149 // NOLINTBEGIN
150 MCNAPI static ::Core::DiskAccessTracker& getDiskAccessTracker();
151 // NOLINTEND
152
153public:
154 // constructor thunks
155 // NOLINTBEGIN
156 MCNAPI void* $ctor(::std::unique_ptr<::Core::DiskAccessDiagnostics> diagnostics);
157 // NOLINTEND
158
159public:
160 // destructor thunk
161 // NOLINTBEGIN
162 MCNAPI void $dtor();
163 // NOLINTEND
164};
165
166} // namespace Core
Definition DiskAccessDiagnostics.h:7
MCAPI void addIgnoredPath(::Core::PathView path)
static MCAPI ::Core::DiskAccessTracker & getDiskAccessTracker()
MCAPI DiskAccessTracker(::std::unique_ptr<::Core::DiskAccessDiagnostics > diagnostics)
MCAPI void * $ctor(::std::unique_ptr<::Core::DiskAccessDiagnostics > diagnostics)
MCAPI void _addNewWriteOperation(uint64 amount, ::Core::WriteOperation path, ::Core::PathView)
Definition PathView.h:19
Definition OSWriteThrottleTracker.h:7
Definition DiskAccessTracker.h:27
Definition DiskAccessTracker.h:47
Definition Alias.h:14