group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
DiscoveryClient.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "SDL3_net/SDL_net.h"
4
5#include <cstdint>
6#include <string>
7#include <unordered_map>
8#include <vector>
9
11{
12public:
14 {
15 std::string serverName;
16 std::string hostIp;
17 uint16_t gamePort;
19 uint8_t maxPlayers;
20 uint32_t globalServerId = 0;
21 uint64_t lastSeenMs;
22 };
23
24 bool start(uint16_t discoveryPort);
25
26 void stop();
27
28 void poll();
29
32 void refresh(bool clearExisting = false);
33
34 std::vector<DiscoveredServer> getServers();
35
36private:
37 uint16_t discoveryPort = 0;
38 NET_Address* broadcastAddr = nullptr;
39 std::vector<NET_Address*> subnetBroadcastAddrs;
40 uint64_t lastRequestMs = 0;
41
42 NET_DatagramSocket* socket = nullptr;
43
44 std::unordered_map<std::string, DiscoveredServer> discoveredServers; // key is host:port
45};
Definition DiscoveryClient.hpp:11
bool start(uint16_t discoveryPort)
Definition DiscoveryClient.cpp:79
std::vector< NET_Address * > subnetBroadcastAddrs
Definition DiscoveryClient.hpp:39
NET_Address * broadcastAddr
Definition DiscoveryClient.hpp:38
uint64_t lastRequestMs
Definition DiscoveryClient.hpp:40
void stop()
Definition DiscoveryClient.cpp:103
void poll()
Definition DiscoveryClient.cpp:116
void refresh(bool clearExisting=false)
Immediately send a LAN discovery request.
Definition DiscoveryClient.cpp:171
std::vector< DiscoveredServer > getServers()
Definition DiscoveryClient.cpp:188
uint16_t discoveryPort
Definition DiscoveryClient.hpp:37
std::unordered_map< std::string, DiscoveredServer > discoveredServers
Definition DiscoveryClient.hpp:44
NET_DatagramSocket * socket
Definition DiscoveryClient.hpp:42
Definition DiscoveryClient.hpp:14
uint8_t currentPlayers
Definition DiscoveryClient.hpp:18
uint64_t lastSeenMs
Definition DiscoveryClient.hpp:21
std::string hostIp
Definition DiscoveryClient.hpp:16
uint32_t globalServerId
Definition DiscoveryClient.hpp:20
uint8_t maxPlayers
Definition DiscoveryClient.hpp:19
uint16_t gamePort
Definition DiscoveryClient.hpp:17
std::string serverName
Definition DiscoveryClient.hpp:15