TFCweb  1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
debug.cc
Veure la documentació d'aquest fitxer.
1 
8 /*
9  * Copyright (c) 2012 Toni Corvera
10  *
11  * This file is part of TFCWeb.
12  *
13  * TFCWeb is free software: you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation, either version 3 of the License, or
16  * (at your option) any later version.
17  *
18  * TFCWeb is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with TFCWeb. If not, see <http://www.gnu.org/licenses/>.
25  */
26 
27 #if !defined(NDEBUG) && defined(TFC_MOSTRA_CUA_CLIENTS) // Només en mode de desenvolupament
28 
29 #include "debug.h"
30 
31 #include <iostream>
32 #include <boost/date_time.hpp>
33 #include <boost/lexical_cast.hpp>
34 #include <boost/thread.hpp>
35 
36 using namespace tfc;
37 using namespace std;
38 
39 namespace {
40 
41 using boost::lexical_cast;
42 
44 ThreadPool uipool(1);
45 
47 struct LlistadorTasques {
48  const ThreadPool & pool;
49  explicit LlistadorTasques(const ThreadPool & tp)
50  : pool(tp)
51  {}
52  void operator()() {
53  // Executa
54  const string s = "Clients en cua (sense atendre): " +
55  lexical_cast<string>(pool.num_tasques()) + "\n";
56  cerr << s << flush;
57  // Programa següent
58  boost::this_thread::sleep(boost::posix_time::seconds(3));
59  if (uipool.es_oberta()) {
60  uipool.programa(LlistadorTasques(pool));
61  }
62  }
63 };
64 
65 } // ns anònim
66 
67 namespace tfc {
68 
69 namespace debug {
70 
71 void init(const ThreadPool & pool_clients) {
72  uipool.programa(LlistadorTasques(pool_clients));
73 }
74 
75 } // ns debug
76 
77 } // ns tfc
78 
79 #endif // NDEBUG
80 
81 // vim:set ts=4 et ai: //