Utils: Moved Logger into 'Logger/' submodule
[senf.git] / Utils / Logger / Stream.hh
1 // $Id$
2 //
3 // Copyright (C) 2007 
4 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
5 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
6 //     Stefan Bund <g0dil@berlios.de>
7 //
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the
20 // Free Software Foundation, Inc.,
21 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
23 /** \file
24     \brief Stream public header */
25
26 #ifndef HH_Stream_
27 #define HH_Stream_ 1
28
29 // Custom includes
30 #include "Levels.hh"
31
32 //#include "Stream.mpp"
33 #include "Stream.ih"
34 ///////////////////////////////hh.p////////////////////////////////////////
35
36 /** \brief Define log stream
37
38     Defines a new log stream named \a stream. The stream is defined as a symbol in the current
39     scope.
40
41     \a defaultLevel defines the default log level for messages posted to this stream. \a
42     runtimeLimit defines the default log limit. Messages with a level below this will not be
43     output.  \a compileLimit defines the default log level limit at compile time: Messages
44     posted with a level below \a compileLimit will be discarded at compile time.
45
46     \hideinitializer
47  */
48 #define SENF_LOG_DEF_STREAM(stream, defaultLevel_, runtimeLimit_, compileLimit_)                  \
49     struct stream                                                                                 \
50         : public senf::log::detail::StreamBase                                                    \
51     {                                                                                             \
52         typedef defaultLevel_ defaultLevel;                                                       \
53         typedef runtimeLimit_ runtimeLimit;                                                       \
54         typedef compileLimit_ compileLimit;                                                       \
55                                                                                                   \
56         static char const * name() { return #stream ; }                                           \
57         virtual char const * v_name() { return name(); }                                          \
58     }
59
60 ///////////////////////////////hh.e////////////////////////////////////////
61 //#include "Stream.cci"
62 //#include "Stream.ct"
63 //#include "Stream.cti"
64 #endif
65
66 \f
67 // Local Variables:
68 // mode: c++
69 // fill-column: 100
70 // comment-column: 40
71 // c-file-style: "senf"
72 // indent-tabs-mode: nil
73 // ispell-local-dictionary: "american"
74 // compile-command: "scons -u test"
75 // End: