\section{booster\+:\+:aio\+:\+:deadline\+\_\+timer Class Reference}
\label{classbooster_1_1aio_1_1deadline__timer}\index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}


A timer object.  




{\ttfamily \#include $<$booster/booster/aio/deadline\+\_\+timer.\+h$>$}

Inheritance diagram for booster\+:\+:aio\+:\+:deadline\+\_\+timer\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classbooster_1_1aio_1_1deadline__timer}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf deadline\+\_\+timer} ()
\item 
{\bf deadline\+\_\+timer} ({\bf io\+\_\+service} \&srv)
\item 
{\bf io\+\_\+service} \& {\bf get\+\_\+io\+\_\+service} ()
\item 
void {\bf set\+\_\+io\+\_\+service} ({\bf io\+\_\+service} \&srv)
\item 
void {\bf reset\+\_\+io\+\_\+service} ()
\item 
void {\bf expires\+\_\+from\+\_\+now} ({\bf ptime} t)
\item 
{\bf ptime} {\bf expires\+\_\+from\+\_\+now} ()
\item 
void {\bf expires\+\_\+at} ({\bf ptime} t)
\item 
{\bf ptime} {\bf expires\+\_\+at} ()
\item 
void {\bf wait} ()
\item 
void {\bf async\+\_\+wait} ({\bf event\+\_\+handler} const \&h)
\item 
void {\bf cancel} ()
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
struct {\bfseries waiter}\label{classbooster_1_1aio_1_1deadline__timer_a5c2d8ad3dc03a2fcae52cb8a99db61cc}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
A timer object. 

\subsection{Constructor \& Destructor Documentation}
\index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!deadline\+\_\+timer@{deadline\+\_\+timer}}
\index{deadline\+\_\+timer@{deadline\+\_\+timer}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{deadline\+\_\+timer()}]{\setlength{\rightskip}{0pt plus 5cm}booster\+::aio\+::deadline\+\_\+timer\+::deadline\+\_\+timer (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a10c5a351425da3102852dd5749d1d2b0}
Create a new timer object \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!deadline\+\_\+timer@{deadline\+\_\+timer}}
\index{deadline\+\_\+timer@{deadline\+\_\+timer}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{deadline\+\_\+timer(io\+\_\+service \&srv)}]{\setlength{\rightskip}{0pt plus 5cm}booster\+::aio\+::deadline\+\_\+timer\+::deadline\+\_\+timer (
\begin{DoxyParamCaption}
\item[{{\bf io\+\_\+service} \&}]{srv}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_af5421f825484cd6928faed18c161a56f}
Create a new timer object connected to the \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service} {\itshape srv} 

