Barely-functioning GL playback with new arrangement.
[dcpomatic.git] / src / lib / encode_server_description.h
index 60fb0a29d042fec869e5fec91b7326327d9a7b5b..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.
  */
@@ -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