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 ::BatchedNetworkPeer::DataCallback& operator=(::BatchedNetworkPeer::DataCallback&&);
48
49 MCAPI ~DataCallback();
50 // NOLINTEND
51
52 public:
53 // destructor thunk
54 // NOLINTBEGIN
55 MCAPI void $dtor();
56 // NOLINTEND
57 };
58
59public:
60 // member variables
61 // NOLINTBEGIN
62 ::ll::TypedStorage<8, 80, ::BinaryStream> mOutgoingData;
63 ::ll::TypedStorage<8, 8, uint64> mCompressibleBytes;
64 ::ll::TypedStorage<8, 32, ::std::string> mIncomingDataBuffer;
65 ::ll::TypedStorage<8, 80, ::std::optional<::ReadOnlyBinaryStream>> mIncomingData;
66 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
67 ::ll::TypedStorage<8, 80, ::SPSCQueue<::BatchedNetworkPeer::DataCallback, 512>> mSendQueue;
68 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mTaskRunning;
69 ::ll::TypedStorage<8, 8, ::std::atomic<uint64>> mQueuedPackets;
70 ::ll::TypedStorage<8, 8, uint64> mSentPackets;
71 ::ll::TypedStorage<1, 1, bool> mAsyncEnabled;
72 // NOLINTEND
73
74public:
75 // prevent constructor by default
76 BatchedNetworkPeer();
77
78public:
79 // virtual functions
80 // NOLINTBEGIN
81 virtual ~BatchedNetworkPeer() /*override*/;
82
83 virtual void flush(::std::function<void()>&& callback) /*override*/;
84
85 virtual void
86 sendPacket(::std::string const& data, ::NetworkPeer::Reliability compressible, ::Compressibility) /*override*/;
87
88 virtual ::NetworkPeer::NetworkStatus getNetworkStatus() const /*override*/;
89
90 virtual void update() /*override*/;
91
92 virtual ::NetworkPeer::DataStatus _receivePacket(
93 ::std::string& outData,
94 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
95 ) /*override*/;
96 // NOLINTEND
97
98public:
99 // member functions
100 // NOLINTBEGIN
101 MCAPI BatchedNetworkPeer(::std::shared_ptr<::NetworkPeer> peer, ::Scheduler& scheduler);
102
103 MCAPI void _startSendTask();
104
105 MCAPI void setAsyncEnabled(bool val);
106 // NOLINTEND
107
108public:
109 // constructor thunks
110 // NOLINTBEGIN
111 MCAPI void* $ctor(::std::shared_ptr<::NetworkPeer> peer, ::Scheduler& scheduler);
112 // NOLINTEND
113
114public:
115 // destructor thunk
116 // NOLINTBEGIN
117 MCAPI void $dtor();
118 // NOLINTEND
119
120public:
121 // virtual function thunks
122 // NOLINTBEGIN
123 MCAPI void $flush(::std::function<void()>&& callback);
124
125 MCAPI void $sendPacket(::std::string const& data, ::NetworkPeer::Reliability compressible, ::Compressibility);
126
127 MCFOLD ::NetworkPeer::NetworkStatus $getNetworkStatus() const;
128
129 MCAPI void $update();
130
131 MCAPI ::NetworkPeer::DataStatus $_receivePacket(
132 ::std::string& outData,
133 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
134 );
135
136
137 // NOLINTEND
138
139public:
140 // vftables
141 // NOLINTBEGIN
142 MCNAPI static void** $vftable();
143 // NOLINTEND
144};
static MCAPI void ** $vftable()
Definition NetworkPeer.h:8
Definition Scheduler.h:15
Definition TaskGroup.h:55
STL namespace.
Definition BatchedNetworkPeer.h:29
Definition NetworkPeer.h:36