51 ::ll::TypedStorage<8, 64, ::AsynchronousIPResolver> mFutureIP;
52 ::ll::TypedStorage<2, 2, ushort> mPort;
53 ::ll::TypedStorage<8, 40, ::std::deque<::std::string>> mUrls;
54 ::ll::TypedStorage<8, 40, ::std::deque<::std::string>> mFallbackUrls;
55 ::ll::TypedStorage<8, 424, ::Bedrock::Threading::AsyncPromise<::PingedCompatibleServer>> mPromise;
56 ::ll::TypedStorage<8, 8, uint64> mInFlightRequests;
69 ::std::shared_ptr<::NetherNetServerLocator::ExternalServerPing>,
70 ::std::less<::std::string>,
71 ::std::vector<::std::string>,
72 ::std::vector<::std::shared_ptr<::NetherNetServerLocator::ExternalServerPing>>>>
76 mHttpProbePermissions;
77 ::ll::TypedStorage<8, 40, ::std::deque<::std::shared_ptr<::NetherNetServerLocator::ExternalServerPing>>>
78 mPendingExternalServerPings;
79 ::ll::TypedStorage<8, 8, uint64> mInFlightExternalServerRequests;
87 ::ll::TypedStorage<1, 1, uchar> mVersion;
88 ::ll::TypedStorage<8, 32, ::std::string> mServerName;
89 ::ll::TypedStorage<4, 4, int> mProtocolVersion;
90 ::ll::TypedStorage<8, 24, ::SemVersion> mAppVersion;
91 ::ll::TypedStorage<8, 32, ::std::string> mLevelName;
92 ::ll::TypedStorage<4, 4, ::GameType> mGameType;
93 ::ll::TypedStorage<4, 4, int> mNumPlayers;
94 ::ll::TypedStorage<4, 4, int> mMaxNumPlayers;
95 ::ll::TypedStorage<1, 1, bool> mIsEditorWorld;
96 ::ll::TypedStorage<1, 1, bool> mIsHardcore;
97 ::ll::TypedStorage<1, 2, ::ServerSupportedAuthenticationTypes> mSupportedAuth;
98 ::ll::TypedStorage<8, 32, ::Social::Nonce> mNonce;
99 ::ll::TypedStorage<2, 2, ::Social::ConnectionType> mConnectionType;
109 using Mutex = ::std::mutex;
116 ::ll::TypedStorage<8, 24, ::std::vector<::PingedCompatibleServer>> mLanServerList;
117 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::NetherNetServerLocator::HttpProbeImpl>> mHttpProbeImpl;
118 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::NetherNetConnector>> mNetherNetConnector;
119 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Bedrock::Http::DispatcherInterface>> mHttpDispatcher;
120 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::TransportEndpointCache>> mTransportEndpointCache;
121 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::cereal::ReflectionCtx>> mReflectionCtx;
122 ::ll::TypedStorage<8, 168, ::std::optional<::NetherNetServerLocator::ServerData>> mCachedBroadcastDiscoveryResponse;
123 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mSignalingStatus;
124 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::AppPlatform>> mAppPlatform;
125 ::ll::TypedStorage<1, 1, bool> mAnnouncing;
126 ::ll::TypedStorage<1, 1, bool> mDiscovering;
127 ::ll::TypedStorage<8, 160, ::NetherNetServerLocator::ServerData> mServerToAnnounce;
128 ::ll::TypedStorage<8, 80, ::std::mutex> mLocatorLock;
129 ::ll::TypedStorage<8, 336, ::TaskGroup> mCustomServerTaskGroup;
134 NetherNetServerLocator();
139 virtual ~NetherNetServerLocator() =
default;
141 virtual ::std::shared_ptr<::TransportEndpointCache> getTransportEndpointCache() const ;
143 virtual
void startAnnouncingServer(
144 ::
std::
string const& playerName,
145 ::
std::
string const& worldName,
149 bool isJoinableThroughServerScreen,
153 ::Social::Nonce const& nonce
156 virtual
void stopAnnouncingServer() ;
158 virtual
void startServerDiscovery(::
PortPair ports) ;
160 virtual
void stopServerDiscovery() ;
164 virtual ::Bedrock::PubSub::Subscription acquireHttpProbePermission() ;
168 virtual
void update() ;
174 MCNAPI NetherNetServerLocator(
176 ::Bedrock::NonOwnerPointer<::
AppPlatform> const& appPlatform,
177 ::Bedrock::NonOwnerPointer<::Bedrock::Http::DispatcherInterface> dispatcher,
183 MCAPI
bool _onDiscoveryRequest(::cereal::SchemaWriter& writer, ::cereal::ContextArea area);
204 ::Bedrock::NonOwnerPointer<::
AppPlatform> const& appPlatform,
205 ::Bedrock::NonOwnerPointer<::Bedrock::Http::DispatcherInterface> dispatcher,
216 ::
std::
string const& playerName,
217 ::
std::
string const& worldName,
221 bool isJoinableThroughServerScreen,
225 ::Social::Nonce const& nonce
MCAPI void $startAnnouncingServer(::std::string const &playerName, ::std::string const &worldName, ::GameType gameType, int numPlayers, int maxNumPlayers, bool isJoinableThroughServerScreen, bool isEditorWorld, bool isHardcore, ::ServerSupportedAuthenticationTypes supportedAuth, ::Social::Nonce const &nonce)
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::NetherNetConnector > &&connector, ::Bedrock::NonOwnerPointer<::AppPlatform > const &appPlatform, ::Bedrock::NonOwnerPointer<::Bedrock::Http::DispatcherInterface > dispatcher, ::Bedrock::NonOwnerPointer<::SignalingService > signalingService)