LeviLamina
Loading...
Searching...
No Matches
PositionTrackingDBServer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/position_trackingdb/ResultCode.h"
7
8// auto generated forward declare list
9// clang-format off
10class BlockPos;
11class Level;
12class LevelStorage;
15class Scheduler;
16class TaskGroup;
17struct DimensionType;
18namespace PositionTrackingDB { class CacheManager; }
19namespace PositionTrackingDB { class TrackingRecord; }
20// clang-format on
21
22namespace PositionTrackingDB {
23
24class PositionTrackingDBServer : public ::std::enable_shared_from_this<::PositionTrackingDB::PositionTrackingDBServer> {
25public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<8, 8, ::Level&> mLevel;
29 ::ll::TypedStorage<8, 8, ::Scheduler&> mCallbackContext;
30 ::ll::TypedStorage<8, 8, ::LevelStorage&> mLevelStorage;
31 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mAsyncTaskGroup;
32 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PositionTrackingDB::CacheManager>> mLocalCache;
33 ::ll::TypedStorage<8, 24, ::std::vector<::PositionTrackingDB::TrackingRecord*>> mPendingUpdateQueue;
34 // NOLINTEND
35
36public:
37 // prevent constructor by default
38 PositionTrackingDBServer& operator=(PositionTrackingDBServer const&);
39 PositionTrackingDBServer(PositionTrackingDBServer const&);
40 PositionTrackingDBServer();
41
42public:
43 // member functions
44 // NOLINTBEGIN
45 MCAPI PositionTrackingDBServer(::Level& level, ::Scheduler& callbackContext);
46
47 MCAPI void
48 _beginWriteTrackingRecordToLevelStorage(::PositionTrackingDB::TrackingRecord const* record, bool forceWrite);
49
50 MCAPI void _broadcastUpdateToClients(::PositionTrackingDB::TrackingRecord const* record);
51
52 MCAPI void _initializeNewPositionTrackerId(::PositionTrackingId& inOut, bool writeToPersistent);
53
54 MCAPI ::PositionTrackingId createTracker(::BlockPos const& positionToTrack, ::DimensionType const& dimension);
55
56 MCAPI ::PositionTrackingDB::ResultCode destroyTracker(::PositionTrackingId const& id, bool forceLocalCacheEntry);
57
58 MCAPI ::PositionTrackingDB::ResultCode
59 findTracker(::PositionTrackingId const& id, ::PositionTrackingDB::TrackingRecord** outRecord);
60
61 MCAPI void onReceivePacket(::PositionTrackingDBClientRequestPacket const& packet);
62
63 MCAPI bool tick();
64
65 MCAPI ~PositionTrackingDBServer();
66 // NOLINTEND
67
68public:
69 // constructor thunks
70 // NOLINTBEGIN
71 MCAPI void* $ctor(::Level& level, ::Scheduler& callbackContext);
72 // NOLINTEND
73
74public:
75 // destructor thunk
76 // NOLINTBEGIN
77 MCAPI void $dtor();
78 // NOLINTEND
79};
80
81} // namespace PositionTrackingDB
Definition BlockPos.h:21
Definition LevelStorage.h:26
Definition Level.h:255
Definition PositionTrackingDBClientRequestPacket.h:20
Definition CacheManager.h:18
Definition TrackingRecord.h:22
Definition PositionTrackingId.h:10
Definition Scheduler.h:15
Definition TaskGroup.h:55
Definition DimensionType.h:5