be8e2e691a66cd05c6d2a561aa050a792fd0f1b7
[supertux.git] / external / tinygettext / tinygettext / log.cpp
1 //  tinygettext - A gettext replacement that works directly on .po files
2 //  Copyright (C) 2009 Ingo Ruhnke <grumbel@gmx.de>
3 //
4 //  This program is free software; you can redistribute it and/or
5 //  modify it under the terms of the GNU General Public License
6 //  as published by the Free Software Foundation; either version 2
7 //  of the License, or (at your option) any later version.
8 //
9 //  This program is distributed in the hope that it will be useful,
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 //  GNU General Public License for more details.
13 //
14 //  You should have received a copy of the GNU General Public License
15 //  along with this program; if not, write to the Free Software
16 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17
18 #include <iostream>
19 #include "log.hpp"
20
21 namespace tinygettext {
22 \f
23 Log::log_callback_t Log::log_info_callback    = &Log::default_log_callback;
24 Log::log_callback_t Log::log_warning_callback = &Log::default_log_callback;
25 Log::log_callback_t Log::log_error_callback   = &Log::default_log_callback;
26 \f
27 void
28 Log::default_log_callback(const std::string& str)
29 {
30   std::cerr << "tinygettext: " << str;
31 }
32
33 void
34 Log::set_log_info_callback(log_callback_t callback)
35 {
36   log_info_callback = callback;
37 }
38
39 void
40 Log::set_log_warning_callback(log_callback_t callback)
41 {
42   log_warning_callback = callback;
43 }
44
45 void
46 Log::set_log_error_callback(log_callback_t callback)
47 {
48   log_error_callback = callback;
49 }
50 \f
51 Log::Log(log_callback_t callback_) :
52   callback(callback_),
53   out()
54 {
55 }
56
57 Log::~Log() 
58 {
59   callback(out.str());
60 }
61
62 std::ostream&
63 Log::get() 
64 {
65   return out; 
66 }
67 \f
68 } // namespace tinygettext
69
70 /* EOF */