diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:11:01 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:11:01 +0900 |
commit | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (patch) | |
tree | 5c1733853892b8397d67706fa453a9bd978d2102 /boost/asio/detail/global.hpp | |
parent | 88e602c57797660ebe0f9e15dbd64c1ff16dead3 (diff) | |
download | boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.tar.gz boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.tar.bz2 boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.zip |
Imported Upstream version 1.66.0upstream/1.66.0
Diffstat (limited to 'boost/asio/detail/global.hpp')
-rw-r--r-- | boost/asio/detail/global.hpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/boost/asio/detail/global.hpp b/boost/asio/detail/global.hpp new file mode 100644 index 0000000000..581478909f --- /dev/null +++ b/boost/asio/detail/global.hpp @@ -0,0 +1,54 @@ +// +// detail/global.hpp +// ~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// 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) +// + +#ifndef BOOST_ASIO_DETAIL_GLOBAL_HPP +#define BOOST_ASIO_DETAIL_GLOBAL_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include <boost/asio/detail/config.hpp> + +#if !defined(BOOST_ASIO_HAS_THREADS) +# include <boost/asio/detail/null_global.hpp> +#elif defined(BOOST_ASIO_WINDOWS) +# include <boost/asio/detail/win_global.hpp> +#elif defined(BOOST_ASIO_HAS_PTHREADS) +# include <boost/asio/detail/posix_global.hpp> +#elif defined(BOOST_ASIO_HAS_STD_CALL_ONCE) +# include <boost/asio/detail/std_global.hpp> +#else +# error Only Windows, POSIX and std::call_once are supported! +#endif + +namespace boost { +namespace asio { +namespace detail { + +template <typename T> +inline T& global() +{ +#if !defined(BOOST_ASIO_HAS_THREADS) + return null_global<T>(); +#elif defined(BOOST_ASIO_WINDOWS) + return win_global<T>(); +#elif defined(BOOST_ASIO_HAS_PTHREADS) + return posix_global<T>(); +#elif defined(BOOST_ASIO_HAS_STD_CALL_ONCE) + return std_global<T>(); +#endif +} + +} // namespace detail +} // namespace asio +} // namespace boost + +#endif // BOOST_ASIO_DETAIL_GLOBAL_HPP |