// GNU Lesser General Public License v3.0 // Copyright (c) 2025 Bart Beumer // // This program is free software; you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License v3.0 as published by // the Free Software Foundation. // #pragma once #include "server.hpp" namespace bmrshared::web { class response_promise; class request_handler_interface { public: using address_type = server::address_type; using request_type = server::request_type; virtual ~request_handler_interface() = default; virtual void handle_request_http(const address_type&, const request_type&, response_promise) = 0; virtual void handle_request_websocket_upgrade(const address_type&, const request_type&, boost::asio::ip::tcp::socket) = 0; }; } // namespace bmrshared::web