group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
GlobalServerAdvertiser.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
9
10#include <SDL3/SDL_stdinc.h>
11
12#include <atomic>
13#include <cstdint>
14#include <functional>
15#include <string>
16#include <thread>
17
19{
20public:
21 bool start(const GlobalDiscoveryConfig& cfg, Uint16 gamePort, std::function<int()> currentPlayersFn);
22 void stop();
23 [[nodiscard]] std::uint32_t serverId() const noexcept { return serverId_.load(std::memory_order_relaxed); }
24
25private:
26 void loop();
28 void sendUdpHello();
29 void pollPunchRequests();
31
33 Uint16 gamePort_ = 0;
34 std::function<int()> currentPlayersFn_;
36 std::thread thread_;
37 std::atomic<bool> shouldStop_{false};
38 std::atomic<std::uint32_t> serverId_{0};
39};
Shared wire helpers for global server browser and NAT assist.
Network configuration loaded from config.toml at startup.
Thin wrapper over SDL3_net's NET_DatagramSocket.
Definition GlobalServerAdvertiser.hpp:19
Uint16 gamePort_
Definition GlobalServerAdvertiser.hpp:33
std::thread thread_
Definition GlobalServerAdvertiser.hpp:36
void sendUdpHello()
Definition GlobalServerAdvertiser.cpp:168
void sendPunchProbes(const net::discovery::UdpPunchPeer &peer)
Definition GlobalServerAdvertiser.cpp:198
std::atomic< std::uint32_t > serverId_
Definition GlobalServerAdvertiser.hpp:38
void pollPunchRequests()
Definition GlobalServerAdvertiser.cpp:182
std::atomic< bool > shouldStop_
Definition GlobalServerAdvertiser.hpp:37
void loop()
Definition GlobalServerAdvertiser.cpp:104
net::UdpEndpoint udpEndpoint_
Definition GlobalServerAdvertiser.hpp:35
bool sendRegistration(net::discovery::DirectoryMessage kind)
Definition GlobalServerAdvertiser.cpp:122
bool start(const GlobalDiscoveryConfig &cfg, Uint16 gamePort, std::function< int()> currentPlayersFn)
Definition GlobalServerAdvertiser.cpp:74
std::function< int()> currentPlayersFn_
Definition GlobalServerAdvertiser.hpp:34
GlobalDiscoveryConfig cfg_
Definition GlobalServerAdvertiser.hpp:32
std::uint32_t serverId() const noexcept
Definition GlobalServerAdvertiser.hpp:23
void stop()
Definition GlobalServerAdvertiser.cpp:96
Wraps a NET_DatagramSocket with header-prefixed I/O.
Definition UdpEndpoint.hpp:109
DirectoryMessage
Definition GlobalDiscoveryProtocol.hpp:22
Global server browser / directory-service settings.
Definition NetworkConfig.hpp:121
Definition GlobalDiscoveryProtocol.hpp:99