File indexing completed on 2025-01-18 09:28:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_ASIO_DETAIL_GLOBAL_HPP
0012 #define BOOST_ASIO_DETAIL_GLOBAL_HPP
0013
0014 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
0015 # pragma once
0016 #endif
0017
0018 #include <boost/asio/detail/config.hpp>
0019
0020 #if !defined(BOOST_ASIO_HAS_THREADS)
0021 # include <boost/asio/detail/null_global.hpp>
0022 #elif defined(BOOST_ASIO_WINDOWS)
0023 # include <boost/asio/detail/win_global.hpp>
0024 #elif defined(BOOST_ASIO_HAS_PTHREADS)
0025 # include <boost/asio/detail/posix_global.hpp>
0026 #else
0027 # include <boost/asio/detail/std_global.hpp>
0028 #endif
0029
0030 namespace boost {
0031 namespace asio {
0032 namespace detail {
0033
0034 template <typename T>
0035 inline T& global()
0036 {
0037 #if !defined(BOOST_ASIO_HAS_THREADS)
0038 return null_global<T>();
0039 #elif defined(BOOST_ASIO_WINDOWS)
0040 return win_global<T>();
0041 #elif defined(BOOST_ASIO_HAS_PTHREADS)
0042 return posix_global<T>();
0043 #else
0044 return std_global<T>();
0045 #endif
0046 }
0047
0048 }
0049 }
0050 }
0051
0052 #endif