|
TECA
The Toolkit for Extreme Climate Analysis
|
Go to the documentation of this file.
6 #include "teca_config.h"
68 std::ostream &
operator<<(std::ostream &os,
const std::vector<T> &vec)
73 size_t n = vec.size();
74 for (
size_t i = 1; i < n; ++i)
82 std::ostream &
operator<<(std::ostream &os,
const std::vector<std::string> &vec);
87 template <
typename num_t,
int len,
88 typename =
typename std::enable_if<!std::is_same<num_t,char>::value,
bool>::type>
90 std::ostream &
operator<<(std::ostream &os,
const num_t (& data)[len])
93 for (
int i = 1; i < len; ++i)
94 os <<
", " << data[i];
105 #define ANSI_RED "\033[1;31;40m"
106 #define ANSI_GREEN "\033[1;32;40m"
107 #define ANSI_YELLOW "\033[1;33;40m"
108 #define ANSI_WHITE "\033[1;37;40m"
109 #define ANSI_OFF "\033[0m"
111 #define BEGIN_HL(_color) (have_tty()?_color:"")
112 #define END_HL (have_tty()?ANSI_OFF:"")
120 #define TECA_MESSAGE(_strm, _head, _head_color, _msg) \
122 << BEGIN_HL(_head_color) << _head << END_HL \
123 << " " << teca_parallel_id() << " [" << __FILE__ << ":" << __LINE__ \
124 << " " << TECA_VERSION_DESCR << "]" << std::endl \
125 << BEGIN_HL(_head_color) << _head << END_HL << " " \
126 << BEGIN_HL(ANSI_WHITE) << "" _msg << END_HL << std::endl;
129 #define TECA_MESSAGE_RAW(_strm, _head, _msg) \
131 << _head << " " << teca_parallel_id() << " [" << __FILE__ \
132 << ":" << __LINE__ << " " << TECA_VERSION_DESCR << "]" << std::endl \
133 << _head << " " << "" _msg << std::endl;
138 #define TECA_FATAL_ERROR(_msg) \
140 std::ostringstream ess; \
141 TECA_MESSAGE(ess, "ERROR:", ANSI_RED, _msg) \
142 teca_error::error_handler(ess.str().c_str()); \
146 #define TECA_ERROR(_msg) TECA_MESSAGE(std::cerr, "ERROR:", ANSI_RED, _msg)
149 #define TECA_WARNING(_msg) TECA_MESSAGE(std::cerr, "WARNING:", ANSI_YELLOW, _msg)
152 #define TECA_STATUS(_msg) TECA_MESSAGE(std::cerr, "STATUS:", ANSI_GREEN, _msg)
global error handling hooks
Definition: teca_common.h:22
TECA_EXPORT std::ostream & operator<<(std::ostream &os, const teca_calendar_util::time_point &tpt)
send the time_point to a stream in humnan readable form
TECA_EXPORT void set_error_handler(p_teca_error_handler handler)
void(*)(const char *) p_teca_error_handler
Definition: teca_common.h:19
TECA_EXPORT void error_message_abort(const char *msg)
TECA_EXPORT void error_message(const char *msg)
TECA_EXPORT void set_error_message_abort_handler()
Install the teca_error::error_message_abort error handler.
TECA_EXPORT void set_error_message_handler()
Install the teca_error::error_message error handler.
p_teca_error_handler error_handler TECA_EXPORT
The global error handler instance.