modules/up/src/util/trace.cc
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- Tracer
- enable
- disable
- enabledp
- tindex
- enable
- disable
- enabledp
1 // $Id: trace.cc,v 1.2 2001/02/21 11:08:52 engin Exp $
2 //
3 // Copyright (c) 1994 by the University of Southern California
4 // All rights reserved.
5 //
6 // Permission to use, copy, modify, and distribute this software and its
7 // documentation in source and binary forms for lawful non-commercial
8 // purposes and without fee is hereby granted, provided that the above
9 // copyright notice appear in all copies and that both the copyright
10 // notice and this permission notice appear in supporting documentation,
11 // and that any documentation, advertising materials, and other materials
12 // related to such distribution and use acknowledge that the software was
13 // developed by the University of Southern California, Information
14 // Sciences Institute. The name of the USC may not be used to endorse or
15 // promote products derived from this software without specific prior
16 // written permission.
17 //
18 // THE UNIVERSITY OF SOUTHERN CALIFORNIA DOES NOT MAKE ANY
19 // REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY
20 // PURPOSE. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
21 // IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
22 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
23 // TITLE, AND NON-INFRINGEMENT.
24 //
25 // IN NO EVENT SHALL USC, OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY
26 // SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, WHETHER IN CONTRACT, TORT,
27 // OR OTHER FORM OF ACTION, ARISING OUT OF OR IN CONNECTION WITH, THE USE
28 // OR PERFORMANCE OF THIS SOFTWARE.
29 //
30 // Questions concerning this software should be directed to
31 // ratoolset@isi.edu.
32 //
33 // Author(s): Cengiz Alaettinoglu <cengiz@ISI.EDU>
34
35 #include "config.h"
36 #include <cstring>
37
38 #include "trace.hh"
39
40 Tracer trace;
41
42 char *Tracer::tracenames[TR_MAX] = { "all",
43 "whois_query",
44 "whois_response",
45 "input",
46 0 };
47
48 Tracer::Tracer() {
/* [<][>][^][v][top][bottom][index][help] */
49 enabled=0;
50 }
51
52 void Tracer::enable(int level) {
/* [<][>][^][v][top][bottom][index][help] */
53 if (level)
54 enabled |= (1 << level);
55 else // trace all
56 enabled = ~0;
57 }
58 void Tracer::disable(int level) {
/* [<][>][^][v][top][bottom][index][help] */
59 enabled &= ~(1 << level);
60 }
61 int Tracer::enabledp(int level) {
/* [<][>][^][v][top][bottom][index][help] */
62 return (enabled & (1 << level));
63 }
64
65 inline int Tracer::tindex(char *tracename) {
/* [<][>][^][v][top][bottom][index][help] */
66 for (int i = 0; i < TR_MAX && tracenames[i]; i++)
67 if (strcmp(tracename, tracenames[i]) == 0)
68 return i;
69
70 return -1;
71 }
72
73 void Tracer::enable(char *tracename) {
/* [<][>][^][v][top][bottom][index][help] */
74 int i = tindex(tracename);
75 if (i >= 0)
76 enable(i);
77 }
78
79 void Tracer::disable(char *tracename) {
/* [<][>][^][v][top][bottom][index][help] */
80 int i = tindex(tracename);
81 if (i >= 0)
82 disable(i);
83 }
84
85 int Tracer::enabledp(char *tracename) {
/* [<][>][^][v][top][bottom][index][help] */
86 int i = tindex(tracename);
87 if (i >= 0)
88 return enabledp(i);
89 else
90 return 0;
91 }