1/* Copyright 2010, University Corporation for Atmospheric Research. See
2   COPYRIGHT file for copying and redistribution conditions.
3
4   This file is part of netcdf-4, a netCDF-like interface for HDF5, or
5   a HDF5 backend for netCDF, depending on your point of view.
6
7   This file contains macros and prototyes relating to logging.
8
9   $Id: nc_logging.h,v 1.1 2010/06/01 15:34:49 ed Exp $
10*/
11
12#ifndef _NCLOGGING_
13#define _NCLOGGING_
14
15#include <stdlib.h>
16#include <assert.h>
17
18#ifdef LOGGING
19
20/* To log something... */
21void nc_log(int severity, const char *fmt, ...);
22void nc_log_hdf5(void);
23
24#define LOG(enc_log e
25
26/* To log based on error code, and set retval. */
27#define BAIL2(e) \
28   do { \
29      retval = e; \
30      LOG((0, "file %s, line %d.\n%s", __FILE____LINE__nc_strerror(e))); \
31      nc_log_hdf5(); \
32   } while (0)
33
34/* To set retval and jump to exit, without logging error message. */
35#define BAIL_QUIET(e) \
36   do { \
37      retval = e; \
38      goto exit; \
39   } while (0)
40
41#else /* LOGGING */
42
43/* These definitions will be used unless LOGGING is defined. */
44
45#define LOG(e)
46
47#define BAIL2(e) \
48   do { \
49      retval = e; \
50   } while (0)
51
52#define BAIL_QUIET BAIL
53
54#define nc_set_log_level(e)
55
56#endif /* LOGGING */
57
58/* To log an error message (if 'LOGGING' is defined), set retval, and jump to exit. */
59#define BAIL(e) \
60   do { \
61      BAIL2(e); \
62      goto exit; \
63   } while (0)
64
65#endif /* _NCLOGGING_ */
66


HyperKWIC - Version 7.20DA executed at 11:37 on 27 Oct 2017 | Polyhedron Solutions - INTERNAL USE | COMMERCIAL (Any O/S) SN 4AKIed