1 |
\hypertarget{group__timer}{ |
2 |
\section{Timer} |
3 |
\label{group__timer}\index{Timer@{Timer}} |
4 |
} |
5 |
|
6 |
|
7 |
\subsection{Detailed Description} |
8 |
Lightweight timer/repeater support within a task. Units are floats in seconds with an internal precision up to usec, but subjects to client's event handlers so don't expect a lot.\par |
9 |
For best results, please use in conjunction with the Time module ({\tt peak\_\-time$\ast$}). |
10 |
|
11 |
\subsection*{Typedefs} |
12 |
\begin{CompactItemize} |
13 |
\item |
14 |
\hypertarget{group__timer_ga0}{ |
15 |
typedef \_\-\_\-peak\_\-timer $\ast$ \hyperlink{group__timer_ga0}{peak\_\-timer}} |
16 |
\label{group__timer_ga0} |
17 |
|
18 |
\begin{CompactList}\small\item\em Opaque timer pointer type. \item\end{CompactList}\item |
19 |
\hypertarget{group__timer_ga1}{ |
20 |
typedef void($\ast$ \hyperlink{group__timer_ga1}{peak\_\-timer\_\-callback} )(\hyperlink{group__timer_ga0}{peak\_\-timer} t, void $\ast$context)} |
21 |
\label{group__timer_ga1} |
22 |
|
23 |
\begin{CompactList}\small\item\em Timer callback. \item\end{CompactList}\end{CompactItemize} |
24 |
\subsection*{Functions} |
25 |
\begin{CompactItemize} |
26 |
\item |
27 |
\hyperlink{group__timer_ga0}{peak\_\-timer} \hyperlink{group__timer_ga2}{peak\_\-timer\_\-create} (double fire, double interval, \hyperlink{group__timer_ga1}{peak\_\-timer\_\-callback} callout, void $\ast$context) |
28 |
\begin{CompactList}\small\item\em Create a timer. \item\end{CompactList}\item |
29 |
void \hyperlink{group__timer_ga3}{peak\_\-timer\_\-configure} (\hyperlink{group__timer_ga0}{peak\_\-timer} t, double fire, double interval) |
30 |
\begin{CompactList}\small\item\em (Re)configure a timer. \item\end{CompactList}\item |
31 |
double \hyperlink{group__timer_ga4}{peak\_\-timer\_\-get\_\-firetime} (\hyperlink{group__timer_ga0}{peak\_\-timer} t) |
32 |
\begin{CompactList}\small\item\em Get timer's fire date time. \item\end{CompactList}\item |
33 |
double \hyperlink{group__timer_ga5}{peak\_\-timer\_\-get\_\-interval} (\hyperlink{group__timer_ga0}{peak\_\-timer} t) |
34 |
\begin{CompactList}\small\item\em Get timer's repeat-interval time. \item\end{CompactList}\item |
35 |
void $\ast$ \hyperlink{group__timer_ga6}{peak\_\-timer\_\-get\_\-context} (\hyperlink{group__timer_ga0}{peak\_\-timer} t) |
36 |
\begin{CompactList}\small\item\em Get timer's extra application-defined context. \item\end{CompactList}\item |
37 |
void \hyperlink{group__timer_ga7}{peak\_\-timer\_\-set\_\-context} (\hyperlink{group__timer_ga0}{peak\_\-timer} t, void $\ast$context) |
38 |
\begin{CompactList}\small\item\em Change the context pointer of a timer. \item\end{CompactList}\end{CompactItemize} |
39 |
|
40 |
|
41 |
\subsection{Function Documentation} |
42 |
\hypertarget{group__timer_ga3}{ |
43 |
\index{timer@{timer}!peak_timer_configure@{peak\_\-timer\_\-configure}} |
44 |
\index{peak_timer_configure@{peak\_\-timer\_\-configure}!timer@{timer}} |
45 |
\subsubsection[peak\_\-timer\_\-configure]{\setlength{\rightskip}{0pt plus 5cm}void peak\_\-timer\_\-configure (\hyperlink{group__timer_ga0}{peak\_\-timer} {\em t}, double {\em fire}, double {\em interval})}} |
46 |
\label{group__timer_ga3} |
47 |
|
48 |
|
49 |
(Re)configure a timer. |
50 |
|
51 |
\begin{Desc} |
52 |
\item[Parameters:] |
53 |
\begin{description} |
54 |
\item[{\em t}]The timer reference to configure. \item[{\em fire}]Relative fire time in second. 0 means immediate fire (as soon as possible, usually during the next event loop). A value of -1.0 means never fire, and can be useful to temporarily \char`\"{}disable\char`\"{} a timer. \item[{\em interval}]Repeat interval in second. Use -1.0 for a one-shot timer. Value must be strictly positive for repeating timer. \end{description} |
55 |
\end{Desc} |
56 |
\hypertarget{group__timer_ga2}{ |
57 |
\index{timer@{timer}!peak_timer_create@{peak\_\-timer\_\-create}} |
58 |
\index{peak_timer_create@{peak\_\-timer\_\-create}!timer@{timer}} |
59 |
\subsubsection[peak\_\-timer\_\-create]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__timer_ga0}{peak\_\-timer} peak\_\-timer\_\-create (double {\em fire}, double {\em interval}, \hyperlink{group__timer_ga1}{peak\_\-timer\_\-callback} {\em callout}, void $\ast$ {\em context})}} |
60 |
\label{group__timer_ga2} |
61 |
|
62 |
|
63 |
Create a timer. |
64 |
|
65 |
Note that the timer isn't activated until you add it to the task of your choice (usually \hyperlink{group__task__common_ga8}{peak\_\-task\_\-self()}) with \hyperlink{group__task__timer_ga24}{peak\_\-task\_\-timer\_\-add()}. |
66 |
|
67 |
\begin{Desc} |
68 |
\item[Parameters:] |
69 |
\begin{description} |
70 |
\item[{\em fire}]Relative fire time in second. 0 means immediate fire (as soon as possible, usually during the next event loop). A value of -1.0 means never fire, and can be useful to temporarily \char`\"{}disable\char`\"{} a timer. \item[{\em interval}]Repeat interval in second. Use -1.0 for a one-shot timer. Value must be strictly positive for repeating timer. \item[{\em callout}]A pointer to your timer callback function which is triggered when the timer fires. \item[{\em context}]An extra application-defined pointer that will be passed to your timer callback function (it's not used by the library).\end{description} |
71 |
\end{Desc} |
72 |
\begin{Desc} |
73 |
\item[Returns:]A newly allocated {\tt peak\_\-timer} reference or {\tt NULL} if the timer cannot be created. \end{Desc} |
74 |
\hypertarget{group__timer_ga6}{ |
75 |
\index{timer@{timer}!peak_timer_get_context@{peak\_\-timer\_\-get\_\-context}} |
76 |
\index{peak_timer_get_context@{peak\_\-timer\_\-get\_\-context}!timer@{timer}} |
77 |
\subsubsection[peak\_\-timer\_\-get\_\-context]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ peak\_\-timer\_\-get\_\-context (\hyperlink{group__timer_ga0}{peak\_\-timer} {\em t})}} |
78 |
\label{group__timer_ga6} |
79 |
|
80 |
|
81 |
Get timer's extra application-defined context. |
82 |
|
83 |
\begin{Desc} |
84 |
\item[Parameters:] |
85 |
\begin{description} |
86 |
\item[{\em t}]The timer reference.\end{description} |
87 |
\end{Desc} |
88 |
\begin{Desc} |
89 |
\item[Returns:]Context pointer. \end{Desc} |
90 |
\hypertarget{group__timer_ga4}{ |
91 |
\index{timer@{timer}!peak_timer_get_firetime@{peak\_\-timer\_\-get\_\-firetime}} |
92 |
\index{peak_timer_get_firetime@{peak\_\-timer\_\-get\_\-firetime}!timer@{timer}} |
93 |
\subsubsection[peak\_\-timer\_\-get\_\-firetime]{\setlength{\rightskip}{0pt plus 5cm}double peak\_\-timer\_\-get\_\-firetime (\hyperlink{group__timer_ga0}{peak\_\-timer} {\em t})}} |
94 |
\label{group__timer_ga4} |
95 |
|
96 |
|
97 |
Get timer's fire date time. |
98 |
|
99 |
\begin{Desc} |
100 |
\item[Parameters:] |
101 |
\begin{description} |
102 |
\item[{\em t}]The timer reference.\end{description} |
103 |
\end{Desc} |
104 |
\begin{Desc} |
105 |
\item[Returns:]Absolute time in second before the timer fires (if it is added to a task). \end{Desc} |
106 |
\hypertarget{group__timer_ga5}{ |
107 |
\index{timer@{timer}!peak_timer_get_interval@{peak\_\-timer\_\-get\_\-interval}} |
108 |
\index{peak_timer_get_interval@{peak\_\-timer\_\-get\_\-interval}!timer@{timer}} |
109 |
\subsubsection[peak\_\-timer\_\-get\_\-interval]{\setlength{\rightskip}{0pt plus 5cm}double peak\_\-timer\_\-get\_\-interval (\hyperlink{group__timer_ga0}{peak\_\-timer} {\em t})}} |
110 |
\label{group__timer_ga5} |
111 |
|
112 |
|
113 |
Get timer's repeat-interval time. |
114 |
|
115 |
\begin{Desc} |
116 |
\item[Parameters:] |
117 |
\begin{description} |
118 |
\item[{\em t}]The timer reference.\end{description} |
119 |
\end{Desc} |
120 |
\begin{Desc} |
121 |
\item[Returns:]Interval time in second. \end{Desc} |
122 |
\hypertarget{group__timer_ga7}{ |
123 |
\index{timer@{timer}!peak_timer_set_context@{peak\_\-timer\_\-set\_\-context}} |
124 |
\index{peak_timer_set_context@{peak\_\-timer\_\-set\_\-context}!timer@{timer}} |
125 |
\subsubsection[peak\_\-timer\_\-set\_\-context]{\setlength{\rightskip}{0pt plus 5cm}void peak\_\-timer\_\-set\_\-context (\hyperlink{group__timer_ga0}{peak\_\-timer} {\em t}, void $\ast$ {\em context})}} |
126 |
\label{group__timer_ga7} |
127 |
|
128 |
|
129 |
Change the context pointer of a timer. |
130 |
|
131 |
\begin{Desc} |
132 |
\item[Parameters:] |
133 |
\begin{description} |
134 |
\item[{\em t}]The timer reference. \item[{\em context}]An extra application-defined pointer that will be passed to your timer callback function (it's not used by the library). \end{description} |
135 |
\end{Desc} |