uIP 1.0
|
00001 /** 00002 * \defgroup timer Библиотека таймера 00003 * 00004 * Библиотека таймера предоставляет функции для установки, сброса 00005 * и перезапуска таймеров, и для проверки - истек ли установленный 00006 * интервал таймера. Приложение должно само проверять, истек ли таймер, 00007 * это не делается автоматически. 00008 * 00009 * Таймер декларирован как структура \c struct \c timer и весь доступ 00010 * к таймеру делается по указателю к декларированному таймеру. 00011 * 00012 * \note Библиотека таймера использует \ref clock "Clock library" 00013 * (библиотеку тактов) для измерения времени. Интервалы должны быть 00014 * указаны в формате, используемом в библиотеке тактов. 00015 * 00016 * @{ 00017 */ 00018 00019 00020 /** 00021 * \file 00022 * Заголовочный файл библиотеки таймера. 00023 * \author 00024 * Adam Dunkels <adam@sics.se> 00025 */ 00026 00027 /* 00028 * Copyright (c) 2004, Swedish Institute of Computer Science. 00029 * Все права зарезервированы. * 00030 * Повторное распространение, использование в исходном и двоичном виде, 00031 * с модификацией или без - разрешается, если выполняются следующие 00032 * условия: 00033 * 1. Распространение исходного кода должно сохранить вышеуказанную пометку 00034 * копирайта, этот список условий и следующую правовую оговорку. 00035 * 2. Распространение исходного кода должно сохранить вышеуказанную пометку 00036 * копирайта, этот список условий и следующую правовую оговорку в 00037 * документации и/или других материалах, которые будут предоставлены 00038 * вместе с распространяемыми материалами. 00039 * 3. Имя автора не может использоваться, чтобы подтвердить или продвинуть 00040 * продукты, написанные с использованием этого программного обеспечения 00041 * без специального на то разрешения. 00042 * 00043 * ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ АВТОРОМ ``КАК ЕСТЬ'', БЕЗ 00044 * КАКОЙ-ЛИБО ЛЮБОЙ РАСШИРЕННОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ГАРАНТИИ, ВКЛЮЧАЯ, 00045 * НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ГАРАНТИИ ВЫСОКОГО СПРОСА И ПРИГОДНОСТИ 00046 * ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. АВТОР НИ ПРИ КАКИХ УСЛОВИЯХ НЕ ОТВЕТСТВЕНЕН 00047 * ЗА ЛЮБЫЕ УБЫТКИ - ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ 00048 * ИЛИ ПОСЛЕДОВАТЕЛЬНЫЕ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ТРЕБОВАНИЯ 00049 * ЗАМЕНЫ ТОВАРА ИЛИ СЕРВИСА; ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ВЫГОДЫ; 00050 * ИЛИ ПРЕКРАЩЕНИЕ БИЗНЕСА), ОДНАКО ВЫЗВАННЫЕ ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, 00051 * ЛИБО В КОНТРАКТЕ, ПРЯМОЙ ОТВЕТСТВЕННОСТИ, ЛИБО В НАРУШЕНИИ ЗАКОННЫХ ПРАВ 00052 * (ВКЛЮЧАЯ ТАК ИЛИ ИНАЧЕ НЕБРЕЖНОСТЬ), ВОЗНИКАЮЩИЕ ВСЕГДА ИЗ ИСПОЛЬЗОВАНИЯ 00053 * ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛО ПРЕДУПРЕЖДЕНИЕ О ВОЗМОЖНОСТИ 00054 * ТАКОГО ПОВРЕЖДЕНИЯ. 00055 * 00056 * Этот файл является частью стека uIP TCP/IP. 00057 * 00058 * Author: Adam Dunkels <adam@sics.se> 00059 * 00060 * $Id: timer.h,v 1.3 2006/06/11 21:46:39 adam Exp $ 00061 */ 00062 #ifndef __TIMER_H__ 00063 #define __TIMER_H__ 00064 00065 #include "clock.h" 00066 00067 /** 00068 * Таймер. 00069 * 00070 * Эта структура используется для декларирования таймера. Таймер должен быть 00071 * установлен функцией timer_set() перед тем, как его можно использовать. 00072 * 00073 * \hideinitializer 00074 */ 00075 struct timer { 00076 clock_time_t start; 00077 clock_time_t interval; 00078 }; 00079 00080 void timer_set(struct timer *t, clock_time_t interval); 00081 void timer_reset(struct timer *t); 00082 void timer_restart(struct timer *t); 00083 int timer_expired(struct timer *t); 00084 00085 #endif /* __TIMER_H__ */ 00086 00087 /** @} */