diff options
Diffstat (limited to 'src/xtime.h')
-rw-r--r-- | src/xtime.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/xtime.h b/src/xtime.h new file mode 100644 index 0000000..fb60ae4 --- /dev/null +++ b/src/xtime.h @@ -0,0 +1,59 @@ +// Copyright © Tavian Barnes <tavianator@tavianator.com> +// SPDX-License-Identifier: 0BSD + +/** + * Date/time handling. + */ + +#ifndef BFS_XTIME_H +#define BFS_XTIME_H + +#include <time.h> + +/** + * mktime() wrapper that reports errors more reliably. + * + * @param[in,out] tm + * The struct tm to convert. + * @param[out] timep + * A pointer to the result. + * @return + * 0 on success, -1 on failure. + */ +int xmktime(struct tm *tm, time_t *timep); + +/** + * A portable timegm(), the inverse of gmtime(). + * + * @param[in,out] tm + * The struct tm to convert. + * @param[out] timep + * A pointer to the result. + * @return + * 0 on success, -1 on failure. + */ +int xtimegm(struct tm *tm, time_t *timep); + +/** + * Parse an ISO 8601-style timestamp. + * + * @param[in] str + * The string to parse. + * @param[out] result + * A pointer to the result. + * @return + * 0 on success, -1 on failure. + */ +int xgetdate(const char *str, struct timespec *result); + +/** + * Get the current time. + * + * @param[out] result + * A pointer to the result. + * @return + * 0 on success, -1 on failure. + */ +int xgettime(struct timespec *result); + +#endif // BFS_XTIME_H |