New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
exception.hpp in vendors/XIOS/current/src – NEMO

source: vendors/XIOS/current/src/exception.hpp @ 3428

Last change on this file since 3428 was 3428, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

File size: 1.4 KB
Line 
1#ifndef __XMLIO_CException__
2#define __XMLIO_CException__
3
4/// xios headers ///
5#include "xmlioserver_spl.hpp"
6#include "object.hpp"
7
8namespace xios
9{
10   /// ////////////////////// Déclarations ////////////////////// ///
11   class CException
12      : private CObject, public StdOStringStream
13   {
14         typedef CObject SuperClass;
15
16      public :
17
18         /// Constructeurs ///
19         CException(void);
20         explicit CException(const StdString & id);
21         CException(const CException & exception);
22         CException(const CException * const exception); // Not implemented.
23
24         /// Accesseurs ///
25         StdString getMessage(void) const;
26         StdOStringStream & getStream(void);
27
28         /// Destructeur ///
29         virtual ~CException(void);
30
31         /// Autre ///
32         virtual StdString toString(void) const;
33         virtual void fromString(const StdString & str);
34
35      private :
36
37         /// Propriétés ///
38         bool desc_rethrow; // throw destructor
39
40   }; // CException
41} // namespace xios
42
43/// //////////////////////////// Macros //////////////////////////// ///
44
45#define INFO(x) \
46   "In file \'" __FILE__ "\', line " << __LINE__ << " -> " x << std::endl;
47
48#ifdef __XIOS_DEBUG
49#  define DEBUG(x) std::clog << "> Debug " << INFO(x)
50#else
51#  define DEBUG(x)
52#endif
53
54#define ERROR(id, x)  CException(id).getStream() << INFO(x)
55
56#endif // __XMLIO_CException__
Note: See TracBrowser for help on using the repository browser.