]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/asio/wait_traits.hpp
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / boost / boost / asio / wait_traits.hpp
CommitLineData
7c673cae
FG
1//
2// wait_traits.hpp
3// ~~~~~~~~~~~~~~~
4//
11fdf7f2 5// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com)
7c673cae
FG
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_WAIT_TRAITS_HPP
12#define BOOST_ASIO_WAIT_TRAITS_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/push_options.hpp>
19
20namespace boost {
21namespace asio {
22
23/// Wait traits suitable for use with the basic_waitable_timer class template.
24template <typename Clock>
25struct wait_traits
26{
27 /// Convert a clock duration into a duration used for waiting.
b32b8144 28 /**
7c673cae
FG
29 * @returns @c d.
30 */
31 static typename Clock::duration to_wait_duration(
32 const typename Clock::duration& d)
33 {
34 return d;
35 }
b32b8144
FG
36
37 /// Convert a clock duration into a duration used for waiting.
38 /**
39 * @returns @c d.
40 */
41 static typename Clock::duration to_wait_duration(
42 const typename Clock::time_point& t)
43 {
44 typename Clock::time_point now = Clock::now();
45 if (now + (Clock::duration::max)() < t)
46 return (Clock::duration::max)();
47 if (now + (Clock::duration::min)() > t)
48 return (Clock::duration::min)();
49 return t - now;
50 }
7c673cae
FG
51};
52
53} // namespace asio
54} // namespace boost
55
56#include <boost/asio/detail/pop_options.hpp>
57
58#endif // BOOST_ASIO_WAIT_TRAITS_HPP