LeviLamina
Loading...
Searching...
No Matches
BatchedNetworkPeer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/threading/SPSCQueue.h"
5#include "mc/deps/core/threading/TaskGroup.h"
6#include "mc/deps/core/utility/BinaryStream.h"
7
8// auto generated inclusion list
9#include "mc/deps/core/threading/SPSCQueue.h"
10#include "mc/deps/core/utility/BinaryStream.h"
11#include "mc/deps/core/utility/ReadOnlyBinaryStream.h"
12#include "mc/network/Compressibility.h"
13#include "mc/network/NetworkPeer.h"
14
15// auto generated forward declare list
16// clang-format off
17class Scheduler;
18class TaskGroup;
19// clang-format on
20
21class BatchedNetworkPeer : public ::NetworkPeer {
22public:
23 // BatchedNetworkPeer inner types declare
24 // clang-format off
25 struct DataCallback;
26 // clang-format on
27
28 // BatchedNetworkPeer inner types define
29 struct DataCallback {
30 public:
31 // member variables
32 // NOLINTBEGIN
33 ::ll::TypedStorage<8, 32, ::std::string> data;
34 ::ll::TypedStorage<4, 4, ::Compressibility> compressible;
35 ::ll::TypedStorage<8, 64, ::std::function<void()>> callback;
36 // NOLINTEND
37
38 public:
39 // prevent constructor by default
40 DataCallback& operator=(DataCallback const&);
41 DataCallback(DataCallback const&);
42 DataCallback();
43
44 public:
45 // member functions
46 // NOLINTBEGIN
47 MCAPI DataCallback(::BatchedNetworkPeer::DataCallback&&);
48
49 MCAPI ::BatchedNetworkPeer::DataCallback& operator=(::BatchedNetworkPeer::DataCallback&&);
50
51 MCAPI ~DataCallback();
52 // NOLINTEND
53
54 public:
55 // constructor thunks
56 // NOLINTBEGIN
57 MCAPI void* $ctor(::BatchedNetworkPeer::DataCallback&&);
58 // NOLINTEND
59
60 public:
61 // destructor thunk
62 // NOLINTBEGIN
63 MCAPI void $dtor();
64 // NOLINTEND
65 };
66
67public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::TypedStorage<8, 80, ::BinaryStream> mOutgoingData;
71 ::ll::TypedStorage<8, 8, uint64> mCompressibleBytes;
72 ::ll::TypedStorage<8, 32, ::std::string> mIncomingDataBuffer;
73 ::ll::TypedStorage<8, 80, ::std::optional<::ReadOnlyBinaryStream>> mIncomingData;
74 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
75 ::ll::TypedStorage<8, 80, ::SPSCQueue<::BatchedNetworkPeer::DataCallback, 512>> mSendQueue;
76 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mTaskRunning;
77 ::ll::TypedStorage<8, 8, ::std::atomic<uint64>> mQueuedPackets;
78 ::ll::TypedStorage<8, 8, uint64> mSentPackets;
79 ::ll::TypedStorage<1, 1, bool> mAsyncEnabled;
80 // NOLINTEND
81
82public:
83 // prevent constructor by default
84 BatchedNetworkPeer();
85
86public:
87 // virtual functions
88 // NOLINTBEGIN
89 virtual ~BatchedNetworkPeer() /*override*/;
90
91 virtual void flush(::std::function<void()>&& callback) /*override*/;
92
93 virtual void sendPacket(
94 ::std::string const& data,
95 ::NetworkPeer::Reliability reliability,
96 ::Compressibility compressible
97 ) /*override*/;
98
99 virtual ::NetworkPeer::NetworkStatus getNetworkStatus() const /*override*/;
100
101 virtual void update() /*override*/;
102
103 virtual ::NetworkPeer::DataStatus _receivePacket(
104 ::std::string& outData,
105 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
106 ) /*override*/;
107 // NOLINTEND
108
109public:
110 // member functions
111 // NOLINTBEGIN
112 MCAPI BatchedNetworkPeer(::std::shared_ptr<::NetworkPeer> peer, ::Scheduler& scheduler);
113
114 MCAPI void _startSendTask();
115 // NOLINTEND
116
117public:
118 // constructor thunks
119 // NOLINTBEGIN
120 MCAPI void* $ctor(::std::shared_ptr<::NetworkPeer> peer, ::Scheduler& scheduler);
121 // NOLINTEND
122
123public:
124 // destructor thunk
125 // NOLINTBEGIN
126 MCAPI void $dtor();
127 // NOLINTEND
128
129public:
130 // virtual function thunks
131 // NOLINTBEGIN
132 MCAPI void $flush(::std::function<void()>&& callback);
133
134 MCAPI void
135 $sendPacket(::std::string const& data, ::NetworkPeer::Reliability reliability, ::Compressibility compressible);
136
137 MCFOLD ::NetworkPeer::NetworkStatus $getNetworkStatus() const;
138
139 MCAPI void $update();
140
141 MCAPI ::NetworkPeer::DataStatus $_receivePacket(
142 ::std::string& outData,
143 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
144 );
145
146
147 // NOLINTEND
148
149public:
150 // vftables
151 // NOLINTBEGIN
152 MCNAPI static void** $vftable();
153 // NOLINTEND
154};
static MCAPI void ** $vftable()
Definition NetworkPeer.h:8
Definition Scheduler.h:14
Definition TaskGroup.h:53
STL namespace.
Definition BatchedNetworkPeer.h:29
Definition NetworkPeer.h:36