Files
ToyBattlesHQ/CastServer/include/CastServer.h
2025-09-20 07:06:33 -07:00

43 lines
977 B
C++

#ifndef CAST_SERVER_H
#define CAST_SERVER_H
#include <cstdint>
#include <asio.hpp>
#include <optional>
#include "Classes/RoomsManager.h"
#include "Network/SessionsManager.h"
#include <AntiCheat/AntiCheat.h>
namespace Cast
{
using tcp = asio::ip::tcp;
using ioContext = asio::io_context;
class CastServer
{
private:
ioContext& m_io_context;
tcp::acceptor m_acceptor;
std::optional<tcp::socket> m_socket;
std::uint16_t m_serverId;
Cast::Network::SessionsManager m_sessionsManager{};
static inline Cast::Classes::RoomsManager m_roomsManager{};
std::shared_ptr<asio::steady_timer> m_positionTimer;
tcp::acceptor m_mainServerAcceptor;
std::optional<tcp::socket> m_mainSocket;
Ac::AntiCheatManager m_acManager;
public:
CastServer(ioContext& io_context, const std::string& serverIp, std::uint16_t port, std::uint16_t mainPort, std::uint16_t serverId);
void asyncAccept();
void asyncAcceptMainServer();
void tickPositionFlush();
};
}
#endif