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/WriteOperation.h"
7
8// auto generated forward declare list
9// clang-format off
10namespace Core { class DiskAccessDiagnostics; }
11namespace Core { class PathView; }
12namespace Core::WriteThrottledOS { class OSWriteThrottleTracker; }
13// clang-format on
14
15namespace Core {
16
17class DiskAccessTracker {
18public:
19 // DiskAccessTracker inner types declare
20 // clang-format off
21 struct TrackerStats;
22 struct WriteOperation;
23 // clang-format on
24
25 // DiskAccessTracker inner types define
26 struct TrackerStats {
27 public:
28 // member variables
29 // NOLINTBEGIN
37 // NOLINTEND
38
39 public:
40 // prevent constructor by default
41 TrackerStats& operator=(TrackerStats const&);
42 TrackerStats(TrackerStats const&);
43 TrackerStats();
44 };
45
46 struct WriteOperation {
47 public:
48 // member variables
49 // NOLINTBEGIN
53 // NOLINTEND
54
55 public:
56 // prevent constructor by default
57 WriteOperation& operator=(WriteOperation const&);
58 WriteOperation(WriteOperation const&);
59 WriteOperation();
60 };
61
62public:
63 // member variables
64 // NOLINTBEGIN
79 // NOLINTEND
80
81public:
82 // prevent constructor by default
83 DiskAccessTracker& operator=(DiskAccessTracker const&);
84 DiskAccessTracker(DiskAccessTracker const&);
85 DiskAccessTracker();
86
87public:
88 // member functions
89 // NOLINTBEGIN
90 MCNAPI explicit DiskAccessTracker(::std::unique_ptr<::Core::DiskAccessDiagnostics> diagnostics);
91
92 MCNAPI void _addNewWriteOperation(uint64 amount, ::Core::WriteOperation writeOperation, ::Core::PathView path);
93
94#ifdef LL_PLAT_C
95 MCNAPI void _computeTrackerStats(
97 ::std::chrono::steady_clock::time_point byteWriteCalculationWindow,
98 ::std::chrono::steady_clock::time_point writeCountCalculationWindow
99 );
100
101 MCNAPI ::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 void _setCurrentWriteThrottleTracker(
106 ::std::shared_ptr<::Core::WriteThrottledOS::OSWriteThrottleTracker> osWriteThrottleTracker
107 );
108
109 MCNAPI void setOSWriteThrottleTracker(
110 ::std::shared_ptr<::Core::WriteThrottledOS::OSWriteThrottleTracker> osWriteThrottleTracker
111 );
112
113 MCNAPI void update();
114#endif
115
117 // NOLINTEND
118
119public:
120 // static functions
121 // NOLINTBEGIN
122 MCNAPI static ::Core::DiskAccessTracker& getDiskAccessTracker();
123 // NOLINTEND
124
125public:
126 // constructor thunks
127 // NOLINTBEGIN
128 MCNAPI void* $ctor(::std::unique_ptr<::Core::DiskAccessDiagnostics> diagnostics);
129 // NOLINTEND
130
131public:
132 // destructor thunk
133 // NOLINTBEGIN
134 MCNAPI void $dtor();
135 // NOLINTEND
136};
137
138} // 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:19
Definition OSWriteThrottleTracker.h:7
Definition DiskAccessTracker.h:26
Definition DiskAccessTracker.h:46
Definition Alias.h:14