/*
- Copyright (C) 2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2015-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#ifndef DCPOMATIC_SERVER_H
#define DCPOMATIC_SERVER_H
+
#include <boost/thread.hpp>
#include <boost/asio.hpp>
#include <boost/thread/condition.hpp>
-#include <boost/noncopyable.hpp>
#include <string>
+
class Socket;
-class Server : public boost::noncopyable
+
+class Server
{
public:
explicit Server (int port, int timeout = 30);
virtual ~Server ();
+ Server (Server const&) = delete;
+ Server& operator= (Server const&) = delete;
+
virtual void run ();
void stop ();
bool _terminate;
private:
- virtual void handle (boost::shared_ptr<Socket> socket) = 0;
+ virtual void handle (std::shared_ptr<Socket> socket) = 0;
void start_accept ();
- void handle_accept (boost::shared_ptr<Socket>, boost::system::error_code const &);
+ void handle_accept (std::shared_ptr<Socket>, boost::system::error_code const &);
boost::asio::io_service _io_service;
boost::asio::ip::tcp::acceptor _acceptor;
int _timeout;
};
+
#endif