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
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&);
43
44 public:
45 // member functions
46 // NOLINTBEGIN
48
49 MCNAPI ::BatchedNetworkPeer::DataCallback& operator=(::BatchedNetworkPeer::DataCallback&&);
50
51 MCNAPI ~DataCallback();
52 // NOLINTEND
53
54 public:
55 // constructor thunks
56 // NOLINTBEGIN
58 // NOLINTEND
59
60 public:
61 // destructor thunk
62 // NOLINTBEGIN
63 MCNAPI 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
85
86public:
87 // virtual functions
88 // NOLINTBEGIN
89 // vIndex: 0
90 virtual ~BatchedNetworkPeer() /*override*/;
91
92 // vIndex: 5
93 virtual void flush(::std::function<void()>&& callback) /*override*/;
94
95 // vIndex: 1
96 virtual void sendPacket(
97 ::std::string const& data,
98 ::NetworkPeer::Reliability reliability,
99 ::Compressibility compressible
100 ) /*override*/;
101
102 // vIndex: 2
103 virtual ::NetworkPeer::DataStatus receivePacket(
104 ::std::string& outData,
105 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
106 ) /*override*/;
107
108 // vIndex: 3
109 virtual ::NetworkPeer::NetworkStatus getNetworkStatus() const /*override*/;
110
111 // vIndex: 4
112 virtual void update() /*override*/;
113 // NOLINTEND
114
115public:
116 // member functions
117 // NOLINTBEGIN
118 MCAPI BatchedNetworkPeer(::std::shared_ptr<::NetworkPeer> peer, ::Scheduler& scheduler);
119
120 MCAPI void _startSendTask();
121 // NOLINTEND
122
123public:
124 // constructor thunks
125 // NOLINTBEGIN
126 MCAPI void* $ctor(::std::shared_ptr<::NetworkPeer> peer, ::Scheduler& scheduler);
127 // NOLINTEND
128
129public:
130 // destructor thunk
131 // NOLINTBEGIN
132 MCAPI void $dtor();
133 // NOLINTEND
134
135public:
136 // virtual function thunks
137 // NOLINTBEGIN
138 MCAPI void $flush(::std::function<void()>&& callback);
139
140 MCAPI void
141 $sendPacket(::std::string const& data, ::NetworkPeer::Reliability reliability, ::Compressibility compressible);
142
143 MCAPI ::NetworkPeer::DataStatus $receivePacket(
144 ::std::string& outData,
145 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
146 );
147
148 MCFOLD ::NetworkPeer::NetworkStatus $getNetworkStatus() const;
149
150 MCAPI void $update();
151 // NOLINTEND
152
153public:
154 // vftables
155 // NOLINTBEGIN
156 MCNAPI static void** $vftable();
157 // NOLINTEND
158};
Definition BatchedNetworkPeer.h:21
static MCAPI void ** $vftable()
Definition NetworkPeer.h:8
Definition Scheduler.h:13
Definition TaskGroup.h:104
STL namespace.
Definition BatchedNetworkPeer.h:29
MCAPI DataCallback(::BatchedNetworkPeer::DataCallback &&)
MCAPI::BatchedNetworkPeer::DataCallback & operator=(::BatchedNetworkPeer::DataCallback &&)
MCAPI void * $ctor(::BatchedNetworkPeer::DataCallback &&)
Definition NetworkPeer.h:40