gr-baz Package
gr_timer.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2005 Free Software Foundation, Inc.
4
*
5
* This file is part of GNU Radio
6
*
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)
10
* any later version.
11
*
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.
16
*
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.
21
*/
22
#ifndef INCLUDED_GR_TIMER_H
23
#define INCLUDED_GR_TIMER_H
24
25
#include <
gr_core_api.h
>
26
#include <
gr_types.h
>
27
28
class
gr_timer
;
29
30
typedef
boost::shared_ptr<gr_timer>
gr_timer_sptr
;
31
32
GR_CORE_API
typedef
void
(*
gr_timer_hook
)(
gr_timer
*,
void
*);
33
34
/*!
35
* \brief create a timeout.
36
*
37
* \ingroup misc
38
* gr_timer_hook is called when timer fires.
39
*/
40
GR_CORE_API
gr_timer_sptr
gr_make_timer
(
gr_timer_hook
,
void
*);
41
42
/*!
43
* \brief implement timeouts
44
*/
45
class
GR_CORE_API
gr_timer
{
46
double
d_expiry;
47
double
d_period;
48
gr_timer_hook
d_hook;
49
void
*d_hook_arg;
50
51
friend
GR_CORE_API
gr_timer_sptr
gr_make_timer
(
gr_timer_hook
,
void
*);
52
53
gr_timer
(...);
54
55
public
:
56
~
gr_timer
();
57
58
//! return absolute current time (seconds since the epoc).
59
static
double
now ();
60
61
/*!
62
* \brief schedule timer to fire at abs_when
63
* \param abs_when absolute time in seconds since the epoc.
64
*/
65
void
schedule_at (
double
abs_when);
66
67
/*!
68
* \brief schedule timer to fire rel_when seconds from now.
69
* \param rel_when relative time in seconds from now.
70
*/
71
void
schedule_after (
double
rel_when);
// relative time in seconds
72
73
/*!
74
* \brief schedule a periodic timeout.
75
* \param abs_when absolute time to fire first time
76
* \param period time between firings
77
*/
78
void
schedule_periodic (
double
abs_when,
double
period);
79
80
//! cancel timer
81
void
unschedule ();
82
};
83
84
#endif
/* INCLUDED_GR_TIMER_H */
gnuradio
gnuradio-core
src
lib
runtime
gr_timer.h
Generated by
1.8.1.1