\subsection{Member Function Documentation}
\index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!async\+\_\+wait@{async\+\_\+wait}}
\index{async\+\_\+wait@{async\+\_\+wait}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{async\+\_\+wait(event\+\_\+handler const \&h)}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::async\+\_\+wait (
\begin{DoxyParamCaption}
\item[{{\bf event\+\_\+handler} const \&}]{h}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a792d60c0eb9f04d3f3a4bf54e6583c5c}
Wait asynchronously for the timer.

If \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service} is not assigned throws \doxyref{system\+::system\+\_\+error}{p.}{classbooster_1_1system_1_1system__error}, all other errors reported via {\itshape h} \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!cancel@{cancel}}
\index{cancel@{cancel}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{cancel()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::cancel (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a056b1472d6c76b9688f6d94240695d26}
Cancel asynchronous operation. The active handler is immediately scheduled for execution with booster\+::aio\+::aio\+\_\+error\+::cancel error code in \doxyref{booster\+::aio\+::aio\+\_\+error\+\_\+cat}{p.}{namespacebooster_1_1aio_ab8fc36f5ba7b98b52f4082a85d3db8c9} category.

It allows to distinguish between operation cancellation and normal completion \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!expires\+\_\+at@{expires\+\_\+at}}
\index{expires\+\_\+at@{expires\+\_\+at}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{expires\+\_\+at(ptime t)}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::expires\+\_\+at (
\begin{DoxyParamCaption}
\item[{{\bf ptime}}]{t}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a4b581b931e0f9cb1039e54b795d6baf1}
Set an absolute expiration time

If the function is called during the wait operation the behavior is undefined \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!expires\+\_\+at@{expires\+\_\+at}}
\index{expires\+\_\+at@{expires\+\_\+at}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{expires\+\_\+at()}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ptime} booster\+::aio\+::deadline\+\_\+timer\+::expires\+\_\+at (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_ae465226b8b180698d640cbf40e9d5628}
Get an absolute expiration time \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!expires\+\_\+from\+\_\+now@{expires\+\_\+from\+\_\+now}}
\index{expires\+\_\+from\+\_\+now@{expires\+\_\+from\+\_\+now}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{expires\+\_\+from\+\_\+now(ptime t)}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::expires\+\_\+from\+\_\+now (
\begin{DoxyParamCaption}
\item[{{\bf ptime}}]{t}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a83e31e7cd377e0167c0ba5e4e04abe28}
Set an expiration time relativelty to the current point with an offset {\itshape t} 

If the function is called during the wait operation the behavior is undefined \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!expires\+\_\+from\+\_\+now@{expires\+\_\+from\+\_\+now}}
\index{expires\+\_\+from\+\_\+now@{expires\+\_\+from\+\_\+now}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{expires\+\_\+from\+\_\+now()}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ptime} booster\+::aio\+::deadline\+\_\+timer\+::expires\+\_\+from\+\_\+now (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a92a91be95e439c8e367fa7883801ab86}
Get an expiration time relativelty to the current point with an offset {\itshape t} \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!get\+\_\+io\+\_\+service@{get\+\_\+io\+\_\+service}}
\index{get\+\_\+io\+\_\+service@{get\+\_\+io\+\_\+service}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{get\+\_\+io\+\_\+service()}]{\setlength{\rightskip}{0pt plus 5cm}{\bf io\+\_\+service}\& booster\+::aio\+::deadline\+\_\+timer\+::get\+\_\+io\+\_\+service (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_af38f6201fba327069f89292839d42bf2}
Returns the connected \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service}, throws \doxyref{system\+::system\+\_\+error}{p.}{classbooster_1_1system_1_1system__error} if no \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service} connected \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!reset\+\_\+io\+\_\+service@{reset\+\_\+io\+\_\+service}}
\index{reset\+\_\+io\+\_\+service@{reset\+\_\+io\+\_\+service}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{reset\+\_\+io\+\_\+service()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::reset\+\_\+io\+\_\+service (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a38864af40a6153479fbd1b0874d5b180}
Unsets the \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service}. Cancels all pending asynchronous operations on the connected \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service}. \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!set\+\_\+io\+\_\+service@{set\+\_\+io\+\_\+service}}
\index{set\+\_\+io\+\_\+service@{set\+\_\+io\+\_\+service}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{set\+\_\+io\+\_\+service(io\+\_\+service \&srv)}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::set\+\_\+io\+\_\+service (
\begin{DoxyParamCaption}
\item[{{\bf io\+\_\+service} \&}]{srv}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_aee4978be7d5c43cd4627a16df6b7da69}
Sets new \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service}. Cancels all pending asynchronous operations on the connected \doxyref{io\+\_\+service}{p.}{classbooster_1_1aio_1_1io__service}. \index{booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}!wait@{wait}}
\index{wait@{wait}!booster\+::aio\+::deadline\+\_\+timer@{booster\+::aio\+::deadline\+\_\+timer}}
\subsubsection[{wait()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::aio\+::deadline\+\_\+timer\+::wait (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1aio_1_1deadline__timer_a4f22f7875d1ae32af184937456a5f084}
Wait synchronously for the timer 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
booster/aio/deadline\+\_\+timer.\+h\end{DoxyCompactItemize}
