X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fencode_server_description.h;h=f60051b85fcd9a06c7b98348f2ed20bc0b0ae50e;hb=ff639b3cf30afcc097bfd21d39c8d15f466cadd6;hp=2ff1b80f1f01d97e798b7404dee5ab3f60e871f4;hpb=17df947ac256397311a11894062070f8069c7e75;p=dcpomatic.git diff --git a/src/lib/encode_server_description.h b/src/lib/encode_server_description.h index 2ff1b80f1..f60051b85 100644 --- a/src/lib/encode_server_description.h +++ b/src/lib/encode_server_description.h @@ -1,25 +1,29 @@ /* Copyright (C) 2012-2015 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #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. */ @@ -29,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 */ @@ -51,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; } @@ -59,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