X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fserver_finder.h;h=8aa07c0696145918cc64f5a8cc09fb35f98cbbb3;hp=22f44eeb8a06641d96aaec0bbac65fb5bebe8d74;hb=aeb835a18c8df347e0ed68fb24631b320abeb611;hpb=a6e7017b36ea2cee9f95c45fc0a4f85294dbc16f diff --git a/src/lib/server_finder.h b/src/lib/server_finder.h index 22f44eeb8..8aa07c069 100644 --- a/src/lib/server_finder.h +++ b/src/lib/server_finder.h @@ -17,10 +17,18 @@ */ -#include "server.h" +/** @file src/lib/server_finder.h + * @brief ServerFinder class. + */ + #include "signaller.h" +#include "server_description.h" #include "config.h" +#include "exception_store.h" #include +#include + +class Socket; class ServerFinder : public Signaller, public ExceptionStore { @@ -45,6 +53,8 @@ private: ServerFinder (); ~ServerFinder (); + void start (); + void search_thread (); void listen_thread (); @@ -53,6 +63,7 @@ private: void handle_accept (boost::system::error_code ec, boost::shared_ptr socket); void config_changed (Config::Property what); + void search_now (); bool _disabled; @@ -62,11 +73,14 @@ private: boost::thread* _listen_thread; std::list _servers; - mutable boost::mutex _mutex; + mutable boost::mutex _servers_mutex; boost::asio::io_service _listen_io_service; boost::shared_ptr _listen_acceptor; bool _stop; + boost::condition _search_condition; + boost::mutex _search_condition_mutex; + static ServerFinder* _instance; };