13#ifndef LUTILS_MSGHANDLER_HPP_
14#define LUTILS_MSGHANDLER_HPP_
18#define LUTILS_MESSAGE_LEVEL_ZERO "lutils_nolevel"
28template<
typename UI,
typename M,
typename T,
typename B>
43template<
typename UI,
typename M,
typename T,
typename B>
59template<
typename UI,
typename M,
typename T,
typename B>
71template<
typename UI,
typename M,
typename T,
typename B>
80template<
typename UI,
typename M,
typename T,
typename B>
98template<
typename UI,
typename M,
typename T,
typename B>
101 typename t_messages::value_type m;
119 post(m.second, m.first);
139template<
typename UI,
typename M,
typename T,
typename B>
145template<
typename UI,
typename M,
typename T,
typename B>
160template<
typename UI,
typename M,
typename T,
typename B>
161template<
typename TR >
165 std::cerr <<
"[" << l <<
"]:"<< m << std::endl;
174template<
typename UI,
typename M,
typename T,
typename B>
175template<
typename TR >
189template<
typename UI,
typename M,
typename T,
typename B>
197 typename t_levels::const_iterator minlevel = std::find(
m_levels.begin(),
m_levels.end(),
199 typename t_levels::const_iterator reqlevel = std::find(
m_levels.begin(),
m_levels.end(),
202 if (reqlevel ==
m_levels.end() || reqlevel < minlevel)
216template<
typename UI,
typename M,
typename T,
typename B>
219 *(
m_file) << std::endl << m << std::endl;
227template<
typename UI,
typename M,
typename T,
typename B>
243 while (!
m_file->is_open())
253template<
typename UI,
typename M,
typename T,
typename B>
265#define HAS_POST typedef void post_ret_type;
266#define DEFAULT_POST typedef void default_post_ret_type;
bool levelcheck(t_str const &level) const
void message(t_str const &messagein)
TR::default_post_ret_type post(t_str const &m, t_str const &l)
static msghandler & ref()
std::lock_guard< t_mut > t_lock
std::condition_variable m_condition
std::shared_ptr< t_str > t_str_ptr
void reopen(t_str const &)
void set(t_str const &logfile)
std::unique_ptr< t_file > t_file_ptr
std::vector< t_str > t_levels
void setlevel(t_str const &level, t_levels levels)
#define CONDITION_BOOL_WAIT_TRYFUN(cond, lock, var, tryfun)
#define CONDITION_STD_SET(cond, lock, var, val)
#define LUTILS_MESSAGE_LEVEL_ZERO