LeviLamina
Loading...
Searching...
No Matches
ChunkRecyclerTelemetryData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
7#include "mc/platform/threading/Mutex.h"
8#include "mc/world/level/ChunkPos.h"
9
10// auto generated forward declare list
11// clang-format off
12class Level;
13class LevelChunk;
14namespace Bedrock::Threading { class Mutex; }
15// clang-format on
16
18public:
19 // ChunkRecyclerTelemetryData inner types declare
20 // clang-format off
21 class TaskInfo;
22 class TimeAccumulator;
23 struct BucketContext;
24 struct ChunkData;
25 // clang-format on
26
27 // ChunkRecyclerTelemetryData inner types define
28 enum class Bucket : int {
29 GenTimeSavedByCacheSize100 = 0,
30 GenTimeSavedByCacheSize250 = 1,
31 GenTimeSavedByCacheSize500 = 2,
32 GenTimeSavedByCacheSize1000 = 3,
33 GenTimeSavedByCacheSize2000 = 4,
34 GenTimeSavedByCacheSize5000 = 5,
35 GenTimeSavedByCacheSize10000 = 6,
36 GenTimeSavedByCacheSize20000 = 7,
37 GenTimeSavedByCacheSize50000 = 8,
38 GenTimeSavedByCacheSizeINF = 9,
39 Count = 10,
40 };
41
42 class TaskInfo {
43 public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mTimeStart;
47 // NOLINTEND
48 };
49
51 public:
52 // member variables
53 // NOLINTBEGIN
54 ::ll::TypedStorage<8, 8, uint64> mNanoseconds;
55 // NOLINTEND
56 };
57
59 public:
60 // member variables
61 // NOLINTBEGIN
62 ::ll::TypedStorage<4, 4, ::ChunkRecyclerTelemetryData::Bucket> mBucket;
63 ::ll::TypedStorage<8, 32, ::std::string> mName;
64 ::ll::TypedStorage<8, 8, ::ChunkRecyclerTelemetryData::TimeAccumulator> mTimeAccumulator;
65 ::ll::TypedStorage<8, 64, ::std::function<bool(int64)>> isInRangeInclusive;
66 // NOLINTEND
67
68#ifdef LL_PLAT_S
69 public:
70 // prevent constructor by default
71 BucketContext& operator=(BucketContext const&);
73
74#else // LL_PLAT_C
75#endif
76 public:
77 // member functions
78 // NOLINTBEGIN
79#ifdef LL_PLAT_S
81#endif
82 // NOLINTEND
83
84 public:
85 // constructor thunks
86 // NOLINTBEGIN
87#ifdef LL_PLAT_S
88 MCAPI void* $ctor(::ChunkRecyclerTelemetryData::BucketContext const&);
89#endif
90 // NOLINTEND
91 };
92
93 struct ChunkData {
94 public:
95 // member variables
96 // NOLINTBEGIN
97 ::ll::TypedStorage<8, 8, ::ChunkRecyclerTelemetryData::TimeAccumulator> mTimeAccumulator;
98 ::ll::TypedStorage<8, 8, int64> mSequence;
99 // NOLINTEND
100 };
101
102public:
103 // member variables
104 // NOLINTBEGIN
105 ::ll::TypedStorage<8, 24, ::std::vector<::ChunkRecyclerTelemetryData::BucketContext>> mTimeBuckets;
106 ::ll::TypedStorage<8, 16, ::std::map<::ChunkPos, ::ChunkRecyclerTelemetryData::ChunkData>> mChunkCache;
107 ::ll::TypedStorage<8, 8, ::ChunkRecyclerTelemetryData::TimeAccumulator> mTotalTime;
108 ::ll::TypedStorage<8, 8, uint64> mDeletedChunks;
109 ::ll::TypedStorage<8, 8, uint64> mGeneratedChunks;
110 ::ll::TypedStorage<1, 1, bool> mIsLocked;
111 ::ll::TypedStorage<1, 1, bool> mIsLevelStarted;
112 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLevelStartTime;
113 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mDuration;
114 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mMutex;
115 ::ll::TypedStorage<4, 4, int> mCurrentTick;
116 ::ll::TypedStorage<8, 8, uint64> mOuterUpdateCount;
117 ::ll::TypedStorage<8, 8, uint64> mInnerUpdateCount;
118 ::ll::TypedStorage<8, 8, uint64> mChunkRadiusSum;
119 ::ll::TypedStorage<8, 8, uint64> mOverworldPlayerSum;
120 ::ll::TypedStorage<8, 8, uint64> mMaximumOverworldPlayers;
121 ::ll::TypedStorage<8, 8, uint64> mActiveOverworldChunksSum;
122 // NOLINTEND
123
124public:
125 // member functions
126 // NOLINTBEGIN
127#ifdef LL_PLAT_S
129#endif
130
131 MCAPI void _reset();
132
133 MCAPI void _setIsLocked();
134
135 MCAPI void endLevel(::Level& level);
136
137 MCAPI void recordCacheCheck(::LevelChunk const& lc);
138
139 MCAPI void recordChunkDeleted(::LevelChunk const& lc);
140
141 MCAPI void recordTaskCompleted(::LevelChunk const& lc, ::ChunkRecyclerTelemetryData::TaskInfo const& taskInfo);
142
143 MCAPI void startLevel(::Level const& level);
144
145 MCAPI void tickLevel(::Level const& level);
146 // NOLINTEND
147
148public:
149 // constructor thunks
150 // NOLINTBEGIN
151#ifdef LL_PLAT_S
152 MCAPI void* $ctor();
153#endif
154 // NOLINTEND
155};
Definition EnableNonOwnerReferences.h:7
Definition Mutex.h:10
Definition ChunkRecyclerTelemetryData.h:42
Definition ChunkRecyclerTelemetryData.h:50
Definition ChunkRecyclerTelemetryData.h:17
Definition LevelChunk.h:87
Definition Level.h:255
Definition ChunkRecyclerTelemetryData.h:58
Definition ChunkRecyclerTelemetryData.h:93