\hypertarget{class_qore_1_1_abstract_poll_operation}{}\doxysection{Qore\+::Abstract\+Poll\+Operation Class Reference}
\label{class_qore_1_1_abstract_poll_operation}\index{Qore::AbstractPollOperation@{Qore::AbstractPollOperation}}


Abstract poll operation objects provide the polling interface for pollable objects.  




{\ttfamily \#include $<$QC\+\_\+\+Abstract\+Poll\+Operation.\+dox.\+h$>$}



Inheritance diagram for Qore\+::Abstract\+Poll\+Operation\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_qore_1_1_abstract_poll_operation__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
abstract \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_ga24ee71727f0785d3b826833ed6f5e2ee}{hash}}$<$ \mbox{\hyperlink{struct_qore_1_1_socket_poll_info}{Socket\+Poll\+Info}} $>$ \mbox{\hyperlink{class_qore_1_1_abstract_poll_operation_a2ff39800fcf14c9cc4bdf2f69c879e84}{continue\+Poll}} ()
\begin{DoxyCompactList}\small\item\em Returns a socket poll hash if polling should continue or \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}} if complete. \end{DoxyCompactList}\item 
abstract \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{class_qore_1_1_abstract_poll_operation_a46b995e33768d41251f6d1b753c5099d}{get\+Goal}} ()
\begin{DoxyCompactList}\small\item\em Returns the goal. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{class_qore_1_1_abstract_poll_operation_a55581ca43fbdd2a647dc3bf94ed38766}{get\+Output}} ()
\begin{DoxyCompactList}\small\item\em Returns any output generated by any completed poll action. \end{DoxyCompactList}\item 
abstract \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{class_qore_1_1_abstract_poll_operation_a0cd79187e58d30ad6f97857f564d5c2a}{get\+State}} ()
\begin{DoxyCompactList}\small\item\em Returns the current state. \end{DoxyCompactList}\item 
abstract bool \mbox{\hyperlink{class_qore_1_1_abstract_poll_operation_a2b0929fc4b93ae1074bcc6673feb8630}{goal\+Reached}} ()
\begin{DoxyCompactList}\small\item\em Returns \mbox{\hyperlink{basic_data_types_True}{True}} when the goal as been reached. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Abstract poll operation objects provide the polling interface for pollable objects. 

This class implements polling logic for pollable operations and the state machine behind it 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_qore_1_1_abstract_poll_operation_a2ff39800fcf14c9cc4bdf2f69c879e84}\label{class_qore_1_1_abstract_poll_operation_a2ff39800fcf14c9cc4bdf2f69c879e84}} 
\index{Qore::AbstractPollOperation@{Qore::AbstractPollOperation}!continuePoll@{continuePoll}}
\index{continuePoll@{continuePoll}!Qore::AbstractPollOperation@{Qore::AbstractPollOperation}}
\doxysubsubsection{\texorpdfstring{continuePoll()}{continuePoll()}}
{\footnotesize\ttfamily abstract \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_ga24ee71727f0785d3b826833ed6f5e2ee}{hash}}$<$ \mbox{\hyperlink{struct_qore_1_1_socket_poll_info}{Socket\+Poll\+Info}} $>$ Qore\+::\+Abstract\+Poll\+Operation\+::continue\+Poll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns a socket poll hash if polling should continue or \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}} if complete. 

\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{basic_data_types_NOTHING}{NOTHING}} if there is no more to poll and the poll operation was successful (i.\+e. the goal was reached), otherwise this method must return a new socket poll hash to continue the polling operation with another operation, after which this method will be called again if a matching event is received for the socket. If a socket poll hash is returned, then the internal state is also updated. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{class_qore_1_1_file_poll_operation_ac7fa5dddc950045fa131ea6f23df3cca}{Qore\+::\+File\+Poll\+Operation}}, and \mbox{\hyperlink{class_qore_1_1_socket_poll_operation_a26c8e3b2dd78274cc0be319eac20d673}{Qore\+::\+Socket\+Poll\+Operation}}.

