X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fencode_server_description.h;h=f60051b85fcd9a06c7b98348f2ed20bc0b0ae50e;hb=36e81aebf03d00c716b5e603deb0b5f8f6a99f53;hp=864b0fdc1f17db73204199e75c79b8f60c191976;hpb=ed0b3ee0c5a0ba11d3a1a1dfee8e71238bcab4bd;p=dcpomatic.git diff --git a/src/lib/encode_server_description.h b/src/lib/encode_server_description.h index 864b0fdc1..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. */ @@ -31,6 +34,7 @@ public: : _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. @@ -41,6 +45,7 @@ public: : _host_name (h) , _threads (t) , _link_version (l) + , _last_seen (boost::posix_time::second_clock::local_time()) {} /* Default copy constructor is fine */ @@ -55,8 +60,8 @@ public: return _threads; } - int link_version () const { - return _link_version; + bool current_link_version () const { + return _link_version == SERVER_LINK_VERSION; } void set_host_name (std::string n) { @@ -67,6 +72,14 @@ 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; @@ -74,6 +87,7 @@ private: int _threads; /** server link (i.e. protocol) version number */ int _link_version; + boost::posix_time::ptime _last_seen; }; #endif