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


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



Inheritance diagram for AAX\+\_\+\+IACFTask\+:
% FIG 0


Collaboration diagram for AAX\+\_\+\+IACFTask\+:
% FIG 1


\doxysubsection{Description}
Versioned interface for an asynchronous task. 

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


Used by the \mbox{\hyperlink{a02346}{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{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02162_ad521ca0f8b78bc05162cb5c954bf4103}{Get\+Type}} (\mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}} $\ast$o\+Type) const =0
\item 
virtual \mbox{\hyperlink{a02038}{AAX\+\_\+\+IACFData\+Buffer}} const $\ast$ \mbox{\hyperlink{a02162_a02a05ee5c1795c7d15f6b04333ebb907}{Get\+Argument\+Of\+Type}} (\mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\+\_\+\+CType\+ID}} i\+Type) const =0
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02162_ada8d5559d6c451c027048a184a818b72}{Set\+Progress}} (float i\+Progress)=0
\item 
virtual float \mbox{\hyperlink{a02162_a3e9dd837a0cf951713caf0fc850be1c3}{Get\+Progress}} () const =0
\item 
virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02162_a3fd0b48690e7453d8c05e502ee8b5900}{Add\+Result}} (\mbox{\hyperlink{a02038}{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{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} \mbox{\hyperlink{a02162_a74760599f0918bca8eefaba3292999bc}{Set\+Done}} (\mbox{\hyperlink{a00907_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{a01770}{IACFUnknown}}}
\begin{DoxyCompactItemize}
\item 
virtual BEGIN\+\_\+\+ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_a8b7f0ae9c78d007ca76aa462ebe53135}{Query\+Interface}} (const \mbox{\hyperlink{a00308_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{a01770_aa9c7a5b9dff341092b7b86bb9b3a58fb}{Add\+Ref}} (void)=0
\begin{DoxyCompactList}\small\item\em Increments reference count. \end{DoxyCompactList}\item 
virtual acf\+UInt32 ACFMETHODCALLTYPE \mbox{\hyperlink{a01770_afabd38cec0a9ed37f1d3e8644a70ac41}{Release}} (void)=0
\begin{DoxyCompactList}\small\item\em Decrements reference count. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{a02162_ad521ca0f8b78bc05162cb5c954bf4103}\label{a02162_ad521ca0f8b78bc05162cb5c954bf4103}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!GetType@{GetType}}
\index{GetType@{GetType}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{GetType()}{GetType()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+Get\+Type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00542_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{a01966_ad78ed27984505abdf7dfb2dc8d72b388}{AAX\+\_\+\+CTask}}.

\mbox{\Hypertarget{a02162_a02a05ee5c1795c7d15f6b04333ebb907}\label{a02162_a02a05ee5c1795c7d15f6b04333ebb907}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!GetArgumentOfType@{GetArgumentOfType}}
\index{GetArgumentOfType@{GetArgumentOfType}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{GetArgumentOfType()}{GetArgumentOfType()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a02038}{AAX\+\_\+\+IACFData\+Buffer}} const  $\ast$ AAX\+\_\+\+IACFTask\+::\+Get\+Argument\+Of\+Type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00542_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{a01966_a80306d418b32599f5a81397d2e61a55e}{AAX\+\_\+\+CTask}}.

\mbox{\Hypertarget{a02162_ada8d5559d6c451c027048a184a818b72}\label{a02162_ada8d5559d6c451c027048a184a818b72}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!SetProgress@{SetProgress}}
\index{SetProgress@{SetProgress}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{SetProgress()}{SetProgress()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_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}


Implemented in \mbox{\hyperlink{a01966_a4d530fb51f1821f27e5f81a447dd50d3}{AAX\+\_\+\+CTask}}.

\mbox{\Hypertarget{a02162_a3e9dd837a0cf951713caf0fc850be1c3}\label{a02162_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   

Implemented in \mbox{\hyperlink{a01966_a48160984bad29569cfc8ec7760f266d1}{AAX\+\_\+\+CTask}}.

\mbox{\Hypertarget{a02162_a3fd0b48690e7453d8c05e502ee8b5900}\label{a02162_a3fd0b48690e7453d8c05e502ee8b5900}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!AddResult@{AddResult}}
\index{AddResult@{AddResult}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{AddResult()}{AddResult()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+Add\+Result (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a02038}{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{a01966_ac152507e0f6ae6d4982288f576d3a3f8}{AAX\+\_\+\+CTask}}.

\mbox{\Hypertarget{a02162_a74760599f0918bca8eefaba3292999bc}\label{a02162_a74760599f0918bca8eefaba3292999bc}} 
\index{AAX\_IACFTask@{AAX\_IACFTask}!SetDone@{SetDone}}
\index{SetDone@{SetDone}!AAX\_IACFTask@{AAX\_IACFTask}}
\doxysubsubsection{\texorpdfstring{SetDone()}{SetDone()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\+\_\+\+Result}} AAX\+\_\+\+IACFTask\+::\+Set\+Done (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{a00907_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{a00539_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}


Implemented in \mbox{\hyperlink{a01966_a8e81eb4eb3361b1747e2e14ee9ce5670}{AAX\+\_\+\+CTask}}.



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