Loading...
Searching...
No Matches
Time Routines
Apache Portability Runtime library
Collaboration diagram for Time Routines:

## Data Structures

struct | apr_time_exp_t

## Macros

#define | APR_TIME_C(val) APR_INT64_C(val)
#define | APR_TIME_T_FMT APR_INT64_T_FMT
#define | APR_USEC_PER_SEC APR_TIME_C(1000000)
#define | apr_time_sec(time) ((time) / APR_USEC_PER_SEC)
#define | apr_time_usec(time) ((time) % APR_USEC_PER_SEC)
#define | apr_time_msec(time) (((time) / 1000) % 1000)
#define | apr_time_as_msec(time) ((time) / 1000)
#define | apr_time_from_msec(msec) ((apr_time_t)(msec) * 1000)
#define | apr_time_from_sec(sec) ((apr_time_t)(sec) * APR_USEC_PER_SEC)
#define | apr_time_make(sec, usec)
#define | APR_RFC822_DATE_LEN (30)
#define | APR_CTIME_LEN (25)

## Typedefs

typedef apr_int64_t | apr_time_t
typedef apr_int64_t | apr_interval_time_t
typedef apr_int32_t | apr_short_interval_time_t
typedef struct apr_time_exp_t | apr_time_exp_t

## Functions

apr_time_t | apr_time_now (void)
apr_status_t | apr_time_ansi_put (apr_time_t *result, time_t input)
apr_status_t | apr_time_exp_tz (apr_time_exp_t *result, apr_time_t input, apr_int32_t offs)
apr_status_t | apr_time_exp_gmt (apr_time_exp_t *result, apr_time_t input)
apr_status_t | apr_time_exp_lt (apr_time_exp_t *result, apr_time_t input)
apr_status_t | apr_time_exp_get (apr_time_t *result, apr_time_exp_t *input)
apr_status_t | apr_time_exp_gmt_get (apr_time_t *result, apr_time_exp_t *input)
void | apr_sleep (apr_interval_time_t t)
apr_status_t | apr_rfc822_date (char *date_str, apr_time_t t)
apr_status_t | apr_ctime (char *date_str, apr_time_t t)
apr_status_t | apr_strftime (char *s, apr_size_t *retsize, apr_size_t max, const char *format, apr_time_exp_t *tm)
void | apr_time_clock_hires (apr_pool_t *p)

## Variables

const char | apr_month_snames [12][4]
const char | apr_day_snames [7][4]

## Detailed Description

## Macro Definition Documentation

## APR_CTIME_LEN

#define APR_CTIME_LEN (25)

length of a CTIME date

## APR_RFC822_DATE_LEN

#define APR_RFC822_DATE_LEN (30)

length of a RFC822 Date

## apr_time_as_msec

#define apr_time_as_msec | ( |  | time | ) | ((time) / 1000)

Returns
  apr_time_t as a msec

## APR_TIME_C

#define APR_TIME_C | ( |  | val | ) | APR_INT64_C(val)

mechanism to properly type apr_time_t literals

## apr_time_from_msec

#define apr_time_from_msec | ( |  | msec | ) | ((apr_time_t)(msec) * 1000)

Returns
  milliseconds as an apr_time_t

## apr_time_from_sec

#define apr_time_from_sec | ( |  | sec | ) | ((apr_time_t)(sec) * APR_USEC_PER_SEC)

Returns
  seconds as an apr_time_t

## apr_time_make

#define apr_time_make | ( |  | sec,
|  |  | usec
| ) |  |

Value:
((apr_time_t)(sec) * APR_USEC_PER_SEC \
+ (apr_time_t)(usec))
APR_USEC_PER_SEC
#define APR_USEC_PER_SEC
Definition apr_time.h:60
apr_time_t
apr_int64_t apr_time_t
Definition apr_time.h:45

Returns
  a second and usec combination as an apr_time_t

## apr_time_msec

#define apr_time_msec | ( |  | time | ) | (((time) / 1000) % 1000)

Returns
  apr_time_t as a msec

## apr_time_sec

#define apr_time_sec | ( |  | time | ) | ((time) / APR_USEC_PER_SEC)

Returns
  apr_time_t as a second

## APR_TIME_T_FMT

#define APR_TIME_T_FMT APR_INT64_T_FMT

mechanism to properly print apr_time_t values

## apr_time_usec

#define apr_time_usec | ( |  | time | ) | ((time) % APR_USEC_PER_SEC)

Returns
  apr_time_t as a usec

## APR_USEC_PER_SEC

