12#include <boost/preprocessor/cat.hpp>
16#define ERS_REGISTER_OUTPUT_STREAM( class, name, param ) \
18 struct BOOST_PP_CAT( OutputStreamRegistrator, __LINE__ ) { \
19 static ers::OutputStream * create( const std::string & param ) \
20 { return new class( param ); } \
21 BOOST_PP_CAT( OutputStreamRegistrator, __LINE__ ) ()\
22 { ers::StreamFactory::instance().register_out_stream( name, create ); } \
23 } BOOST_PP_CAT( registrator, __LINE__ ); \
26#define ERS_INTERNAL_DEBUG( level, message ) { \
27if ( ers::debug_level() >= level ) \
29 std::ostringstream out; \
31 ers::InternalMessage info( ERS_HERE, out.str() ); \
32 info.set_severity( ers::Severity( ers::Debug, level ) ); \
33 ers::StandardStreamOutput::println( std::cout, info, 0 ); \
36#define ERS_INTERNAL_INFO( message ) { \
37 std::ostringstream out; \
39 ers::InternalMessage info( ERS_HERE, out.str() ); \
40 info.set_severity( ers::Information ); \
41 ers::StandardStreamOutput::println( std::cout, info, 0 ); \
44#define ERS_INTERNAL_WARNING( message ) { \
45 std::ostringstream out; \
47 ers::InternalMessage info( ERS_HERE, out.str() ); \
48 info.set_severity( ers::Warning ); \
49 ers::StandardStreamOutput::println( std::cerr, info, 0 ); \
52#define ERS_INTERNAL_ERROR( message ) { \
53 std::ostringstream out; \
55 ers::InternalMessage info( ERS_HERE, out.str() ); \
56 info.set_severity( ers::Error ); \
57 ers::StandardStreamOutput::println( std::cerr, info, 0 ); \
60#define ERS_INTERNAL_FATAL( message ) { \
61 std::ostringstream out; \
63 ers::InternalMessage info( ERS_HERE, out.str() ); \
64 info.set_severity( ers::Fatal ); \
65 ers::StandardStreamOutput::println( std::cerr, info, 0 ); \
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)