/* =========================================================================
* This file is part of NITRO
* =========================================================================
*
* (C) Copyright 2004 - 2010, General Dynamics - Advanced Information Systems
*
* NITRO is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, If not,
* see .
*
*/
#ifndef __NRT_DEBUG_H__
#define __NRT_DEBUG_H__
#include "nrt/Defines.h"
#include "nrt/Types.h"
#ifdef NRT_DEBUG
# define NRT_MEM_LOG "memory_trace"
NRT_CXX_GUARD
/*!
* This will some space, and record that space in a file.
* The format will look like
* MALLOC
* Not threadsafe!
*
* \param file The file where the action occurred
* \param line The line where the action occurred
* \param sz The size to allocate
* \return The Pointer, or NULL on failure
*/
NRTPROT(void *) nrt_Debug_malloc(const char *file, int line, size_t sz);
/*!
* Reallocate some space and record that space in a file.
* The format will look like
* REALLOC
* Not threadsafe!
*
* \param file The file where the action occurred
* \param line The line where the action occurred
* \param sz The sz to allocate
* \return The pointer or NULL on failure
*/
NRTPROT(void *) nrt_Debug_realloc(const char *file, int line, void *ptr,
size_t sz);
/*!
* Free some space and record that space in a file.
* The format will look like
* FREE
* \param file The file where the action occurred
* \param line The line where the action occurred
* \param ptr The ptr to free
*/
NRTPROT(void) nrt_Debug_free(const char *file, int line, void *ptr);
NRT_CXX_ENDGUARD
#endif
NRT_CXX_GUARD
/*!
* \fn nrt_Debug_flogf
* \brief Used for debugging. Prints only if NRT_DEBUG is defined
*
* Print to file only if NRT_DEBUG defined
*
* \param file The file to write out
* \param format Everything else
*/
NRTPROT(void) nrt_Debug_flogf(FILE * file, const char *format, ...);
NRT_CXX_ENDGUARD
#endif