Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/FICN/src/orxonox/core/DebugLevel.cc @ 684

Last change on this file since 684 was 684, checked in by landauf, 16 years ago
  • added new class: the OutputHandler replaces std::cout in Debug.h and redirects the output not only to the console, but also into orxonox.log (this works, of course, only for output using COUT(level) from Debug.h)
  • commented DebugLevel
File size: 2.4 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *
4 *
5 *   License notice:
6 *
7 *   This program is free software; you can redistribute it and/or
8 *   modify it under the terms of the GNU General Public License
9 *   as published by the Free Software Foundation; either version 2
10 *   of the License, or (at your option) any later version.
11 *
12 *   This program is distributed in the hope that it will be useful,
13 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *   GNU General Public License for more details.
16 *
17 *   You should have received a copy of the GNU General Public License
18 *   along with this program; if not, write to the Free Software
19 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20 *
21 *   Author:
22 *      Fabian 'x3n' Landau
23 *   Co-authors:
24 *      ...
25 *
26 */
27
28/*!
29    @file DebugLevel.cc
30    @brief Implementation of the DebugLevel class.
31*/
32
33#include "CoreIncludes.h"
34#include "Debug.h"
35#include "DebugLevel.h"
36
37namespace orxonox
38{
39    DebugLevel* DebugLevel::pointer_s = 0;                // Set the static member variable pointer_s to zero
40    bool DebugLevel::bCreatingDebugLevelObject_s = false; // Set the static member variable bCreatingDebugLevelObject_s to false
41
42    /**
43        @brief Constructor: Registers the object and sets the debug level.
44    */
45    DebugLevel::DebugLevel()
46    {
47        RegisterRootObject(DebugLevel);
48        SetConfigValue(softDebugLevel_s, 2);
49    }
50
51    /**
52        @returns a pointer to the only existing instance of this class.
53    */
54    int DebugLevel::getSoftDebugLevel()
55    {
56        if (!pointer_s && !bCreatingDebugLevelObject_s)
57        {
58            // We need the bCreatingDebugLevelObject_s variable to avoid an infinite recursion:
59            // Creating the object produces debug output and debug output needs the object.
60            bCreatingDebugLevelObject_s = true;
61            pointer_s = new DebugLevel;
62            bCreatingDebugLevelObject_s = false;
63        }
64        else if (bCreatingDebugLevelObject_s)
65            return 4;
66
67        return pointer_s->softDebugLevel_s;
68    }
69}
70
71/**
72    @returns the soft debug level, stored in the only existing instance of the DebugLevel class, configured in the config-file.
73*/
74int getSoftDebugLevel()
75{
76    return orxonox::DebugLevel::getSoftDebugLevel();
77}
Note: See TracBrowser for help on using the repository browser.