#ifndef STEAM_MESSAGE_HANDLER_H #define STEAM_MESSAGE_HANDLER_H #include #include #include #include #include #include #include #include "tcp_server.h" #include "tcp/tcp_client.h" class SteamMessageHandler { public: SteamMessageHandler(boost::asio::io_context& io_context, ISteamNetworkingSockets* interface, std::vector& connections, std::map>& clientMap, std::mutex& clientMutex, std::mutex& connectionsMutex, std::unique_ptr& server, bool& g_isHost, int& localPort); ~SteamMessageHandler(); void start(); void stop(); private: void run(); void pollMessages(); boost::asio::io_context& io_context_; ISteamNetworkingSockets* m_pInterface_; std::vector& connections_; std::map>& clientMap_; std::mutex& clientMutex_; std::mutex& connectionsMutex_; std::unique_ptr& server_; bool& g_isHost_; int& localPort_; std::thread thread_; bool running_; }; #endif // STEAM_MESSAGE_HANDLER_H