R-Type
2
Doom but in better
Loading...
Searching...
No Matches
client_manager.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <asio.hpp>
3
#include <unordered_map>
4
#include <mutex>
5
#include <cstdint>
6
11
class
ClientManager
{
12
public
:
13
uint32_t
resolveClientID
(
const
asio::ip::udp::endpoint& ep);
14
void
removeClient
(
const
asio::ip::udp::endpoint& ep);
15
20
asio::ip::udp::endpoint
getEndpointForId
(uint32_t clientId);
21
22
private
:
23
std::mutex mutex_;
24
std::unordered_map<asio::ip::udp::endpoint, uint32_t> epToId_;
25
std::unordered_map<uint32_t, asio::ip::udp::endpoint> idToEp_;
26
uint32_t nextId_ = 1;
27
};
ClientManager
Tracks (ip::udp::endpoint)->clientId and allows lookup in reverse.
Definition
client_manager.hpp:11
ClientManager::getEndpointForId
asio::ip::udp::endpoint getEndpointForId(uint32_t clientId)
Returns the endpoint for a given clientId if known, else a default-constructed endpoint.
Definition
client_manager.cpp:26
ClientManager::resolveClientID
uint32_t resolveClientID(const asio::ip::udp::endpoint &ep)
Definition
client_manager.cpp:3
ClientManager::removeClient
void removeClient(const asio::ip::udp::endpoint &ep)
Definition
client_manager.cpp:16
server
src
client_manager.hpp
Generated on Thu Feb 6 2025 22:34:21 for R-Type by
1.12.0