Logo ROOT   6.18/05
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#include "DllImport.h"
55#include "XrdOuc/XrdOucTrace.hh"
56
58
59#if 0
60// silence warning from gcc6
61// include/XrdProofdTrace.h:106:10: warning: nonnull argument "this" compared to NULL [-Wnonnull-compare]
62#if defined(__GNUC__) && (__GNUC__ >= 5) && !defined(__INTEL_COMPILER)
63#pragma GCC diagnostic ignored "-Wnonnull-compare"
64#endif
65#endif
66
67//
68// Auxilliary macros
69//
70#define XPDDOM(d) unsigned int xpdtracingdomain = (unsigned int)(TRACE_ ## d & TRACE_ALL);
71#define XPDLOC(d,x) unsigned int xpdtracingdomain = (unsigned int)(TRACE_ ## d & TRACE_ALL); \
72 const char *xpdloc = x;
73
74#define TRACINGALL(x) (TRACE_ALL == TRACE_ ## x)
75#define TRACINGERR(x) (TRACE_XERR == TRACE_ ## x)
76#define TRACINGACT(x) (XrdProofdTrace && (XrdProofdTrace->What & TRACE_ ## x))
77#define TRACINGDOM (XrdProofdTrace && (XrdProofdTrace->What & xpdtracingdomain))
78#define TRACING(x) (TRACINGALL(x) || TRACINGERR(x) || (TRACINGACT(x) && TRACINGDOM))
79
80#define TRACESET(act,on) \
81 if (on) { \
82 XrdProofdTrace->What |= TRACE_ ## act; \
83 } else { \
84 XrdProofdTrace->What &= ~(TRACE_ ## act & TRACE_ALL); \
85 }
86
87#define XPDPRT(x) \
88 {XrdProofdTrace->Beg("-I"); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End();}
89
90#define XPDERR(x) \
91 {XrdProofdTrace->Beg("-E"); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End();}
92
93#define TRACE(act, x) \
94 if (TRACING(act)) { \
95 if (TRACINGERR(act)) { \
96 XPDERR(x); \
97 } else { \
98 XPDPRT(x); \
99 } \
100 }
101
102#define TRACET(tid, act, x) \
103 if (TRACING(act)) { \
104 const char *typ = (TRACINGERR(act)) ? "-E" : "-I"; \
105 XrdProofdTrace->Beg(typ, 0, tid); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
106 }
107
108#define TRACEP(p, act, x) \
109 if (TRACING(act)) { \
110 const char *typ = (TRACINGERR(act)) ? "-E" : "-I"; \
111 if (p) {\
112 XrdProofdTrace->Beg(typ, 0, p->TraceID()); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
113 } else {XPDERR(x);}\
114 }
115#define TRACEI(id, act, x) \
116 if (TRACING(act)) { \
117 if (TRACINGERR(act)) { \
118 if (id) {\
119 XrdProofdTrace->Beg("-E", 0, id); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
120 } else { XPDERR(x); }\
121 } else { \
122 if (id) {\
123 XrdProofdTrace->Beg("-I", 0, id); std::cerr << xpdloc <<": "<< x; XrdProofdTrace->End(); \
124 } else { XPDPRT(x); }\
125 } \
126 }
127
128#else
129
130// Dummy versions
131
132#define TRACING(x) 0
133#define TRACINGERR(x) (0)
134#define TRACESET(act,on)
135#define XPDLOC(x)
136#define XPDPRT(x)
137#define XPDERR(x)
138#define TRACE(act, x)
139#define TRACEID(tid, act, x)
140#define TRACEP(p, act, x)
141#define TRACEI(id, act, x)
142
143#endif
144
145#endif
#define R__EXTERN
Definition: DllImport.h:27
R__EXTERN XrdOucTrace * XrdProofdTrace