#include "cross.h"
#include "encode_server_description.h"
#include "dcpomatic_socket.h"
-#include "raw_convert.h"
+#include <dcp/raw_convert.h>
#include <libcxml/cxml.h>
#include <boost/lambda/lambda.hpp>
#include <iostream>
using boost::shared_ptr;
using boost::scoped_array;
using boost::weak_ptr;
+using dcp::raw_convert;
EncodeServerFinder* EncodeServerFinder::_instance = 0;
EncodeServerFinder::EncodeServerFinder ()
- : _disabled (false)
- , _search_thread (0)
+ : _search_thread (0)
, _listen_thread (0)
, _stop (false)
{
_listen_thread = new boost::thread (boost::bind (&EncodeServerFinder::listen_thread, this));
}
+
EncodeServerFinder::~EncodeServerFinder ()
+{
+ stop ();
+}
+
+void
+EncodeServerFinder::stop ()
{
_stop = true;
_search_thread->join ();
}
}
+ delete _search_thread;
+ _search_thread = 0;
_listen_io_service.stop ();
if (_listen_thread) {
_listen_thread->join ();
}
}
+ delete _listen_thread;
+ _listen_thread = 0;
+
+ boost::mutex::scoped_lock lm (_servers_mutex);
+ _servers.clear ();
}
void