X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fserver.h;h=0b1950aa7c550e461e2dcf0e1a49ae1964949c49;hb=ff639b3cf30afcc097bfd21d39c8d15f466cadd6;hp=a72d360261123641f5e21763c18bd3dd552482af;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05;p=dcpomatic.git diff --git a/src/lib/server.h b/src/lib/server.h index a72d36026..0b1950aa7 100644 --- a/src/lib/server.h +++ b/src/lib/server.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2015 Carl Hetherington + Copyright (C) 2015-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,36 +18,46 @@ */ + #ifndef DCPOMATIC_SERVER_H #define DCPOMATIC_SERVER_H + #include #include #include #include + class Socket; -class Server : public boost::noncopyable + +class Server { public: - Server (int port); + explicit Server (int port, int timeout = 30); virtual ~Server (); + Server (Server const&) = delete; + Server& operator= (Server const&) = delete; + virtual void run (); + void stop (); protected: boost::mutex _mutex; bool _terminate; private: - virtual void handle (boost::shared_ptr socket) = 0; + virtual void handle (std::shared_ptr socket) = 0; void start_accept (); - void handle_accept (boost::shared_ptr, boost::system::error_code const &); + void handle_accept (std::shared_ptr, boost::system::error_code const &); boost::asio::io_service _io_service; boost::asio::ip::tcp::acceptor _acceptor; + int _timeout; }; + #endif