#ifndef IXMLDEBUG_H #define IXMLDEBUG_H #include "UpnpGlobal.h" #include "ixml.h" /*! * \file * * \brief Auxiliar routines to aid debugging. */ /*! * \brief Prints the debug statement either on the standard output or log file * along with the information from where this debug statement is coming. */ #ifdef DEBUG void IxmlPrintf( /*! [in] The file name, usually __FILE__. */ const char *DbgFileName, /*! [in] The line number, usually __LINE__ or a variable that got the * __LINE__ at the appropriate place. */ int DbgLineNo, /*! [in] The function name. */ const char *FunctionName, /*! [in] Printf like format specification. */ const char *FmtStr, /*! [in] Printf like Variable number of arguments that will go in the * debug statement. */ ...) #if (__GNUC__ >= 3) /* This enables printf like format checking by the compiler */ __attribute__((format(__printf__, 4, 5))) #endif ; #else /* DEBUG */ static UPNP_INLINE void IxmlPrintf(const char *FmtStr, ...) { (void)FmtStr; } #endif /* DEBUG */ /*! * \brief Print the node names and values of a XML tree. */ #ifdef DEBUG void printNodes( /*! [in] The root of the tree to print. */ IXML_Node *tmpRoot, /*! [in] The depth to print. */ int depth); #else static UPNP_INLINE void printNodes(IXML_Node *tmpRoot, int depth) { (void)tmpRoot; (void)depth; } #endif #endif /* IXMLDEBUG_H */