1//
2// detail/event.hpp
3// ~~~~~~~~~~~~~~~~
4//
5// Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6//
7// Distributed under the Boost Software License, Version 1.0. (See accompanying
8// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9//
10
11#ifndef BOOST_ASIO_DETAIL_EVENT_HPP
12#define BOOST_ASIO_DETAIL_EVENT_HPP
13
14#if defined(_MSC_VER) && (_MSC_VER >= 1200)
15# pragma once
16#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
18#include <boost/asio/detail/config.hpp>
19
20#if !defined(BOOST_ASIO_HAS_THREADS)
21# include <boost/asio/detail/null_event.hpp>
22#elif defined(BOOST_ASIO_WINDOWS)
23# include <boost/asio/detail/win_event.hpp>
24#elif defined(BOOST_ASIO_HAS_PTHREADS)
25# include <boost/asio/detail/posix_event.hpp>
26#elif defined(BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR)
27# include <boost/asio/detail/std_event.hpp>
28#else
29# error Only Windows, POSIX and std::condition_variable are supported!
30#endif
31
32namespace boost {
33namespace asio {
34namespace detail {
35
36#if !defined(BOOST_ASIO_HAS_THREADS)
37typedef null_event event;
38#elif defined(BOOST_ASIO_WINDOWS)
39typedef win_event event;
40#elif defined(BOOST_ASIO_HAS_PTHREADS)
41typedef posix_event event;
42#elif defined(BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR)
43typedef std_event event;
44#endif
45
46} // namespace detail
47} // namespace asio
48} // namespace boost
49
50#endif // BOOST_ASIO_DETAIL_EVENT_HPP
51