#define APR_USEC_PER_SEC APR_TIME_C(1000000)

number of microseconds per second

## Typedef Documentation

## apr_interval_time_t

typedef apr_int64_t apr_interval_time_t

intervals for I/O timeouts, in microseconds

## apr_short_interval_time_t

typedef apr_int32_t apr_short_interval_time_t

short interval for I/O timeouts, in microseconds

## apr_time_exp_t

typedef struct apr_time_exp_t apr_time_exp_t

See also
  apr_time_exp_t

## apr_time_t

typedef apr_int64_t apr_time_t

number of microseconds since 00:00:00 January 1, 1970 UTC

## Function Documentation

## apr_ctime()

apr_status_t apr_ctime | ( | char * | date_str,
|  | apr_time_t | t
| ) |  |

apr_ctime formats dates in the ctime() format in an efficient manner. It is a fixed length format and requires APR_CTIME_LEN bytes of storage including the trailing NUL terminator. Unlike ANSI/ISO C ctime(), apr_ctime() does not include a \n at the end of the string.

Parameters

  date_str | String to write to.
  t | the time to convert

## apr_rfc822_date()

apr_status_t apr_rfc822_date | ( | char * | date_str,
|  | apr_time_t | t
| ) |  |

apr_rfc822_date formats dates in the RFC822 format in an efficient manner. It is a fixed length format which requires APR_RFC822_DATA_LEN bytes of storage, including the trailing NUL terminator.

Parameters

  date_str | String to write to.
  t | the time to convert

## apr_sleep()

void apr_sleep | ( | apr_interval_time_t | t | ) |

Sleep for the specified number of micro-seconds.

Parameters

  t | desired amount of time to sleep.

Warning
  May sleep for longer than the specified time.

## apr_strftime()

apr_status_t apr_strftime | ( | char * | s,
|  | apr_size_t * | retsize,
|  | apr_size_t | max,
|  | const char * | format,
|  | apr_time_exp_t * | tm
| ) |  |

Formats the exploded time according to the format specified

Parameters

  s | string to write to
  retsize | The length of the returned string
  max | The maximum length of the string
  format | The format for the time string
  tm | The time to convert

## apr_time_ansi_put()

apr_status_t apr_time_ansi_put | ( | apr_time_t * | result,
|  | time_t | input
| ) |  |

Convert an ansi time_t to an apr_time_t

Parameters

  result | the resulting apr_time_t
  input | the time_t to convert

## apr_time_clock_hires()

void apr_time_clock_hires | ( | apr_pool_t * | p | ) |

Improve the clock resolution for the lifetime of the given pool. Generally this is only desirable on benchmarking and other very time-sensitive applications, and has no impact on most platforms.

Parameters

  p | The pool to associate the finer clock resolution

## apr_time_exp_get()

apr_status_t apr_time_exp_get | ( | apr_time_t * | result,
|  | apr_time_exp_t * | input
| ) |  |

Convert time value from human readable format to a numeric apr_time_t (elapsed microseconds since the epoch).

Parameters

  result | the resulting imploded time
  input | the input exploded time

## apr_time_exp_gmt()

apr_status_t apr_time_exp_gmt | ( | apr_time_exp_t * | result,
|  | apr_time_t | input
| ) |  |

Convert a time to its human readable components (GMT).

Parameters

  result | the exploded time
  input | the time to explode

## apr_time_exp_gmt_get()

apr_status_t apr_time_exp_gmt_get | ( | apr_time_t * | result,
|  | apr_time_exp_t * | input
| ) |  |

Convert time value from human readable format to a numeric apr_time_t that always represents GMT.

Parameters

  result | the resulting imploded time
  input | the input exploded time

## apr_time_exp_lt()

apr_status_t apr_time_exp_lt | ( | apr_time_exp_t * | result,
|  | apr_time_t | input
| ) |  |

Convert a time to its human readable components in the local timezone.

Parameters

  result | the exploded time
  input | the time to explode

## apr_time_exp_tz()

apr_status_t apr_time_exp_tz | ( | apr_time_exp_t * | result,
|  | apr_time_t | input,
|  | apr_int32_t | offs
| ) |  |

Convert a time to its human readable components using an offset from GMT.

Parameters

  result | the exploded time
  input | the time to explode
  offs | the number of seconds offset to apply

## apr_time_now()

apr_time_t apr_time_now | ( | void |  | ) |

Returns
  the current time

## Variable Documentation

## apr_day_snames

const char apr_day_snames[7][4]

extern

day names

## apr_month_snames

const char apr_month_snames[12][4]

extern

month names