source: XIOS/dev/dev_rv/src4/xmlio/exception_mac.hpp @ 2338

Last change on this file since 2338 was 258, checked in by hozdoba, 13 years ago
File size: 1.7 KB
Line 
1/* ************************************************************************** *
2 *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
3 * ************************************************************************** */
4
5#ifndef __EXCEPTION_MAC_HPP__
6#define __EXCEPTION_MAC_HPP__
7
8/**
9 * \file    exception_mac.hpp
10 * \brief   Gestion des erreurs levées lors de l'exécution de programme (macros).
11 * \author  Hervé Ozdoba
12 * \version 0.4
13 * \date    9 Juin 2011
14 */
15
16#ifndef __XIOS_NO_EXTERN
17
18// Boost headers
19#include <boost/format.hpp>
20
21#endif // __XIOS_NO_EXTERN
22
23// ///////////////////////////////// Macros //////////////////////////////// //
24
25/*! \def   XIOS_INFO(message)
26 *  \brief Ecriture générique d'informations relatives au positionnement d'une portion de code.
27 */
28/*! \def   XIOS_ERROR(id, message)
29 *  \brief Génération d'une exception détaillée durant l'exécution du programme.
30 */
31/*! \def   XIOS_ERROR_FORMAT(id, , format_str, data)
32 *  \brief Génération d'une exception formatée durant l'exécution du programme.
33 */
34/*! \def   XIOS_DEBUG(message)
35 *  \brief Envoi d'un message de débogage sur la sortie de logging durant l'exécution du programme.
36 */
37
38#define XIOS_INFO(message) \
39   "In file \'" __FILE__ "\', line " << __LINE__ << " -> " message << std::endl
40
41#define XIOS_ERROR(id, message) \
42        xmlioserver::CException(id).getStream() << XIOS_INFO(message)
43
44#define XIOS_ERROR_FORMAT(id, format_str, data) \
45   xmlioserver::CException(id).getStream() << XIOS_INFO(<<boost::format(format_str)data)
46
47#ifdef  __XIOS_DEBUG
48#  define XIOS_DEBUG(message) std::clog << "> Debug " << XIOS_INFO(message)
49#else
50#  define XIOS_DEBUG(message)
51#endif
52
53#endif  // __EXCEPTION_MAC_HPP__
54
Note: See TracBrowser for help on using the repository browser.