#include <boost/optional.hpp>
#include <libxml++/libxml++.h>
#include "log.h"
+#include "exceptions.h"
class Socket;
, _threads (t)
{}
- ServerDescription (boost::shared_ptr<const cxml::Node>);
-
/* Default copy constructor is fine */
/** @return server's host name or IP address in string form */
_threads = t;
}
- void as_xml (xmlpp::Node *) const;
-
- static boost::optional<ServerDescription> create_from_metadata (std::string);
-
private:
/** server's host name */
std::string _host_name;
int _threads;
};
-class Server : public boost::noncopyable
+class Server : public ExceptionStore, public boost::noncopyable
{
public:
Server (boost::shared_ptr<Log> log, bool verbose);
std::vector<boost::thread *> _worker_threads;
std::list<boost::shared_ptr<Socket> > _queue;
boost::mutex _worker_mutex;
- boost::condition _worker_condition;
+ boost::condition _full_condition;
+ boost::condition _empty_condition;
boost::shared_ptr<Log> _log;
bool _verbose;