LeviLamina
Loading...
Searching...
No Matches
ActiveTransfersManager.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/network/NetworkIdentifier.h"
8#include "mc/platform/brstd/function_ref.h"
9
10// auto generated forward declare list
11// clang-format off
13namespace ClientBlobCache::Server { class ActiveTransfer; }
14namespace ClientBlobCache::Server { class Blob; }
15namespace ClientBlobCache::Server { class TransferBuilder; }
16// clang-format on
17
18namespace ClientBlobCache::Server {
19
20class ActiveTransfersManager : public ::Bedrock::EnableNonOwnerReferences {
21public:
22 // ActiveTransfersManager inner types declare
23 // clang-format off
24 class TransferTracker;
25 // clang-format on
26
27 // ActiveTransfersManager inner types define
28 class TransferTracker {
29 public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, ::ClientBlobCache::Server::ActiveTransfersManager&> mCache;
33 ::ll::TypedStorage<8, 176, ::NetworkIdentifier const> mOwner;
34 ::ll::TypedStorage<8, 24, ::std::vector<::ClientBlobCache::Server::ActiveTransfer>> mTransfers;
35 ::ll::TypedStorage<4, 4, uint> mMaxConcurrentTransfers;
36 // NOLINTEND
37
38 public:
39 // prevent constructor by default
40 TransferTracker& operator=(TransferTracker const&);
41 TransferTracker(TransferTracker const&);
42 TransferTracker();
43
44 public:
45 // member functions
46 // NOLINTBEGIN
47#ifdef LL_PLAT_C
48 MCNAPI uint64 getMaximumConcurrentTransfers() const;
49
50 MCNAPI uint64 getNumberOfActiveTransfers() const;
51
52 MCNAPI ::std::vector<::ClientBlobCache::Server::ActiveTransfer> const& getTransfers() const;
53#endif
54
55 MCNAPI void onAckReceived(uint64 acked);
56
58 // NOLINTEND
59
60 public:
61 // destructor thunk
62 // NOLINTBEGIN
63 MCNAPI void $dtor();
64 // NOLINTEND
65 };
66
67 using CacheMap = ::std::map<uint64, ::std::weak_ptr<::ClientBlobCache::Server::Blob>>;
68
69 using CacheMapIterator = ::std::_Tree_iterator<::std::_Tree_val<
70 ::std::_Tree_simple_types<::std::pair<uint64 const, ::std::weak_ptr<::ClientBlobCache::Server::Blob>>>>>;
71
72public:
73 // member variables
74 // NOLINTBEGIN
75 ::ll::TypedStorage<
76 8,
77 64,
78 ::std::unordered_map<
80 ::std::unique_ptr<::ClientBlobCache::Server::ActiveTransfersManager::TransferTracker>>>
81 mTransferTrackerMap;
82 ::ll::TypedStorage<8, 16, ::std::map<uint64, ::std::weak_ptr<::ClientBlobCache::Server::Blob>>> mSentBlobs;
83 ::ll::TypedStorage<8, 8, uint64> mCacheSizeBytes;
84 // NOLINTEND
85
86public:
87 // virtual functions
88 // NOLINTBEGIN
89 virtual ~ActiveTransfersManager() /*override*/;
90 // NOLINTEND
91
92public:
93 // member functions
94 // NOLINTBEGIN
95 MCAPI ActiveTransfersManager();
96
97 MCAPI ::std::shared_ptr<::ClientBlobCache::Server::Blob> dropBlobFor(::NetworkIdentifier const& client, uint64 id);
98
99 MCAPI void enableCacheFor(::NetworkIdentifier const& client);
100
101 MCAPI bool isCacheEnabledFor(::NetworkIdentifier const& client) const;
102
103 MCAPI void onPeerDisconnected(::NetworkIdentifier const& client);
104
105 MCAPI ::std::shared_ptr<::ClientBlobCache::Server::Blob>
106 rememberBlob(uint64 id, ::std::string& data, bool isChunkInTickRange);
107
108 MCAPI ::ClientBlobCache::Server::TransferBuilder startTransfer(::NetworkIdentifier const& client) const;
109
110 MCAPI ::ClientBlobCache::Server::TransferBuilder tryStartTransfer(::NetworkIdentifier const& client) const;
111
112 MCAPI void updateNetworkConditions(::ServerNetworkSystem& handler);
113
114#ifdef LL_PLAT_C
115 MCAPI void visitTransfers(
118 visitor
119 ) const;
120#endif
121 // NOLINTEND
122
123public:
124 // constructor thunks
125 // NOLINTBEGIN
126 MCAPI void* $ctor();
127 // NOLINTEND
128
129public:
130 // destructor thunk
131 // NOLINTBEGIN
132 MCAPI void $dtor();
133 // NOLINTEND
134
135public:
136 // vftables
137 // NOLINTBEGIN
138 MCNAPI static void** $vftable();
139 // NOLINTEND
140};
141
142} // namespace ClientBlobCache::Server
Definition EnableNonOwnerReferences.h:7
Definition ActiveTransfer.h:7
Definition TransferBuilder.h:7
Definition NetworkIdentifier.h:10
Definition ServerNetworkSystem.h:34
Definition function_ref.h:60