Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
lobbybroadcaster.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <boost/asio/io_context.hpp>
4#include <boost/asio/ip/udp.hpp>
5
6#include <thread>
7#include <atomic>
8
11
12using namespace boost::asio::ip;
13
19public:
23 LobbyBroadcaster(boost::asio::io_context& io_context, const GameConfig& config);
24
29
34 void startBroadcasting(const ServerLobbyBroadcastPacket& bcast_info);
35
40 void setLobbyInfo(const Lobby& bcast_info);
41
46 void stopBroadcasting();
47
48private:
53 void _lobbyBroadcastWorker();
54
56 std::thread worker_thread;
58 std::atomic_bool keep_broadcasting;
60 udp::socket socket;
61
63 std::mutex mut;
66
68 GameConfig config;
69};
Definition: lobbybroadcaster.hpp:18
void stopBroadcasting()
Definition: lobbybroadcaster.cpp:46
void startBroadcasting(const ServerLobbyBroadcastPacket &bcast_info)
Definition: lobbybroadcaster.cpp:29
~LobbyBroadcaster()
Definition: lobbybroadcaster.cpp:25
void setLobbyInfo(const Lobby &bcast_info)
Definition: lobbybroadcaster.cpp:37
Definition: config.hpp:12
Information about the current lobby of players.
Definition: sharedgamestate.hpp:80
Definition: packet.hpp:90