LeviLamina
Loading...
Searching...
No Matches
HttpSignalingServer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/threading/Async.h"
7#include "mc/deps/core/threading/AsyncPromise.h"
8#include "mc/deps/core/utility/pub_sub/Publisher.h"
9#include "mc/deps/nether_net/ESessionError.h"
10#include "mc/deps/nether_net/ISignalingInterface.h"
11#include "mc/deps/nether_net/signaling/MessageReceived.h"
12#include "mc/deps/nether_net/signaling/http/HttpServer.h"
13#include "mc/external/webrtc/scoped_refptr.h"
14#include "mc/platform/Result.h"
15#include "mc/platform/brstd/move_only_function.h"
16
17// auto generated forward declare list
18// clang-format off
19namespace Bedrock::PubSub { class Subscription; }
20namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
21namespace NetherNet { struct HttpRequest; }
22namespace NetherNet { struct HttpResponse; }
23namespace NetherNet { struct ISignalingEventHandler; }
24namespace NetherNet { struct NetworkID; }
25namespace webrtc { class PendingTaskSafetyFlag; }
26// clang-format on
27
28namespace NetherNet {
29
31public:
32 // HttpSignalingServer inner types define
33 using PendingKey = ::std::pair<::NetherNet::NetworkID, ::std::string>;
34
36
38
39public:
40 // member variables
41 // NOLINTBEGIN
42 ::ll::TypedStorage<
43 8,
44 16,
45 ::std::map<
46 ::std::pair<::NetherNet::NetworkID, ::std::string>,
48 mPendingJoinPromises;
49 ::ll::TypedStorage<
50 8,
51 128,
53 void(::std::variant<::NetherNet::SignalingEvents::MessageReceived> const&),
55 0>>
56 mEventDispatcher;
57 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<::Bedrock::Result<::std::string>()>> mGetServerInfo;
58 ::ll::TypedStorage<8, 8, ::webrtc::scoped_refptr<::webrtc::PendingTaskSafetyFlag>> mSafetyFlag;
59 // NOLINTEND
60
61public:
62 // virtual functions
63 // NOLINTBEGIN
64 virtual ~HttpSignalingServer() /*override*/ = default;
65
66 virtual ::Bedrock::Threading::Async<::NetherNet::ESessionError>
67 SendSignal(::NetherNet::NetworkID, ::NetherNet::NetworkID to, ::std::string const& signal) /*override*/;
68
69 virtual ::Bedrock::PubSub::Subscription
70 RegisterEventHandler(::NetherNet::ISignalingEventHandler* handler) /*override*/;
71
72 virtual ::Bedrock::Threading::Async<::Bedrock::Result<::NetherNet::HttpResponse>>
73 onRequest(::NetherNet::HttpRequest request) /*override*/;
74 // NOLINTEND
75
76public:
77 // virtual function thunks
78 // NOLINTBEGIN
79 MCAPI ::Bedrock::Threading::Async<::NetherNet::ESessionError>
80 $SendSignal(::NetherNet::NetworkID, ::NetherNet::NetworkID to, ::std::string const& signal);
81
82 MCAPI ::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ISignalingEventHandler* handler);
83
84 MCAPI ::Bedrock::Threading::Async<::Bedrock::Result<::NetherNet::HttpResponse>>
85 $onRequest(::NetherNet::HttpRequest request);
86
87
88 // NOLINTEND
89};
90
91} // namespace NetherNet
Definition Publisher.h:25
Definition Subscription.h:10
Definition Result.h:9
Definition AsyncPromise.h:8
Definition HttpServer.h:23
Definition HttpSignalingServer.h:30
Definition ISignalingInterface.h:18
Definition PendingTaskSafetyFlag.h:16
Definition HttpRequest.h:7
Definition HttpResponse.h:10
Definition ISignalingEventHandler.h:12
Definition NetworkID.h:17