/* * 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 #include #include #include #include #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 #endif // BOOST_LOG_ATTRIBUTES_CURRENT_PROCESS_ID_HPP_INCLUDED_