+static void
+show_servers ()
+{
+ while (true) {
+ int N = 0;
+ list<ServerDescription> servers = ServerFinder::instance()->servers ();
+
+ if (Config::instance()->use_any_servers ()) {
+ if (servers.empty ()) {
+ cout << "No encoding servers found.\n";
+ ++N;
+ } else {
+ cout << std::left << setw(24) << "Host" << " Threads\n";
+ ++N;
+ BOOST_FOREACH (ServerDescription const & i, servers) {
+ cout << std::left << setw(24) << i.host_name() << " " << i.threads() << "\n";
+ ++N;
+ }
+ }
+ } else {
+ vector<string> configured_servers = Config::instance()->servers();
+ if (configured_servers.empty()) {
+ cout << "No configured servers, and DCP-o-matic is not set to search for any server.\n";
+ ++N;
+ } else {
+ cout << std::left << setw(24) << "Host" << " Status Threads\n";
+ ++N;
+ BOOST_FOREACH (string const & i, Config::instance()->servers()) {
+ cout << std::left << setw(24) << i << " ";
+ optional<int> threads;
+ BOOST_FOREACH (ServerDescription const & j, servers) {
+ if (i == j.host_name()) {
+ threads = j.threads();
+ }
+ }
+ if (static_cast<bool>(threads)) {
+ cout << "UP " << threads.get() << "\n";
+ } else {
+ cout << "DOWN\n";
+ }
+ ++N;
+ }
+ }
+ }
+
+
+ dcpomatic_sleep (1);
+
+ for (int i = 0; i < N; ++i) {
+ cout << "\033[1A\033[2K";
+ }
+ }
+}
+
+