libassa  3.5.1
Assure.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //------------------------------------------------------------------------------
3 // $Id: Assure.h,v 1.3 2007/05/14 19:19:50 vlg Exp $
4 //------------------------------------------------------------------------------
5 // Assure.h
6 //------------------------------------------------------------------------------
7 // Copyright (C) 1997-2000,2004,2005 Vladislav Grinchenko <vlg@users.sf.net>
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Library General Public
11 // License as published by the Free Software Foundation; either
12 // version 2 of the License, or (at your option) any later version.
13 //------------------------------------------------------------------------------
14 #ifndef ASSURE_H
15 #define ASSURE_H
16 
17 #include <unistd.h>
18 #include <errno.h> /* errno */
19 #include <signal.h> /* raise */
20 
21 #include "assa/Logger.h"
22 
23 // DO NOT PUT MACROS IN A NAMESPACE!
24 
39 #define Assure_exit( exp_ ) \
40  do { \
41  if ( !(exp_) ) { \
42  DL((ASSA::ASSAERR,"Assure Aborted False Expression!\n")); \
43  DL((ASSA::ASSAERR,"Error on line %d in file %s\n", __LINE__, __FILE__)); \
44  ::raise( SIGTERM ); \
45  } \
46  } while (0)
47 
48 
64 #define Assure_return(exp_) \
65  do { \
66  if ( !(exp_) ) { \
67  DL((ASSA::ASSAERR,"Assure Returned False Expression!\n")); \
68  DL((ASSA::ASSAERR,"Error on line %d in file %s\n", __LINE__, __FILE__)); \
69  return (false); \
70  } \
71  } while (0)
72 
84 #define Assure_return_void(exp_) \
85  do { \
86  if ( !(exp_) ) { \
87  DL((ASSA::ASSAERR,"Assure Returned False Expression!\n")); \
88  DL((ASSA::ASSAERR,"Error on line %d in file %s\n", __LINE__, __FILE__)); \
89  return; \
90  } \
91  } while (0)
92 
109 #define Assure_return_value(exp_,value_) \
110  do { \
111  if ( !(exp_) ) { \
112  DL((ASSA::ASSAERR,"Assure Returned False Expression!\n")); \
113  DL((ASSA::ASSAERR,"Error on line %d in file %s\n", __LINE__, __FILE__)); \
114  return (value_); \
115  } \
116  } while (0)
117 
118 #endif /* ASSURE_H */
An abstraction to message logging facility.