#include <boost/thread/condition.hpp>
#include "log.h"
+class Socket;
+
/** @class ServerDescription
* @brief Class to describe a server to which we can send encoding work.
*/
class Server
{
public:
- Server ();
+ Server (Log* log);
- void run ();
+ void run (int num_threads);
private:
void worker_thread ();
- int process (boost::shared_ptr<boost::asio::ip::tcp::socket> socket);
-
+ int process (boost::shared_ptr<Socket> socket);
+
std::vector<boost::thread *> _worker_threads;
- std::list<boost::shared_ptr<boost::asio::ip::tcp::socket> > _queue;
+ std::list<boost::shared_ptr<Socket> > _queue;
boost::mutex _worker_mutex;
boost::condition _worker_condition;
- Log _log;
+ Log* _log;
};