btllib
include
btllib
status.hpp
1
#ifndef BTLLIB_STATUS_HPP
2
#define BTLLIB_STATUS_HPP
3
4
#include <cstdlib>
5
#include <cstring>
6
#include <ctime>
7
#include <iostream>
8
#include <string>
9
10
namespace
btllib {
11
12
inline
std::string
13
get_time();
14
inline
void
15
log_info(
const
std::string& msg);
16
inline
void
17
log_warning(
const
std::string& msg);
18
inline
void
19
log_error(
const
std::string& msg);
20
inline
void
21
check_error(
bool
condition,
const
std::string& msg);
22
inline
void
23
check_warning(
bool
condition,
const
std::string& msg);
24
inline
void
25
check_stream(
const
std::ios& stream,
const
std::string& name);
26
27
inline
std::string
28
get_time()
29
{
30
time_t now;
31
time(&now);
32
char
buf[
sizeof
(
"2011-10-08T07:07:09Z"
)];
33
strftime(buf,
sizeof
buf,
"%F %T"
, localtime(&now));
34
return
std::string(buf);
35
}
36
37
inline
void
38
log_info(
const
std::string& msg)
39
{
40
std::cerr <<
'['
<< get_time() <<
"] [INFO] "
<< msg << std::endl;
41
}
42
43
inline
void
44
log_warning(
const
std::string& msg)
45
{
46
std::cerr <<
'['
<< get_time() <<
"] [WARNING] "
<< msg << std::endl;
47
}
48
49
inline
void
50
log_error(
const
std::string& msg)
51
{
52
std::cerr <<
'['
<< get_time() <<
"] [ERROR] "
<< msg << std::endl;
53
}
54
55
inline
void
56
check_error(
bool
condition,
const
std::string& msg)
57
{
58
if
(condition) {
59
log_error(msg);
60
std::exit(EXIT_FAILURE);
61
}
62
}
63
64
inline
void
65
check_warning(
bool
condition,
const
std::string& msg)
66
{
67
if
(condition) {
68
log_warning(msg);
69
}
70
}
71
72
inline
void
73
check_stream(
const
std::ios& stream,
const
std::string& name)
74
{
75
check_error(!stream.good(),
76
"'"
+ name +
"' stream error: "
+ std::strerror(errno));
77
}
78
79
}
// namespace btllib
80
81
#endif
Generated by
1.8.18