# Timer library

## Detailed Description

The timer library provides functions for setting, resetting and restarting timers, and for checking if a timer has expired.

An application must "manually" check if its timers have expired; this is not done automatically.

A timer is declared as a `struct` `timer` and all access to the timer is made by a pointer to the declared timer.

Note:
  The timer library uses the Clock library to measure time. Intervals should be specified in the format used by the clock library.

## Files

file | timer.h
| Timer library header file.

file | timer.c
| Timer library implementation.

## Data Structures

struct | timer
| A timer. More...

## Functions

void | timer_set (struct timer *t, clock_time_t interval)
| Set a timer.
void | timer_reset (struct timer *t)
| Reset the timer with the same interval.
void | timer_restart (struct timer *t)
| Restart the timer from the current point in time.
int | timer_expired (struct timer *t)
| Check if a timer has expired.

## Function Documentation

int timer_expired | ( | struct timer * | t | ) |

Check if a timer has expired.

This function tests if a timer has expired and returns true or false depending on its status.

Parameters:

  | t | A pointer to the timer

Returns:
  Non-zero if the timer has expired, zero otherwise.

Examples:
  dhcpc.c, example-mainloop-with-arp.c, and example-mainloop-without-arp.c.

Definition at line 121 of file timer.c.

References clock_time(), interval, and start.

void timer_reset | ( | struct timer * | t | ) |

Reset the timer with the same interval.

This function resets the timer with the same interval that was given to the timer_set() function. The start point of the interval is the exact time that the timer last expired. Therefore, this function will cause the timer to be stable over time, unlike the timer_rester() function.

Parameters:

  | t | A pointer to the timer.

See also:
  timer_restart()

Examples:
  example-mainloop-with-arp.c, and example-mainloop-without-arp.c.

Definition at line 84 of file timer.c.

References interval, and start.

void timer_restart | ( | struct timer * | t | ) |

Restart the timer from the current point in time.

This function restarts a timer with the same interval that was given to the timer_set() function. The timer will start at the current time.

Note:
  A periodic timer will drift if this function is used to reset it. For preioric timers, use the timer_reset() function instead.

Parameters:

  | t | A pointer to the timer.

See also:
  timer_reset()

Definition at line 104 of file timer.c.

References clock_time(), and start.

void timer_set | ( | struct timer * | t,
|  | clock_time_t | interval
| ) |

Set a timer.

This function is used to set a timer for a time sometime in the future. The function timer_expired() will evaluate to true after the timer has expired.

Parameters:

  | t | A pointer to the timer
  | interval | The interval before the timer expires.

Examples:
  dhcpc.c, example-mainloop-with-arp.c, and example-mainloop-without-arp.c.

Definition at line 64 of file timer.c.

References clock_time(), interval, and start.