\hypertarget{a02317}{}\doxysection{AAX\+\_\+\+ITask Class Reference}
\label{a02317}\index{AAX\_ITask@{AAX\_ITask}}


{\ttfamily \#include $<$AAX\+\_\+\+ITask.\+h$>$}



Inheritance diagram for AAX\+\_\+\+ITask\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=150pt]{a02316}
\end{center}
\end{figure}


\doxysubsection{Description}
Interface representing a request to perform a task. 

\begin{DoxyRefDesc}{\+:\+Implemented by the AAX Host}
\item[\mbox{\hyperlink{a00872__aax_host_implementation000012}{\+:\+Implemented by the AAX Host}}]\end{DoxyRefDesc}


Used by the \mbox{\hyperlink{a02321}{task agent}}.

This interface describes a task request and provides a way for the agent to express one or more results of the task as well as the progress of the task.

This interface is open-\/ended for both inputs and outputs. The host and agent must use common definitions for specific task types, their possible arguments, and the expected results. \doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{a02317_a5e0b64a0be2292b2788f87e35cfe75c0}{$\sim$\+AAX\+\_\+\+ITask}} ()=default
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02317_aa0fc480241f3d3ea30fa5424318c3650}{Get\+Type}} (\mbox{\hyperlink{a00533_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}} $\ast$o\+Type) const =0
\item 
virtual \mbox{\hyperlink{a02021}{AAX\+\_\+\+IACFData\+Buffer}} const $\ast$ \mbox{\hyperlink{a02317_aa6341abf7eac859266bd6ba92e15efda}{Get\+Argument\+Of\+Type}} (\mbox{\hyperlink{a00533_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}} i\+Type) const =0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02317_a3ebb644b6e2972db23c8af1d683312f7}{Set\+Progress}} (float i\+Progress)=0
\item 
virtual float \mbox{\hyperlink{a02317_a74b2d3af3e862db07ab9442ef32390ba}{Get\+Progress}} () const =0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02317_aa8d9d069296346d40bc105a9a01fb0c1}{Add\+Result}} (\mbox{\hyperlink{a02021}{AAX\+\_\+\+IACFData\+Buffer}} const $\ast$i\+Result)=0
\begin{DoxyCompactList}\small\item\em Attach result data to this task. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{a02317}{AAX\+\_\+\+ITask}} $\ast$ \mbox{\hyperlink{a02317_a5206e0d8108c663131e3446e324f01d4}{Set\+Done}} (\mbox{\hyperlink{a00894_ga101aaf82fd3a9c6a445b5312e9551ba1}{AAX\+\_\+\+Task\+Completion\+Status}} i\+Status)=0
\begin{DoxyCompactList}\small\item\em Inform the host that the task is completed. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{a02317_a5e0b64a0be2292b2788f87e35cfe75c0}\label{a02317_a5e0b64a0be2292b2788f87e35cfe75c0}} 
\index{AAX\_ITask@{AAX\_ITask}!````~AAX\_ITask@{$\sim$AAX\_ITask}}
\index{````~AAX\_ITask@{$\sim$AAX\_ITask}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{$\sim$AAX\_ITask()}{~AAX\_ITask()}}
{\footnotesize\ttfamily virtual AAX\+\_\+\+ITask\+::$\sim$\+AAX\+\_\+\+ITask (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02317_aa0fc480241f3d3ea30fa5424318c3650}\label{a02317_aa0fc480241f3d3ea30fa5424318c3650}} 
\index{AAX\_ITask@{AAX\_ITask}!GetType@{GetType}}
\index{GetType@{GetType}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{GetType()}{GetType()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+ITask\+::\+Get\+Type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}} $\ast$}]{o\+Type }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

An identifier defining the type of the requested task


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em o\+Type} & The type of this task request \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02401_a189e0e0752d4afe12364ddc396005876}{AAX\+\_\+\+VTask}}.

