view common/logging.h @ 285:f23e0ccd5d14

Fix call to windows process. This now uses the correct parameters, emits the signals correctly as errors and waits for the process to finish instead of relying on NOASYNC which did not work for runas and also made it impossible to get the return code
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 02 Apr 2014 13:45:57 +0000
parents bd7fb50078b4
children b033b16dd290
line wrap: on
line source
#ifndef COMMON_LOGGING_H
#define COMMON_LOGGING_H

#ifdef __cplusplus
extern "C" {
#endif

/*
 * @file
 * @brief Logging and debugging functions
 */

#ifdef WIN32

#include <windows.h>

/** @brief Gets the localized error message for the last error
 * returned by GetLastError
 *
 * @returns utf8 error message that needs to be freed by the caller.
 **/

char *getLastErrorMsg();

#endif

/**
 * @def DEBUGOUTPUT
 * @brief If defined code for extra debugging output will be generated.
 *
 * Will be defined if current build is not an RELEASE_BUILD.
 */
#ifndef RELEASE_BUILD
#define DEBUGOUTPUT
#endif

/**
 * @def DEBUGPREFIX
 * @brief A string prepended to debug output.
 *
 * Should be defined to indicate which module created the output.
 */
#ifndef DEBUGPREFIX
#define DEBUGPREFIX ""
#endif

/**
 * @def DEBUGPRINTF(fmt, ...)
 * @brief Debug printf
 *
 * Prints to stderr if DEBUGOUTPUT is defined.
 */
#ifdef DEBUGOUTPUT
#define DEBUGPRINTF(fmt, ...) fprintf(stderr, DEBUGPREFIX "DEBUG: " fmt, ##__VA_ARGS__);
#else
#define DEBUGPRINTF(fmt, ...)
#endif

#ifdef __cplusplus
}
#endif

#endif /* COMMON_LOGGING_H */

http://wald.intevation.org/projects/trustbridge/