Logo ROOT   6.07/09
Reference Guide
XrdProofdTrace.h
Go to the documentation of this file.
1 // @(#)root/proofd:$Id$
2 // Author: G. Ganis June 2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_XrdProofdTrace
13 #define ROOT_XrdProofdTrace
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // XrdProofdTrace //
18 // //
19 // Authors: G. Ganis, CERN, 2005 //
20 // //
21 // Trace utils for xproofd. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 //
26 // Trace flags
27 //
28 // Global mask
29 #define TRACE_ALL 0xff7f
30 
31 // Levels
32 #define TRACE_XERR 0x0001
33 #define TRACE_REQ 0x0002
34 #define TRACE_DBG 0x0004
35 #define TRACE_LOGIN 0x0008
36 #define TRACE_FORK 0x0010
37 #define TRACE_MEM 0x0020
38 #define TRACE_HDBG 0x0040
39 // Bit 0x0080 reserved for future usage
40 
41 // Domains
42 #define TRACE_DOMAINS 0xFF00
43 #define TRACE_RSP 0x0100
44 #define TRACE_AUX 0x0200
45 #define TRACE_CMGR 0x0400
46 #define TRACE_SMGR 0x0800
47 #define TRACE_NMGR 0x1000
48 #define TRACE_PMGR 0x2000
49 #define TRACE_GMGR 0x4000
50 #define TRACE_SCHED 0x8000
51 
52 #ifndef NODEBUG
53 
54 #ifndef ROOT_Riosfwd
55 #include "Riosfwd.h"
56 #endif
57 #ifndef ROOT_DllImport
58 #include "DllImport.h"
59 #endif
60 #include "XrdOuc/XrdOucTrace.hh"
61 
63 
64 #if 0
65 // silence warning from gcc6
66 // include/XrdProofdTrace.h:106:10: warning: nonnull argument "this" compared to NULL [-Wnonnull-compare]
67 #if defined(__GNUC__) && (__GNUC__ >= 5) && !defined(__INTEL_COMPILER)
68 #pragma GCC diagnostic ignored "-Wnonnull-compare"
69 #endif
70 #endif
71 
72 //
73 // Auxilliary macros
74 //
75 #define XPDDOM(d) unsigned int xpdtracingdomain = (unsigned int)(TRACE_ ## d & TRACE_ALL);
76 #define XPDLOC(d,x) unsigned int xpdtracingdomain = (unsigned int)(TRACE_ ## d & TRACE_ALL); \
77  const char *xpdloc = x;
78 
79 #define TRACINGALL(x) (TRACE_ALL == TRACE_ ## x)
80 #define TRACINGERR(x) (TRACE_XERR == TRACE_ ## x)
81 #define TRACINGACT(x) (XrdProofdTrace && (XrdProofdTrace->What & TRACE_ ## x))
82 #define TRACINGDOM (XrdProofdTrace && (XrdProofdTrace->What & xpdtracingdomain))
83 #define TRACING(x) (TRACINGALL(x) || TRACINGERR(x) || (TRACINGACT(x) && TRACINGDOM))
84 
85 #define TRACESET(act,on) \
86  if (on) { \
87  XrdProofdTrace->What |= TRACE_ ## act; \
88  } else { \
89  XrdProofdTrace->What &= ~(TRACE_ ## act & TRACE_ALL); \
90  }
91 
92 #define XPDPRT(x) \
93  {XrdProofdTrace->Beg("-I"); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End();}
94 
95 #define XPDERR(x) \
96  {XrdProofdTrace->Beg("-E"); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End();}
97 
98 #define TRACE(act, x) \
99  if (TRACING(act)) { \
100  if (TRACINGERR(act)) { \
101  XPDERR(x); \
102  } else { \
103  XPDPRT(x); \
104  } \
105  }
106 
107 #define TRACET(tid, act, x) \
108  if (TRACING(act)) { \
109  const char *typ = (TRACINGERR(act)) ? "-E" : "-I"; \
110  XrdProofdTrace->Beg(typ, 0, tid); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
111  }
112 
113 #define TRACEP(p, act, x) \
114  if (TRACING(act)) { \
115  const char *typ = (TRACINGERR(act)) ? "-E" : "-I"; \
116  if (p) {\
117  XrdProofdTrace->Beg(typ, 0, p->TraceID()); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
118  } else {XPDERR(x);}\
119  }
120 #define TRACEI(id, act, x) \
121  if (TRACING(act)) { \
122  if (TRACINGERR(act)) { \
123  if (id) {\
124  XrdProofdTrace->Beg("-E", 0, id); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
125  } else { XPDERR(x); }\
126  } else { \
127  if (id) {\
128  XrdProofdTrace->Beg("-I", 0, id); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
129  } else { XPDPRT(x); }\
130  } \
131  }
132 
133 #else
134 
135 // Dummy versions
136 
137 #define TRACING(x) 0
138 #define TRACINGERR(x) (0)
139 #define TRACESET(act,on)
140 #define XPDLOC(x)
141 #define XPDPRT(x)
142 #define XPDERR(x)
143 #define TRACE(act, x)
144 #define TRACEID(tid, act, x)
145 #define TRACEP(p, act, x)
146 #define TRACEI(id, act, x)
147 
148 #endif
149 
150 #endif
R__EXTERN XrdOucTrace * XrdProofdTrace
#define R__EXTERN
Definition: DllImport.h:27