X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fupdate.cc;h=c7527ee493624247468b365cde6b2363acb5496f;hp=34eaf385c92e77340b361ad634705083a938a459;hb=308488324dbc4d8b709d3fb1dc9fee0479346c21;hpb=362ed9ee4f73bee21b3ef8d3b449bb8e8877f501 diff --git a/src/lib/update.cc b/src/lib/update.cc index 34eaf385c..c7527ee49 100644 --- a/src/lib/update.cc +++ b/src/lib/update.cc @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "update.h" #include "version.h" #include "ui_signaller.h" @@ -33,8 +33,9 @@ using std::cout; using std::min; using std::string; using std::stringstream; -using libdcp::raw_convert; +using dcp::raw_convert; +/** Singleton instance */ UpdateChecker* UpdateChecker::_instance = 0; static size_t @@ -43,6 +44,9 @@ write_callback_wrapper (void* data, size_t size, size_t nmemb, void* user) return reinterpret_cast(user)->write_callback (data, size, nmemb); } +/** Construct an UpdateChecker. This sets things up and starts a thread to + * do the work. + */ UpdateChecker::UpdateChecker () : _buffer (new char[BUFFER_SIZE]) , _offset (0) @@ -74,6 +78,7 @@ UpdateChecker::~UpdateChecker () delete[] _buffer; } +/** Start running the update check */ void UpdateChecker::run () { @@ -86,6 +91,7 @@ void UpdateChecker::thread () { while (1) { + /* Block until there is something to do */ boost::mutex::scoped_lock lock (_process_mutex); while (_to_do == 0) { _condition.wait (lock); @@ -95,12 +101,16 @@ UpdateChecker::thread () try { _offset = 0; + + /* Perform the request */ int r = curl_easy_perform (_curl); if (r != CURLE_OK) { set_state (FAILED); return; } + + /* Parse the reply */ _buffer[_offset] = '\0'; stringstream s;