\mbox{\Hypertarget{class_qore_1_1_abstract_poll_operation_a46b995e33768d41251f6d1b753c5099d}\label{class_qore_1_1_abstract_poll_operation_a46b995e33768d41251f6d1b753c5099d}} 
\index{Qore::AbstractPollOperation@{Qore::AbstractPollOperation}!getGoal@{getGoal}}
\index{getGoal@{getGoal}!Qore::AbstractPollOperation@{Qore::AbstractPollOperation}}
\doxysubsubsection{\texorpdfstring{getGoal()}{getGoal()}}
{\footnotesize\ttfamily abstract \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::\+Abstract\+Poll\+Operation\+::get\+Goal (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns the goal. 

\begin{DoxyReturn}{Returns}
the goal set in the constructor 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{class_qore_1_1_socket_poll_operation_base_a645bae22e4183731d1fabaf85a6ea5ce}{Qore\+::\+Socket\+Poll\+Operation\+Base}}.

\mbox{\Hypertarget{class_qore_1_1_abstract_poll_operation_a55581ca43fbdd2a647dc3bf94ed38766}\label{class_qore_1_1_abstract_poll_operation_a55581ca43fbdd2a647dc3bf94ed38766}} 
\index{Qore::AbstractPollOperation@{Qore::AbstractPollOperation}!getOutput@{getOutput}}
\index{getOutput@{getOutput}!Qore::AbstractPollOperation@{Qore::AbstractPollOperation}}
\doxysubsubsection{\texorpdfstring{getOutput()}{getOutput()}}
{\footnotesize\ttfamily auto Qore\+::\+Abstract\+Poll\+Operation\+::get\+Output (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns any output generated by any completed poll action. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyReturn}{Returns}
this base class method always returns \mbox{\hyperlink{basic_data_types_nothing}{NOTHING}}, reimplement in subclasses to change this behavior 
\end{DoxyReturn}
\mbox{\Hypertarget{class_qore_1_1_abstract_poll_operation_a0cd79187e58d30ad6f97857f564d5c2a}\label{class_qore_1_1_abstract_poll_operation_a0cd79187e58d30ad6f97857f564d5c2a}} 
\index{Qore::AbstractPollOperation@{Qore::AbstractPollOperation}!getState@{getState}}
\index{getState@{getState}!Qore::AbstractPollOperation@{Qore::AbstractPollOperation}}
\doxysubsubsection{\texorpdfstring{getState()}{getState()}}
{\footnotesize\ttfamily abstract \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::\+Abstract\+Poll\+Operation\+::get\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns the current state. 

\begin{DoxyReturn}{Returns}
the current state 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{class_qore_1_1_socket_poll_operation_base_a9e5f446404014fd691a451747dc492b5}{Qore\+::\+Socket\+Poll\+Operation\+Base}}.

\mbox{\Hypertarget{class_qore_1_1_abstract_poll_operation_a2b0929fc4b93ae1074bcc6673feb8630}\label{class_qore_1_1_abstract_poll_operation_a2b0929fc4b93ae1074bcc6673feb8630}} 
\index{Qore::AbstractPollOperation@{Qore::AbstractPollOperation}!goalReached@{goalReached}}
\index{goalReached@{goalReached}!Qore::AbstractPollOperation@{Qore::AbstractPollOperation}}
\doxysubsubsection{\texorpdfstring{goalReached()}{goalReached()}}
{\footnotesize\ttfamily abstract bool Qore\+::\+Abstract\+Poll\+Operation\+::goal\+Reached (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Returns \mbox{\hyperlink{basic_data_types_True}{True}} when the goal as been reached. 

\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{basic_data_types_True}{True}} when the goal as been reached 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{class_qore_1_1_socket_poll_operation_base_a501f69cc3437f52154efd3b4b2a7e483}{Qore\+::\+Socket\+Poll\+Operation\+Base}}.

