X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fencode_server_description.h;h=f60051b85fcd9a06c7b98348f2ed20bc0b0ae50e;hb=0877bf6d06de8e6f768534ec40c26bf629618a20;hp=60fb0a29d042fec869e5fec91b7326327d9a7b5b;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05;p=dcpomatic.git diff --git a/src/lib/encode_server_description.h b/src/lib/encode_server_description.h index 60fb0a29d..f60051b85 100644 --- a/src/lib/encode_server_description.h +++ b/src/lib/encode_server_description.h @@ -21,6 +21,9 @@ #ifndef DCPOMATIC_ENCODE_SERVER_DESCRIPTION_H #define DCPOMATIC_ENCODE_SERVER_DESCRIPTION_H +#include "types.h" +#include + /** @class EncodeServerDescription * @brief Class to describe a server to which we can send encoding work. */ @@ -30,14 +33,19 @@ public: EncodeServerDescription () : _host_name ("") , _threads (1) + , _link_version (0) + , _last_seen (boost::posix_time::second_clock::local_time()) {} /** @param h Server host name or IP address in string form. * @param t Number of threads to use on the server. + * @param l Server link version number of the server. */ - EncodeServerDescription (std::string h, int t) + EncodeServerDescription (std::string h, int t, int l) : _host_name (h) , _threads (t) + , _link_version (l) + , _last_seen (boost::posix_time::second_clock::local_time()) {} /* Default copy constructor is fine */ @@ -52,6 +60,10 @@ public: return _threads; } + bool current_link_version () const { + return _link_version == SERVER_LINK_VERSION; + } + void set_host_name (std::string n) { _host_name = n; } @@ -60,11 +72,22 @@ public: _threads = t; } + void set_seen () { + _last_seen = boost::posix_time::second_clock::local_time(); + } + + int last_seen_seconds () const { + return boost::posix_time::time_duration(boost::posix_time::second_clock::local_time() - _last_seen).total_seconds(); + } + private: /** server's host name */ std::string _host_name; /** number of threads to use on the server */ int _threads; + /** server link (i.e. protocol) version number */ + int _link_version; + boost::posix_time::ptime _last_seen; }; #endif