bartonnackmanifcheck.hh

Go to the documentation of this file.
00001 
00010 //- Dune includes 
00011 #include <dune/common/exceptions.hh>
00012 
00013 #ifdef CHECK_INTERFACE_IMPLEMENTATION
00014 #undef CHECK_INTERFACE_IMPLEMENTATION
00015 #endif
00016 #ifdef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
00017 #undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
00018 #endif
00019 
00020 #ifdef NDEBUG
00021 #define CHECK_INTERFACE_IMPLEMENTATION(dummy) 
00022 #else
00023 #define CHECK_INTERFACE_IMPLEMENTATION(__interface_method_to_call__) \
00024   {\
00025     static bool call = false; \
00026     if( call == true ) \
00027       DUNE_THROW(NotImplemented,"Interface method not implemented!");\
00028     call = true; \
00029     try { \
00030       (__interface_method_to_call__); \
00031       call = false; \
00032     } \
00033     catch ( ... ) \
00034     { \
00035       call = false; \
00036       throw; \
00037     } \
00038   }
00039 #endif
00040 
00046 #ifdef NDEBUG 
00047 #define CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(__interface_method_to_call__) \
00048   (__interface_method_to_call__)
00049 #else
00050 #define CHECK_AND_CALL_INTERFACE_IMPLEMENTATION(__interface_method_to_call__) \
00051   CHECK_INTERFACE_IMPLEMENTATION(__interface_method_to_call__)
00052 #endif

Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].