Supporters update.
[dcpomatic.git] / src / lib / encode_server_description.h
index 60fb0a29d042fec869e5fec91b7326327d9a7b5b..f79b890f7144c3b68eed6b49f5c350fdbdc9b8d1 100644 (file)
 
 */
 
+
 #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 +36,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 +63,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 +75,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