OSDN Git Service

- Added better status reporting functions.
[tjqt4port/tj2qt4.git] / taskjuggler / debug.h
1 /*
2  * debug.h - TaskJuggler
3  *
4  * Copyright (c) 2002 by Chris Schlaeger <cs@suse.de>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of version 2 of the GNU General Public License as
8  * published by the Free Software Foundation.
9  *
10  * $Id$
11  */
12
13 #ifndef _debug_h_
14 #define _debug_h_
15
16 #define DEBUGMODE DebugCtrl.getDebugMode()
17 #define DEBUGLEVEL DebugCtrl.getDebugLevel()
18
19 #define DEBUGPF(l) ((DEBUGMODE & 1) && DEBUGLEVEL >= l) // Project File Reader
20 #define DEBUGPS(l) ((DEBUGMODE & 2) && DEBUGLEVEL >= l) // Project Scheduler
21 #define DEBUGTS(l) ((DEBUGMODE & 4) && DEBUGLEVEL >= l) // Task Scheduler
22 #define DEBUGRS(l) ((DEBUGMODE & 8) && DEBUGLEVEL >= l) // Resource Scheduler
23
24 class DebugController
25 {
26 public:
27         DebugController() : debugLevel(0), debugMode(-1) { }
28         ~DebugController() { }
29         
30         void setDebugLevel(int l)
31         {
32                 debugLevel = l;
33         }
34         int getDebugLevel() const { return debugLevel; }
35         
36         void setDebugMode(int m)
37         {
38                 debugMode = m;
39         }
40         int getDebugMode() const { return debugMode; }
41
42 protected:
43         int debugLevel;
44         int debugMode;
45 } ;
46
47 extern DebugController DebugCtrl;
48
49 #endif
50