LeviLamina
Loading...
Searching...
No Matches
LanThreadManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/nether_net/ContextProxy.h"
7#include "mc/deps/nether_net/ILanDiscovery.h"
8#include "mc/deps/nether_net/lan/Controller.h"
9#include "mc/external/sigslot/has_slots.h"
10#include "mc/external/sigslot/single_threaded.h"
11#include "mc/external/webrtc/Thread.h"
12
13// auto generated forward declare list
14// clang-format off
15namespace Bedrock::PubSub { class Subscription; }
16namespace NetherNet { struct ILanEventHandler; }
17namespace NetherNet { struct NetworkID; }
18namespace webrtc { class AsyncPacketSocket; }
19namespace webrtc { class SocketAddress; }
20// clang-format on
21
22namespace NetherNet {
23
24class LanThreadManager : public ::NetherNet::ContextProxy,
25 public ::webrtc::Thread,
26 public ::sigslot::has_slots<::sigslot::single_threaded>,
29public:
30 // member variables
31 // NOLINTBEGIN
44 // NOLINTEND
45
46public:
47 // prevent constructor by default
48 LanThreadManager& operator=(LanThreadManager const&);
49 LanThreadManager(LanThreadManager const&);
50 LanThreadManager();
51
52public:
53 // virtual functions
54 // NOLINTBEGIN
55 virtual ~LanThreadManager() /*override*/ = default;
56
57 virtual ::Bedrock::PubSub::Subscription RegisterEventHandler(::NetherNet::ILanEventHandler* handler) /*override*/;
58
59 virtual bool IsBroadcastDiscoveryEnabled(::NetherNet::NetworkID id) /*override*/;
60
61 virtual void EnableBroadcastDiscovery(::NetherNet::NetworkID id) /*override*/;
62
63 virtual void DisableBroadcastDiscovery(::NetherNet::NetworkID id) /*override*/;
64
65 virtual void AddLanHost(::NetherNet::NetworkID remote, ::std::string const& ipStr, int port) /*override*/;
66
67 virtual void RemoveLanHost(::NetherNet::NetworkID remote) /*override*/;
68
69 virtual void SendLanBroadcastResponse(
70 ::webrtc::SocketAddress const& destination,
72 ::std::string data
73 ) /*override*/;
74
75 virtual void SendSignalingMessageTo(
76 ::NetherNet::NetworkID networkIdFrom,
77 ::NetherNet::NetworkID networkIdTo,
78 ::std::string data
79 ) /*override*/;
80
81 virtual bool IsNetworkIdOnLan(::NetherNet::NetworkID networkId) /*override*/;
82
83 virtual void Suspend() /*override*/;
84
85 virtual void Resume() /*override*/;
86 // NOLINTEND
87
88public:
89 // member functions
90 // NOLINTBEGIN
91 MCAPI void BroadcastTask();
92
93 MCAPI void CreateEncryptedBroadcastSocket();
94
95 MCAPI void OnNetworkDiscoveryComplete();
96
97 MCAPI ::std::error_code SendToHelper(
98 ::std::unique_ptr<::webrtc::AsyncPacketSocket>& socket,
99 void const* data,
100 uint64 size,
101 ::webrtc::SocketAddress const& addr
102 );
103
104 MCAPI void Shutdown();
105 // NOLINTEND
106
107public:
108 // virtual function thunks
109 // NOLINTBEGIN
110 MCAPI ::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ILanEventHandler* handler);
111
112 MCAPI bool $IsBroadcastDiscoveryEnabled(::NetherNet::NetworkID id);
113
114 MCAPI void $EnableBroadcastDiscovery(::NetherNet::NetworkID id);
115
116 MCAPI void $DisableBroadcastDiscovery(::NetherNet::NetworkID id);
117
118 MCAPI void $AddLanHost(::NetherNet::NetworkID remote, ::std::string const& ipStr, int port);
119
120 MCAPI void $RemoveLanHost(::NetherNet::NetworkID remote);
121
122 MCAPI void $SendLanBroadcastResponse(
123 ::webrtc::SocketAddress const& destination,
125 ::std::string data
126 );
127
128 MCAPI void $SendSignalingMessageTo(
129 ::NetherNet::NetworkID networkIdFrom,
130 ::NetherNet::NetworkID networkIdTo,
131 ::std::string data
132 );
133
134 MCAPI bool $IsNetworkIdOnLan(::NetherNet::NetworkID networkId);
135
136 MCAPI void $Suspend();
137
138 MCAPI void $Resume();
139
140
141 // NOLINTEND
142};
143
144} // namespace NetherNet
Definition Subscription.h:10
Definition ContextProxy.h:18
Definition ILanDiscovery.h:15
Definition Controller.h:7
Definition has_slots.h:8
Definition AsyncPacketSocket.h:20
Definition SocketAddress.h:11
Definition Thread.h:20
Definition ILanEventHandler.h:15
Definition NetworkID.h:17
Definition Alias.h:14