\hypertarget{a02145}{}\doxysection{AAX\+\_\+\+IACFTask Class Reference}
\label{a02145}\index{AAX\_IACFTask@{AAX\_IACFTask}}


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



Inheritance diagram for AAX\+\_\+\+IACFTask\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=166pt]{a02144}
\end{center}
\end{figure}


Collaboration diagram for AAX\+\_\+\+IACFTask\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=166pt]{a02143}
\end{center}
\end{figure}


\doxysubsection{Description}
Versioned interface for an asynchronous 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{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02145_ad521ca0f8b78bc05162cb5c954bf4103}{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{a02145_a02a05ee5c1795c7d15f6b04333ebb907}{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{a02145_ada8d5559d6c451c027048a184a818b72}{Set\+Progress}} (float i\+Progress)=0
\item 
virtual float \mbox{\hyperlink{a02145_a3e9dd837a0cf951713caf0fc850be1c3}{Get\+Progress}} () const =0
\item 
virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02145_a3fd0b48690e7453d8c05e502ee8b5900}{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{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02145_a74760599f0918bca8eefaba3292999bc}{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}
\doxysubsubsection*{Public Member Functions inherited from \mbox{\hyperlink{a01757}{IACFUnknown}}}
\begin{DoxyCompactItemize}
\item 
virtual BEGIN\+\_\+\+ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01757_a8b7f0ae9c78d007ca76aa462ebe53135}{Query\+Interface}} (const \mbox{\hyperlink{a00305_a59df0b41744eee7a066787aaedf97f67}{acf\+IID}} \&iid, void $\ast$$\ast$pp\+Out)=0
\begin{DoxyCompactList}\small\item\em Returns pointers to supported interfaces. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01757_aa9c7a5b9dff341092b7b86bb9b3a58fb}{Add\+Ref}} (void)=0
\begin{DoxyCompactList}\small\item\em Increments reference count. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01757_afabd38cec0a9ed37f1d3e8644a70ac41}{Release}} (void)=0
\begin{DoxyCompactList}\small\item\em Decrements reference count. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02145_ad521ca0f8b78bc05162cb5c954bf4103}\label{a02145_ad521ca0f8b78bc05162cb5c954bf4103}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!GetType@{GetType}}
\index{GetType@{GetType}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{GetType()}{GetType()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+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}
\mbox{\Hypertarget{a02145_a02a05ee5c1795c7d15f6b04333ebb907}\label{a02145_a02a05ee5c1795c7d15f6b04333ebb907}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!GetArgumentOfType@{GetArgumentOfType}}
\index{GetArgumentOfType@{GetArgumentOfType}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{GetArgumentOfType()}{GetArgumentOfType()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a02021}{AAX\+\_\+\+IACFData\+Buffer}} const  $\ast$ AAX\+\_\+\+IACFTask\+::\+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}
\mbox{\Hypertarget{a02145_ada8d5559d6c451c027048a184a818b72}\label{a02145_ada8d5559d6c451c027048a184a818b72}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!SetProgress@{SetProgress}}
\index{SetProgress@{SetProgress}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{SetProgress()}{SetProgress()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+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}
\mbox{\Hypertarget{a02145_a3e9dd837a0cf951713caf0fc850be1c3}\label{a02145_a3e9dd837a0cf951713caf0fc850be1c3}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!GetProgress@{GetProgress}}
\index{GetProgress@{GetProgress}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{GetProgress()}{GetProgress()}}
{\footnotesize\ttfamily virtual float AAX\+\_\+\+IACFTask\+::\+Get\+Progress (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}





Returns the current progress   \mbox{\Hypertarget{a02145_a3fd0b48690e7453d8c05e502ee8b5900}\label{a02145_a3fd0b48690e7453d8c05e502ee8b5900}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!AddResult@{AddResult}}
\index{AddResult@{AddResult}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{AddResult()}{AddResult()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+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}
\mbox{\Hypertarget{a02145_a74760599f0918bca8eefaba3292999bc}\label{a02145_a74760599f0918bca8eefaba3292999bc}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!SetDone@{SetDone}}
\index{SetDone@{SetDone}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{SetDone()}{SetDone()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00533_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+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 \mbox{\hyperlink{a00530_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\+\_\+\+SUCCESS}} is returned, the object should be considered invalid and released by the caller.


\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}


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