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/PathBuffer.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 writeOperation, ::Core::PathView path);
94
95 MCNAPI_C void _computeTrackerStats(
97 ::std::chrono::steady_clock::time_point byteWriteCalculationWindow,
98 ::std::chrono::steady_clock::time_point writeCountCalculationWindow
99 );
100
101 MCNAPI_C ::std::_Deque_const_iterator<
102 ::std::_Deque_val<::std::_Deque_simple_types<::Core::DiskAccessTracker::WriteOperation>>>
103 _findOldestWriteOperation(::std::chrono::steady_clock::time_point oldestAllowedTime, uint64 hint) const;
104
105 MCNAPI_C void _setCurrentWriteThrottleTracker(
106 ::std::shared_ptr<::Core::WriteThrottledOS::OSWriteThrottleTracker> osWriteThrottleTracker
107 );
108
109 MCNAPI_C void setOSWriteThrottleTracker(
110 ::std::shared_ptr<::Core::WriteThrottledOS::OSWriteThrottleTracker> osWriteThrottleTracker
111 );
112
113 MCNAPI_C void update();
114
116 // NOLINTEND
117
118public:
119 // static functions
120 // NOLINTBEGIN
121 MCNAPI static ::Core::DiskAccessTracker& getDiskAccessTracker();
122 // NOLINTEND
123
124public:
125 // constructor thunks
126 // NOLINTBEGIN
127 MCNAPI void* $ctor(::std::unique_ptr<::Core::DiskAccessDiagnostics> diagnostics);
128 // NOLINTEND
129
130public:
131 // destructor thunk
132 // NOLINTBEGIN
133 MCNAPI void $dtor();
134 // NOLINTEND
135};
136
137} // namespace Core
Definition DiskAccessDiagnostics.h:7
MCAPI void _addNewWriteOperation(uint64 amount, ::Core::WriteOperation writeOperation, ::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)
Definition PathView.h:17
Definition OSWriteThrottleTracker.h:7
Definition DiskAccessTracker.h:27
Definition DiskAccessTracker.h:47
Definition Alias.h:14