\mbox{\Hypertarget{a02317_aa6341abf7eac859266bd6ba92e15efda}\label{a02317_aa6341abf7eac859266bd6ba92e15efda}} 
\index{AAX\_ITask@{AAX\_ITask}!GetArgumentOfType@{GetArgumentOfType}}
\index{GetArgumentOfType@{GetArgumentOfType}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{GetArgumentOfType()}{GetArgumentOfType()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a02021}{AAX\+\_\+\+IACFData\+Buffer}} const  $\ast$ AAX\+\_\+\+ITask\+::\+Get\+Argument\+Of\+Type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00533_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}}}]{i\+Type }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Additional information defining the request, depending on the task type


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Type} & The type of argument requested. Possible argument types, if any, and the resulting data buffer format must be defined per task type.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The requested argument data, or nullptr. This data buffer\textquotesingle{}s type ID is expected to match {\ttfamily i\+Type} . The caller takes ownership of this object. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{a02401_aa7e1476ac6388edfd9efca5f3d4e8d9a}{AAX\+\_\+\+VTask}}.

\mbox{\Hypertarget{a02317_a3ebb644b6e2972db23c8af1d683312f7}\label{a02317_a3ebb644b6e2972db23c8af1d683312f7}} 
\index{AAX\_ITask@{AAX\_ITask}!SetProgress@{SetProgress}}
\index{SetProgress@{SetProgress}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{SetProgress()}{SetProgress()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+ITask\+::\+Set\+Progress (\begin{DoxyParamCaption}\item[{float}]{i\+Progress }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Inform the host about the current status of the task


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Progress} & A value between 0 (no progress) and 1 (complete) \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02401_a23be0e1f610bd14a331fea4a9bccac38}{AAX\+\_\+\+VTask}}.

\mbox{\Hypertarget{a02317_a74b2d3af3e862db07ab9442ef32390ba}\label{a02317_a74b2d3af3e862db07ab9442ef32390ba}} 
\index{AAX\_ITask@{AAX\_ITask}!GetProgress@{GetProgress}}
\index{GetProgress@{GetProgress}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{GetProgress()}{GetProgress()}}
{\footnotesize\ttfamily virtual float AAX\+\_\+\+ITask\+::\+Get\+Progress (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Returns the current progress 

Implemented in \mbox{\hyperlink{a02401_a7f84e83c867d2964be281a9d3d6b2207}{AAX\+\_\+\+VTask}}.

\mbox{\Hypertarget{a02317_aa8d9d069296346d40bc105a9a01fb0c1}\label{a02317_aa8d9d069296346d40bc105a9a01fb0c1}} 
\index{AAX\_ITask@{AAX\_ITask}!AddResult@{AddResult}}
\index{AddResult@{AddResult}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{AddResult()}{AddResult()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+ITask\+::\+Add\+Result (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a02021}{AAX\+\_\+\+IACFData\+Buffer}} const $\ast$}]{i\+Result }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Attach result data to this task. 

This can be called multiple times to add multiple types of results to a single task.

The host may process the result data immediately or may wait for the task to complete.

The plug-\/in is expected to release the data buffer upon making this call. At a minimum, the data buffer must not be changed after this call is made. See {\ttfamily ACFPtr\+::in\+Arg()} 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Result} & A buffer containing the result data. Expected result types, if any, and their data buffer format must be defined per task type. \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02401_a814416712ed46ecb9843132b5e14862b}{AAX\+\_\+\+VTask}}.

\mbox{\Hypertarget{a02317_a5206e0d8108c663131e3446e324f01d4}\label{a02317_a5206e0d8108c663131e3446e324f01d4}} 
\index{AAX\_ITask@{AAX\_ITask}!SetDone@{SetDone}}
\index{SetDone@{SetDone}!AAX\_ITask@{AAX\_ITask}}
\doxysubsubsection{\texorpdfstring{SetDone()}{SetDone()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a02317}{AAX\+\_\+\+ITask}} $\ast$ AAX\+\_\+\+ITask\+::\+Set\+Done (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00894_ga101aaf82fd3a9c6a445b5312e9551ba1}{AAX\+\_\+\+Task\+Completion\+Status}}}]{i\+Status }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Inform the host that the task is completed. 

If successful, returns a null pointer. Otherwise, returns a pointer back to the same object. This is the expected usage pattern\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{//\ release\ the\ task\ on\ success,\ retain\ it\ on\ failure}}
\DoxyCodeLine{myTask\ =\ myTask-\/>SetDone(status);}

\end{DoxyCode}



\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em i\+Status} & The final status of the task. This indicates to the host whether or not the task was performed as requested. \\
\hline
\end{DoxyParams}


Implemented in \mbox{\hyperlink{a02401_ac515ee37a16bc5e6d5cf3f5e92165373}{AAX\+\_\+\+VTask}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{a00797}{AAX\+\_\+\+ITask.\+h}}\end{DoxyCompactItemize}
