summaryrefslogtreecommitdiff
path: root/boost/log/attributes/current_process_id.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/log/attributes/current_process_id.hpp')
-rw-r--r--boost/log/attributes/current_process_id.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/boost/log/attributes/current_process_id.hpp b/boost/log/attributes/current_process_id.hpp
new file mode 100644
index 0000000000..d528b7d8f4
--- /dev/null
+++ b/boost/log/attributes/current_process_id.hpp
@@ -0,0 +1,67 @@
+/*
+ * Copyright Andrey Semashev 2007 - 2014.
+ * Distributed under the Boost Software License, Version 1.0.
+ * (See accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ */
+/*!
+ * \file current_process_id.hpp
+ * \author Andrey Semashev
+ * \date 12.09.2009
+ *
+ * The header contains implementation of a current process id attribute
+ */
+
+#ifndef BOOST_LOG_ATTRIBUTES_CURRENT_PROCESS_ID_HPP_INCLUDED_
+#define BOOST_LOG_ATTRIBUTES_CURRENT_PROCESS_ID_HPP_INCLUDED_
+
+#include <boost/log/detail/config.hpp>
+#include <boost/log/detail/process_id.hpp>
+#include <boost/log/attributes/constant.hpp>
+#include <boost/log/attributes/attribute_cast.hpp>
+#include <boost/log/detail/header.hpp>
+
+#ifdef BOOST_HAS_PRAGMA_ONCE
+#pragma once
+#endif
+
+namespace boost {
+
+BOOST_LOG_OPEN_NAMESPACE
+
+//! Process identifier type used by the library
+typedef boost::log::aux::process::id process_id;
+
+namespace attributes {
+
+/*!
+ * \brief A class of an attribute that holds the current process identifier
+ */
+class current_process_id :
+ public constant< process_id >
+{
+ typedef constant< process_id > base_type;
+
+public:
+ /*!
+ * Constructor. Initializes the attribute with the current process identifier.
+ */
+ current_process_id() : base_type(boost::log::aux::this_process::get_id()) {}
+ /*!
+ * Constructor for casting support
+ */
+ explicit current_process_id(cast_source const& source) :
+ base_type(source)
+ {
+ }
+};
+
+} // namespace attributes
+
+BOOST_LOG_CLOSE_NAMESPACE // namespace log
+
+} // namespace boost
+
+#include <boost/log/detail/footer.hpp>
+
+#endif // BOOST_LOG_ATTRIBUTES_CURRENT_PROCESS_ID_HPP_INCLUDED_