Barely-functioning GL playback with new arrangement.
[dcpomatic.git] / src / lib / encode_server_description.h
index 864b0fdc1f17db73204199e75c79b8f60c191976..f60051b85fcd9a06c7b98348f2ed20bc0b0ae50e 100644 (file)
@@ -21,6 +21,9 @@
 #ifndef DCPOMATIC_ENCODE_SERVER_DESCRIPTION_H
 #define DCPOMATIC_ENCODE_SERVER_DESCRIPTION_H
 
+#include "types.h"
+#include <boost/date_time/posix_time/posix_time.hpp>
+
 /** @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