- void worker_thread ();
- int process (boost::shared_ptr<Socket> socket, struct timeval &, struct timeval &);
- void broadcast_thread ();
- void broadcast_received ();
-
- std::vector<boost::thread *> _worker_threads;
- std::list<boost::shared_ptr<Socket> > _queue;
- boost::mutex _worker_mutex;
- boost::condition _full_condition;
- boost::condition _empty_condition;
- boost::shared_ptr<Log> _log;
- bool _verbose;
-
- struct Broadcast {
-
- Broadcast ()
- : thread (0)
- , socket (0)
- {}
-
- boost::thread* thread;
- boost::asio::ip::udp::socket* socket;
- char buffer[64];
- boost::asio::ip::udp::endpoint send_endpoint;
-
- } _broadcast;
+ virtual void handle (std::shared_ptr<Socket> socket) = 0;
+
+ void start_accept ();
+ 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;