]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/log/src/default_attribute_names.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / log / src / default_attribute_names.cpp
1 /*
2 * Copyright Andrey Semashev 2007 - 2015.
3 * Distributed under the Boost Software License, Version 1.0.
4 * (See accompanying file LICENSE_1_0.txt or copy at
5 * http://www.boost.org/LICENSE_1_0.txt)
6 */
7 /*!
8 * \file default_attribute_names.cpp
9 * \author Andrey Semashev
10 * \date 13.07.2012
11 *
12 * \brief This header is the Boost.Log library implementation, see the library documentation
13 * at http://www.boost.org/doc/libs/release/libs/log/doc/html/index.html.
14 */
15
16 #include <boost/log/detail/config.hpp>
17 #include <boost/smart_ptr/shared_ptr.hpp>
18 #include <boost/log/detail/default_attribute_names.hpp>
19 #include <boost/log/detail/singleton.hpp>
20 #include <boost/log/detail/header.hpp>
21
22 namespace boost {
23
24 BOOST_LOG_OPEN_NAMESPACE
25
26 namespace aux {
27
28 namespace default_attribute_names {
29
30 BOOST_LOG_ANONYMOUS_NAMESPACE {
31
32 class names :
33 public lazy_singleton< names, shared_ptr< names > >
34 {
35 private:
36 typedef lazy_singleton< names, shared_ptr< names > > base_type;
37
38 #if !defined(BOOST_LOG_BROKEN_FRIEND_TEMPLATE_SPECIALIZATIONS)
39 friend class lazy_singleton< names, shared_ptr< names > >;
40 #else
41 friend class base_type;
42 #endif
43
44 public:
45 const attribute_name severity;
46 const attribute_name channel;
47 const attribute_name message;
48 const attribute_name line_id;
49 const attribute_name timestamp;
50 const attribute_name process_id;
51 const attribute_name thread_id;
52
53 private:
54 names() :
55 severity("Severity"),
56 channel("Channel"),
57 message("Message"),
58 line_id("LineID"),
59 timestamp("TimeStamp"),
60 process_id("ProcessID"),
61 thread_id("ThreadID")
62 {
63 }
64
65 static void init_instance()
66 {
67 get_instance().reset(new names());
68 }
69
70 public:
71 static names& get()
72 {
73 return *base_type::get();
74 }
75 };
76
77 } // namespace
78
79 BOOST_LOG_API attribute_name severity()
80 {
81 return names::get().severity;
82 }
83
84 BOOST_LOG_API attribute_name channel()
85 {
86 return names::get().channel;
87 }
88
89 BOOST_LOG_API attribute_name message()
90 {
91 return names::get().message;
92 }
93
94 BOOST_LOG_API attribute_name line_id()
95 {
96 return names::get().line_id;
97 }
98
99 BOOST_LOG_API attribute_name timestamp()
100 {
101 return names::get().timestamp;
102 }
103
104 BOOST_LOG_API attribute_name process_id()
105 {
106 return names::get().process_id;
107 }
108
109 BOOST_LOG_API attribute_name thread_id()
110 {
111 return names::get().thread_id;
112 }
113
114 } // namespace default_attribute_names
115
116 } // namespace aux
117
118 BOOST_LOG_CLOSE_NAMESPACE // namespace log
119
120 } // namespace boost
121
122 #include <boost/log/detail/footer.hpp>