43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
//-----------------------------------------------------------------------------
|
|
// ___ __ _ _
|
|
// / _ \__ _ _ __ ___ ___ / /(_)_ __ | | __
|
|
// / /_)/ _` | '__/ __|/ _ \/ / | | '_ \| |/ /
|
|
// / ___/ (_| | | \__ \ __/ /__| | | | | <
|
|
// \/ \__,_|_| |___/\___\____/_|_| |_|_|\_\ .
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
// Author: Kurt Sassenrath
|
|
// Module: Server
|
|
//
|
|
// Server interface.
|
|
//
|
|
// Copyright (c) 2023 Kurt Sassenrath.
|
|
//
|
|
// License TBD.
|
|
//-----------------------------------------------------------------------------
|
|
#ifndef server_5b46f075be3caa00
|
|
#define server_5b46f075be3caa00
|
|
|
|
#include <cstdint>
|
|
#include <memory>
|
|
|
|
namespace parselink {
|
|
|
|
template <typename Server>
|
|
concept server_concept = requires(Server& srv) {
|
|
{ srv.run() } -> std::same_as<std::error_code>;
|
|
};
|
|
|
|
class server {
|
|
public:
|
|
virtual ~server() = default;
|
|
virtual std::error_code run() noexcept = 0;
|
|
};
|
|
|
|
std::unique_ptr<server> make_server(std::string_view address,
|
|
std::uint16_t user_port, std::uint16_t websocket_port);
|
|
|
|
} // namespace parselink
|
|
|
|
#endif // server_5b46f075be3caa00
|