MySQL 9.1.0
Source Code Documentation
my_time_t.h
Go to the documentation of this file.
1/* Copyright (c) 2021, 2024, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is designed to work with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef MY_TIME_T_INCLUDED
25#define MY_TIME_T_INCLUDED
26/**
27 Portable time_t replacement. Should be signed and hold seconds for
28 1970-01-01 00:00:00 -- 3001-01-18 23:59:59 on an OS with 64 bits time_t.
29 On OSes with 32 bits time_t, the values will be constrained further.
30*/
31#ifdef __cplusplus
32using my_time_t = int64_t;
33#else
34typedef my_time_t int64_t;
35#endif
36
37/**
38 Replacement of system's struct timeval to ensure we can carry 64 bit values
39 even on a platform which has 64 bits time, but only 32 bits tv_sec member,
40 notably Windows. We do use the system timeval when interfacing the C API
41 calls, though, so in a few cases, e.g. by THD::{start_time, user_time},
42 we need to convert between representations but mostly the struct is only used
43 internally by MySQL so we can use our own.
44*/
45struct my_timeval {
46 int64_t m_tv_sec;
47 int64_t m_tv_usec;
48};
49
50#endif /* MY_TIME_T_INCLUDED */
int64_t my_time_t
Portable time_t replacement.
Definition: my_time_t.h:32
Replacement of system's struct timeval to ensure we can carry 64 bit values even on a platform which ...
Definition: my_time_t.h:45
int64_t m_tv_sec
Definition: my_time_t.h:46
int64_t m_tv_usec
Definition: my_time_t.h:47