]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/winapi/time.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / winapi / time.hpp
CommitLineData
b32b8144
FG
1/*
2 * Copyright 2010 Vicente J. Botet Escriba
3 * Copyright (c) Microsoft Corporation 2014
4 * Copyright 2015, 2017 Andrey Semashev
5 *
6 * Distributed under the Boost Software License, Version 1.0.
7 * See http://www.boost.org/LICENSE_1_0.txt
8 */
7c673cae 9
b32b8144
FG
10#ifndef BOOST_WINAPI_TIME_HPP_INCLUDED_
11#define BOOST_WINAPI_TIME_HPP_INCLUDED_
7c673cae 12
b32b8144 13#include <boost/winapi/basic_types.hpp>
20effc67 14#include <boost/winapi/detail/header.hpp>
7c673cae
FG
15
16#ifdef BOOST_HAS_PRAGMA_ONCE
17#pragma once
18#endif
19
20#if !defined( BOOST_USE_WINDOWS_H )
21extern "C" {
22struct _FILETIME;
23struct _SYSTEMTIME;
24
20effc67 25BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
7c673cae
FG
26GetSystemTime(::_SYSTEMTIME* lpSystemTime);
27
28#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime
20effc67 29BOOST_WINAPI_IMPORT boost::winapi::VOID_ BOOST_WINAPI_WINAPI_CC
7c673cae
FG
30GetSystemTimeAsFileTime(::_FILETIME* lpSystemTimeAsFileTime);
31#endif
32
20effc67 33BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
7c673cae
FG
34SystemTimeToFileTime(
35 const ::_SYSTEMTIME* lpSystemTime,
36 ::_FILETIME* lpFileTime);
37
20effc67 38BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
7c673cae
FG
39FileTimeToSystemTime(
40 const ::_FILETIME* lpFileTime,
41 ::_SYSTEMTIME* lpSystemTime);
42
b32b8144
FG
43#if BOOST_WINAPI_PARTITION_APP_SYSTEM
44
20effc67 45BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
7c673cae
FG
46FileTimeToLocalFileTime(
47 const ::_FILETIME* lpFileTime,
48 ::_FILETIME* lpLocalFileTime);
49
20effc67 50BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
7c673cae
FG
51LocalFileTimeToFileTime(
52 const ::_FILETIME* lpLocalFileTime,
53 ::_FILETIME* lpFileTime);
54
b32b8144
FG
55#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
56
57#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
20effc67 58BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
b32b8144
FG
59GetTickCount(BOOST_WINAPI_DETAIL_VOID);
60#endif // BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
7c673cae
FG
61
62#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
20effc67 63BOOST_WINAPI_IMPORT boost::winapi::ULONGLONG_ BOOST_WINAPI_WINAPI_CC
b32b8144 64GetTickCount64(BOOST_WINAPI_DETAIL_VOID);
7c673cae
FG
65#endif
66
b32b8144
FG
67} // extern "C"
68#endif // !defined( BOOST_USE_WINDOWS_H )
69
7c673cae 70namespace boost {
7c673cae
FG
71namespace winapi {
72
b32b8144 73typedef struct BOOST_MAY_ALIAS _FILETIME {
7c673cae
FG
74 DWORD_ dwLowDateTime;
75 DWORD_ dwHighDateTime;
76} FILETIME_, *PFILETIME_, *LPFILETIME_;
77
b32b8144 78typedef struct BOOST_MAY_ALIAS _SYSTEMTIME {
7c673cae
FG
79 WORD_ wYear;
80 WORD_ wMonth;
81 WORD_ wDayOfWeek;
82 WORD_ wDay;
83 WORD_ wHour;
84 WORD_ wMinute;
85 WORD_ wSecond;
86 WORD_ wMilliseconds;
87} SYSTEMTIME_, *PSYSTEMTIME_, *LPSYSTEMTIME_;
88
b32b8144 89#if BOOST_WINAPI_PARTITION_DESKTOP_SYSTEM
7c673cae
FG
90using ::GetTickCount;
91#endif
92#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6
93using ::GetTickCount64;
94#endif
95
96BOOST_FORCEINLINE VOID_ GetSystemTime(LPSYSTEMTIME_ lpSystemTime)
97{
98 ::GetSystemTime(reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime));
99}
100
7c673cae
FG
101BOOST_FORCEINLINE BOOL_ SystemTimeToFileTime(const SYSTEMTIME_* lpSystemTime, FILETIME_* lpFileTime)
102{
103 return ::SystemTimeToFileTime(reinterpret_cast< const ::_SYSTEMTIME* >(lpSystemTime), reinterpret_cast< ::_FILETIME* >(lpFileTime));
104}
105
106BOOST_FORCEINLINE BOOL_ FileTimeToSystemTime(const FILETIME_* lpFileTime, SYSTEMTIME_* lpSystemTime)
107{
108 return ::FileTimeToSystemTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime));
109}
110
b32b8144 111#if BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae
FG
112BOOST_FORCEINLINE BOOL_ FileTimeToLocalFileTime(const FILETIME_* lpFileTime, FILETIME_* lpLocalFileTime)
113{
114 return ::FileTimeToLocalFileTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_FILETIME* >(lpLocalFileTime));
115}
116
117BOOST_FORCEINLINE BOOL_ LocalFileTimeToFileTime(const FILETIME_* lpLocalFileTime, FILETIME_* lpFileTime)
118{
119 return ::LocalFileTimeToFileTime(reinterpret_cast< const ::_FILETIME* >(lpLocalFileTime), reinterpret_cast< ::_FILETIME* >(lpFileTime));
120}
b32b8144 121#endif // BOOST_WINAPI_PARTITION_APP_SYSTEM
7c673cae 122
b32b8144
FG
123#if defined( BOOST_HAS_GETSYSTEMTIMEASFILETIME )
124BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(LPFILETIME_ lpSystemTimeAsFileTime)
125{
126 ::GetSystemTimeAsFileTime(reinterpret_cast< ::_FILETIME* >(lpSystemTimeAsFileTime));
127}
128#else
129// Windows CE does not define GetSystemTimeAsFileTime
130BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(FILETIME_* lpFileTime)
131{
132 boost::winapi::SYSTEMTIME_ st;
133 boost::winapi::GetSystemTime(&st);
134 boost::winapi::SystemTimeToFileTime(&st, lpFileTime);
7c673cae 135}
b32b8144
FG
136#endif
137
7c673cae
FG
138}
139}
140
20effc67
TL
141#include <boost/winapi/detail/footer.hpp>
142
b32b8144 143#endif // BOOST_WINAPI_TIME_HPP_INCLUDED_