libdap++ Updated for version 3.8.2

debug.h

Go to the documentation of this file.
00001 /*
00002 // -*- mode: c++; c-basic-offset:4 -*-
00003 
00004 // This file is part of libdap, A C++ implementation of the OPeNDAP Data
00005 // Access Protocol.
00006 
00007 // Copyright (c) 2002,2003 OPeNDAP, Inc.
00008 // Author: James Gallagher <jgallagher@opendap.org>
00009 //
00010 // This library is free software; you can redistribute it and/or
00011 // modify it under the terms of the GNU Lesser General Public
00012 // License as published by the Free Software Foundation; either
00013 // version 2.1 of the License, or (at your option) any later version.
00014 //
00015 // This library is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 // Lesser General Public License for more details.
00019 //
00020 // You should have received a copy of the GNU Lesser General Public
00021 // License along with this library; if not, write to the Free Software
00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023 //
00024 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
00025 */
00026 
00027 /*
00028   This header defines macros which enable compile-time program
00029   instrumentation. These macros work for both C and C++. Enclose the entire
00030   statement to be debugged within the DBG() macro *and* put the semicolon
00031   after the macro. (e.g., DBG(cerr << "Bad program" << endl); ). Statements
00032   should not span lines unless they include `\'s to escape the newlines.
00033 
00034   jhrg 10/13/94
00035 */
00036 
00037 #ifndef _debug_h
00038 #define _debug_h
00039 
00040 #ifdef __cplusplus
00041 
00042 #include <iostream>
00043 using std::cerr;
00044 using std::string;
00045 using std::endl;
00046 #define FILE_N_LINE cerr << __FILE__ << ": " << __LINE__ << ":"
00047 
00048 #else
00049 
00050 #define FILE_N_LINE fprintf(stderr, "%s:%d: ", __FILE__, __LINE__);
00051 
00052 #endif /* cplusplus */
00053 
00054 #ifdef DODS_DEBUG
00055 #define DBG(x) FILE_N_LINE; x
00056 #define DBGN(x) x
00057 #else
00058 #define DBG(x) /* x */
00059 #define DBGN(x) /* x */
00060 #endif
00061 
00064 #ifdef DODS_DEBUG1
00065 #define DBG1(x) FILE_N_LINE; x
00066 #else
00067 #define DBG1(x) /* x */
00068 #endif
00069 
00070 #ifdef DODS_DEBUG2
00071 #define DBG2(x) FILE_N_LINE; x
00072 #else
00073 #define DBG2(x) /* x */
00074 #endif
00075 
00076 #ifdef DODS_PERF
00077 #error "Deprecated macro!"
00078 #endif
00079 
00080 #endif /* _debug_h */