3 * Copyright 2005 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
22 #ifndef INCLUDED_GR_TIMER_H
23 #define INCLUDED_GR_TIMER_H
29 typedef boost::shared_ptr<gr_timer> gr_timer_sptr;
31 typedef void (*gr_timer_hook)(gr_timer *, void *);
34 * \brief create a timeout.
37 * gr_timer_hook is called when timer fires.
39 gr_timer_sptr gr_make_timer (gr_timer_hook, void *);
42 * \brief implement timeouts
50 friend gr_timer_sptr gr_make_timer (gr_timer_hook, void *);
57 //! return absolute current time (seconds since the epoc).
61 * \brief schedule timer to fire at abs_when
62 * \param abs_when absolute time in seconds since the epoc.
64 void schedule_at (double abs_when);
67 * \brief schedule timer to fire rel_when seconds from now.
68 * \param rel_when relative time in seconds from now.
70 void schedule_after (double rel_when); // relative time in seconds
73 * \brief schedule a periodic timeout.
74 * \param abs_when absolute time to fire first time
75 * \param period time between firings
77 void schedule_periodic (double abs_when, double period);
83 #endif /* INCLUDED_GR_TIMER_H */