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