\hypertarget{QASC_8h}{
\section{QASC.h File Reference}
\label{QASC_8h}\index{QASC.h@{QASC.h}}
}
Interface to the ACD Software Counters.  


\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{QASC_8h_a5769cb617f641ec3aeafad7ba900886}{
typedef enum \hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d}{\_\-QASC\_\-STATUS} \hyperlink{QASC_8h_a5769cb617f641ec3aeafad7ba900886}{QASC\_\-STATUS}}
\label{QASC_8h_a5769cb617f641ec3aeafad7ba900886}

\begin{CompactList}\small\item\em Typedef for enum \_\-QASC\_\-STATUS. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d}{\_\-QASC\_\-STATUS} \{ \par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d2e44bbe2e034eaed0676766867cb86c0}{QASC\_\-STATUS\_\-SUCCESS} =  0, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d5fe4a754f5305631229ba679dd331f4a}{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-TYPEID} =  -2, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d05e713e63512c526d7645008c54ca9b6}{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-VER} =  -3, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d9e8d168feacb6550e7934d223969c68d}{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER} =  -4, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d232697ca0a6a7af296aa4535d4169d1a}{QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32} =  -5, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d3c6bbbe29b3470855e50c4f63b208c61}{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-TYPEID} =  -6, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d06c81f333adabf6c0718bb1d17aaf585}{QASC\_\-STATUS\_\-CTB\_\-WRONG\_\-TYPEID} =  -7, 
\par
\hyperlink{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0de205f6bd73ef9b481be18d79bb581ade}{QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL} =  -8
 \}
\begin{CompactList}\small\item\em Enumerates the varios status codes. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
\hyperlink{struct__QASC}{QASC} $\ast$ \hyperlink{QASC_8h_c3ba4c89747d18ca28df1fa7efa69fd8}{QASC\_\-alloc} (void $\ast$must\_\-be\_\-null)
\begin{CompactList}\small\item\em Allocates and constructs a QASC handle. \item\end{CompactList}\item 
const LSF\_\-contribution $\ast$ \hyperlink{QASC_8h_a46f4e86e1d5ef865ad5c088666a9a37}{QASC\_\-updateAtDatagram} (\hyperlink{struct__QASC}{QASC} $\ast$qstd, const LSF\_\-datagram $\ast$dgm)
\begin{CompactList}\small\item\em Updates the context at datagram time. \item\end{CompactList}\item 
int \hyperlink{QASC_8h_be7fe1f56c84b075aa1229f0bbf019b6}{QASC\_\-updateAtContribution} (\hyperlink{struct__QASC}{QASC} $\ast$qstd, const LSF\_\-contribution $\ast$ctb)
\begin{CompactList}\small\item\em Updates the context at datagram time. \item\end{CompactList}\item 
int \hyperlink{QASC_8h_6b6cf2d96686a3614fb328c8349088b4}{QASC\_\-updateAtRecord} (\hyperlink{struct__QASC}{QASC} $\ast$qstd, const LSF\_\-record $\ast$rec)
\begin{CompactList}\small\item\em Updates the context at record time. \item\end{CompactList}\item 
void \hyperlink{QASC_8h_9a0a9e7b30fd4c6914d6fa28d45c5e17}{QASC\_\-destruct} (\hyperlink{struct__QASC}{QASC} $\ast$qstd)
\begin{CompactList}\small\item\em The destructor for a QASC control structure. \item\end{CompactList}\item 
const \hyperlink{struct__QASC__ctx}{QASC\_\-ctx} $\ast$ \hyperlink{QASC_8h_446fb5297afeb57bc2a3bf68a8aa7e60}{QASC\_\-ctxGet} (const \hyperlink{struct__QASC}{QASC} $\ast$qstd)
\begin{CompactList}\small\item\em Locates the statistics context (meta-data). \item\end{CompactList}\item 
int \hyperlink{QASC_8h_e0afab546828ae4ffafb70c91eeadcb3}{QASC\_\-sizeof} (void $\ast$must\_\-be\_\-null)
\begin{CompactList}\small\item\em Return the size, in bytes, of the buffer needed to handle a QASC datagram. \item\end{CompactList}\item 
\hyperlink{struct__QASC}{QASC} $\ast$ \hyperlink{QASC_8h_87f77fe627746af218fc8d28ed44afa8}{QASC\_\-construct} (\hyperlink{struct__QASC}{QASC} $\ast$qstd, void $\ast$must\_\-be\_\-null)
\begin{CompactList}\small\item\em The constructor for a QASC control structure. \item\end{CompactList}\item 
QASC\_\-status \hyperlink{QASC_8h_7707591dc6a40a67c3cf5dbdedad4c5a}{QASC\_\-expand} (\hyperlink{struct__QASC}{QASC} $\ast$qasc, const LSF\_\-contribution $\ast$ctb)
\begin{CompactList}\small\item\em Routine to check integrity and swap/uncompress input data into a 2nd buffer. \item\end{CompactList}\item 
int \hyperlink{QASC_8h_7cb317efd6047d5822f62d1a2ab1d1ca}{QASC\_\-idxGemGet} (int group, int channel)
\begin{CompactList}\small\item\em Maps an ACD GEM group and channel into a universal index. \item\end{CompactList}\item 
int \hyperlink{QASC_8h_ae71c8800f94962d90544f527adf4997}{QASC\_\-idxAemGet} (int board, int channel)
\begin{CompactList}\small\item\em Maps an ACD AEM board number and channel into a universal index. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Interface to the ACD Software Counters. 

\begin{Desc}
\item[Author:]JJRussell - \href{mailto:russell@slac.stanford.edu}{\tt russell@slac.stanford.edu}\end{Desc}


\footnotesize\begin{verbatim}

   CVS $Id: QASC.h,v 1.1 2008/06/10 22:28:38 russell Exp $
\end{verbatim}
\normalsize
 

\subsection{Enumeration Type Documentation}
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d}{
\index{QASC.h@{QASC.h}!\_\-QASC\_\-STATUS@{\_\-QASC\_\-STATUS}}
\index{\_\-QASC\_\-STATUS@{\_\-QASC\_\-STATUS}!QASC.h@{QASC.h}}
\subsubsection[{\_\-QASC\_\-STATUS}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \_\-QASC\_\-STATUS}}}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d}


Enumerates the varios status codes. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{QASC\_\-STATUS\_\-SUCCESS@{QASC\_\-STATUS\_\-SUCCESS}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-SUCCESS@{QASC\_\-STATUS\_\-SUCCESS}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d2e44bbe2e034eaed0676766867cb86c0}{
QASC\_\-STATUS\_\-SUCCESS}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d2e44bbe2e034eaed0676766867cb86c0}
}]All is well \index{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-TYPEID@{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-TYPEID}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-TYPEID@{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-TYPEID}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d5fe4a754f5305631229ba679dd331f4a}{
QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-TYPEID}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d5fe4a754f5305631229ba679dd331f4a}
}]LSF datagram header has typeid which is not in LSF/LSF\_\-ids.h \index{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-VER@{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-VER}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-VER@{QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-VER}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d05e713e63512c526d7645008c54ca9b6}{
QASC\_\-STATUS\_\-DGM\_\-UNKNOWN\_\-VER}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d05e713e63512c526d7645008c54ca9b6}
}]LSF datagram header has an unknown version number \index{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER@{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER@{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d9e8d168feacb6550e7934d223969c68d}{
QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d9e8d168feacb6550e7934d223969c68d}
}]LSF contributor header has unknown version number \index{QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32@{QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32@{QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d232697ca0a6a7af296aa4535d4169d1a}{
QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d232697ca0a6a7af296aa4535d4169d1a}
}]LSF contributor has an incorrect length for the packet \index{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-TYPEID@{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-TYPEID}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-TYPEID@{QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-TYPEID}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d3c6bbbe29b3470855e50c4f63b208c61}{
QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-TYPEID}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d3c6bbbe29b3470855e50c4f63b208c61}
}]LSF contributor header has typeid which is not in QASC\_\-TYPEID \index{QASC\_\-STATUS\_\-CTB\_\-WRONG\_\-TYPEID@{QASC\_\-STATUS\_\-CTB\_\-WRONG\_\-TYPEID}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-CTB\_\-WRONG\_\-TYPEID@{QASC\_\-STATUS\_\-CTB\_\-WRONG\_\-TYPEID}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d06c81f333adabf6c0718bb1d17aaf585}{
QASC\_\-STATUS\_\-CTB\_\-WRONG\_\-TYPEID}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0d06c81f333adabf6c0718bb1d17aaf585}
}]typeid of data does not match the QASC\_\-xxxGetXxxx \index{QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL@{QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL}!QASC.h@{QASC.h}}\index{QASC.h@{QASC.h}!QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL@{QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL}}\item[{\em 
\hypertarget{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0de205f6bd73ef9b481be18d79bb581ade}{
QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL}
\label{QASC_8h_d6b9eb8af3c194e8db9441bc24fc1f0de205f6bd73ef9b481be18d79bb581ade}
}]Decompression step failed \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{QASC_8h_c3ba4c89747d18ca28df1fa7efa69fd8}{
\index{QASC.h@{QASC.h}!QASC\_\-alloc@{QASC\_\-alloc}}
\index{QASC\_\-alloc@{QASC\_\-alloc}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-alloc}]{\setlength{\rightskip}{0pt plus 5cm}{\bf QASC} $\ast$ QASC\_\-alloc (void $\ast$ {\em must\_\-be\_\-null})}}
\label{QASC_8h_c3ba4c89747d18ca28df1fa7efa69fd8}


Allocates and constructs a QASC handle. 

\begin{Desc}
\item[Returns:]Pointer to the allocated handle\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em must\_\-be\_\-null}]Reserved for future use. \end{description}
\end{Desc}


References QASC\_\-construct().\hypertarget{QASC_8h_87f77fe627746af218fc8d28ed44afa8}{
\index{QASC.h@{QASC.h}!QASC\_\-construct@{QASC\_\-construct}}
\index{QASC\_\-construct@{QASC\_\-construct}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-construct}]{\setlength{\rightskip}{0pt plus 5cm}{\bf QASC} $\ast$ QASC\_\-construct ({\bf QASC} $\ast$ {\em qasc}, \/  void $\ast$ {\em must\_\-be\_\-null})}}
\label{QASC_8h_87f77fe627746af218fc8d28ed44afa8}


The constructor for a QASC control structure. 

\begin{Desc}
\item[Returns:]Pointer to the QASC control structure\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The control structure to be constructed. If NULL, a control structure will be allocated \item[{\em must\_\-be\_\-null}]Reserved for future use. \end{description}
\end{Desc}


References \_\-QASC\_\-ctx::com, \_\-QASC::ctx, \_\-QASC::cumulative, \_\-QASC\_\-ctx::cumulative, \_\-QASC::free, \_\-QASC\_\-ctx::qasc, qasc\_\-file\_\-cache\_\-get(), QASC\_\-sizeof(), and QSSP\_\-ctxConstruct().

Referenced by QASC\_\-alloc().\hypertarget{QASC_8h_446fb5297afeb57bc2a3bf68a8aa7e60}{
\index{QASC.h@{QASC.h}!QASC\_\-ctxGet@{QASC\_\-ctxGet}}
\index{QASC\_\-ctxGet@{QASC\_\-ctxGet}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-ctxGet}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf QASC\_\-ctx} $\ast$ QASC\_\-ctxGet (const {\bf QASC} $\ast$ {\em qasc})}}
\label{QASC_8h_446fb5297afeb57bc2a3bf68a8aa7e60}


Locates the statistics context (meta-data). 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The statistics context \end{description}
\end{Desc}


References \_\-QASC::ctx.\hypertarget{QASC_8h_9a0a9e7b30fd4c6914d6fa28d45c5e17}{
\index{QASC.h@{QASC.h}!QASC\_\-destruct@{QASC\_\-destruct}}
\index{QASC\_\-destruct@{QASC\_\-destruct}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-destruct}]{\setlength{\rightskip}{0pt plus 5cm}void QASC\_\-destruct ({\bf QASC} $\ast$ {\em qasc})}}
\label{QASC_8h_9a0a9e7b30fd4c6914d6fa28d45c5e17}


The destructor for a QASC control structure. 

\begin{Desc}
\item[Returns:]Pointer to the QSS control structure\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The control structure to be destructed. \end{description}
\end{Desc}


References \_\-QASC::free.\hypertarget{QASC_8h_7707591dc6a40a67c3cf5dbdedad4c5a}{
\index{QASC.h@{QASC.h}!QASC\_\-expand@{QASC\_\-expand}}
\index{QASC\_\-expand@{QASC\_\-expand}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-expand}]{\setlength{\rightskip}{0pt plus 5cm}{\bf QASC\_\-STATUS} QASC\_\-expand ({\bf QASC} $\ast$ {\em qasc}, \/  const LSF\_\-contribution $\ast$ {\em ctb})}}
\label{QASC_8h_7707591dc6a40a67c3cf5dbdedad4c5a}


Routine to check integrity and swap/uncompress input data into a 2nd buffer. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em QASC\_\-STATUS\_\-SUCCESS,if}]successful (0) \item[{\em QASC\_\-STATUS\_\-CTB\_\-BAD\_\-LEN32,if}]the contributor length is inconsistent with the data. \item[{\em QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER,if}]the encoding/data format version is unknown.\item[{\em QASC\_\-STATUS\_\-CTB\_\-INFLATE\_\-FAIL,for}]compressed formats, indicates the failure to inflate the data\end{description}
\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The data access handle to be filled \item[{\em ctb}]Input buffer\end{description}
\end{Desc}
The check routine does integrity checks on the given LSF contributor packet and then decompress/swaps data into the output buffer. THe size of the output buffer is determined by \hyperlink{QASC_8h_e0afab546828ae4ffafb70c91eeadcb3}{QASC\_\-sizeof()}. The output buffer can then be used as input with the QASC\_\-xxxxLocate routines.

This routine assumes the contributor has been byte-swapped. 

References add\_\-samples(), \_\-QASC::ctx, \_\-QASC::cumulative, \_\-QASC\_\-ctx::current, expand\_\-gzip0(), expand\_\-raw0(), QASC\_\-STATUS\_\-CTB\_\-UNKNOWN\_\-VER, \_\-QASC::sample, and \_\-QASC\_\-sample::v0.

Referenced by QASC\_\-updateAtContribution().\hypertarget{QASC_8h_ae71c8800f94962d90544f527adf4997}{
\index{QASC.h@{QASC.h}!QASC\_\-idxAemGet@{QASC\_\-idxAemGet}}
\index{QASC\_\-idxAemGet@{QASC\_\-idxAemGet}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-idxAemGet}]{\setlength{\rightskip}{0pt plus 5cm}QASC\_\-idxAemGet (int {\em board}, \/  int {\em channel})}}
\label{QASC_8h_ae71c8800f94962d90544f527adf4997}


Maps an ACD AEM board number and channel into a universal index. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em $>$=0,The}]universal index for the specifed ACD AEM board and channel \item[{\em $<$}]0, Invalid board or channel number\end{description}
\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em board}]This is a value between 0 and 11 corresponding to the the 12 AEM FREE board/cable numbers\begin{itemize}
\item 0 1LA, 1 1RB\item 2 2LA, 3 2LB\item 4 2RA, 5 2RB\item 6 3LA, 7 3RB\item 8 4LA, 9 4LB\item 9 4RA, 10 4RB\end{itemize}
\item[{\em channel}]The channel, 0-18, within each FREE board/cable. \end{description}
\end{Desc}
\hypertarget{QASC_8h_7cb317efd6047d5822f62d1a2ab1d1ca}{
\index{QASC.h@{QASC.h}!QASC\_\-idxGemGet@{QASC\_\-idxGemGet}}
\index{QASC\_\-idxGemGet@{QASC\_\-idxGemGet}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-idxGemGet}]{\setlength{\rightskip}{0pt plus 5cm}QASC\_\-idxGemGet (int {\em group}, \/  int {\em channel})}}
\label{QASC_8h_7cb317efd6047d5822f62d1a2ab1d1ca}


Maps an ACD GEM group and channel into a universal index. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em $>$=0,The}]universal index for the specifed ACD group and channel \item[{\em $<$}]0, Invalid list or channel number\end{description}
\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em group}]This is a value between 0 and 3 corresponding to the 4 words in the GEM record -0 XZ plane -1 YZ plane -2 XY plane -3 RU plane \item[{\em channel}]The channel, 0-31, within each list. The bits are numbered from least significant bit to most significant bit \end{description}
\end{Desc}
\hypertarget{QASC_8h_e0afab546828ae4ffafb70c91eeadcb3}{
\index{QASC.h@{QASC.h}!QASC\_\-sizeof@{QASC\_\-sizeof}}
\index{QASC\_\-sizeof@{QASC\_\-sizeof}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-sizeof}]{\setlength{\rightskip}{0pt plus 5cm}int QASC\_\-sizeof (void $\ast$ {\em must\_\-be\_\-null})}}
\label{QASC_8h_e0afab546828ae4ffafb70c91eeadcb3}


Return the size, in bytes, of the buffer needed to handle a QASC datagram. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em The}]size, in bytes, of the buffer needed to handle a QASC datagram \end{description}
\end{Desc}


Referenced by QASC\_\-construct().\hypertarget{QASC_8h_be7fe1f56c84b075aa1229f0bbf019b6}{
\index{QASC.h@{QASC.h}!QASC\_\-updateAtContribution@{QASC\_\-updateAtContribution}}
\index{QASC\_\-updateAtContribution@{QASC\_\-updateAtContribution}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-updateAtContribution}]{\setlength{\rightskip}{0pt plus 5cm}int QASC\_\-updateAtContribution ({\bf QASC} $\ast$ {\em qasc}, \/  const LSF\_\-contribution $\ast$ {\em ctb})}}
\label{QASC_8h_be7fe1f56c84b075aa1229f0bbf019b6}


Updates the context at datagram time. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em If}]have a statistics sample contribution, the number of records in the contribution. \item[{\em $>$0,if}]have a record contributor \item[{\em =0,if}]have the contribution context \item[{\em -1,if}]unrecognized\end{description}
\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The statistics context to update. \item[{\em ctb}]The statistics contribution \end{description}
\end{Desc}


References \_\-QSSP\_\-ctxKeys::cfg, \_\-QSSP\_\-ctxIds::cfg, \_\-QASC\_\-ctx::com, \_\-QASC::ctx, \_\-QSSP\_\-ctx::dgm, \_\-QASC::dgm\_\-version, \_\-QSSP\_\-ctxIds::handler, \_\-QSSP\_\-ctx::id, \_\-QSSP\_\-ctx::key, \_\-QSSP\_\-ctxKeys::master, QASC\_\-expand(), and \_\-QSSP\_\-ctxKeys::sbs.\hypertarget{QASC_8h_a46f4e86e1d5ef865ad5c088666a9a37}{
\index{QASC.h@{QASC.h}!QASC\_\-updateAtDatagram@{QASC\_\-updateAtDatagram}}
\index{QASC\_\-updateAtDatagram@{QASC\_\-updateAtDatagram}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-updateAtDatagram}]{\setlength{\rightskip}{0pt plus 5cm}const LSF\_\-contribution $\ast$ QASC\_\-updateAtDatagram ({\bf QASC} $\ast$ {\em qasc}, \/  const LSF\_\-datagram $\ast$ {\em dgm})}}
\label{QASC_8h_a46f4e86e1d5ef865ad5c088666a9a37}


Updates the context at datagram time. 

\begin{Desc}
\item[Returns:]The contribution to resume processsing at\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The statistics context to update. \item[{\em dgm}]The statistics datagram \end{description}
\end{Desc}


References \_\-QASC\_\-ctx::com, \_\-QASC::ctx, \_\-QASC::cumulative, \_\-QSSP\_\-ctx::dgm, \_\-QASC::dgm\_\-version, \_\-QSSP\_\-ctx::files, QSSP\_\-ctxUpdateAtDatagram(), and \_\-QASC\_\-ctx::version.\hypertarget{QASC_8h_6b6cf2d96686a3614fb328c8349088b4}{
\index{QASC.h@{QASC.h}!QASC\_\-updateAtRecord@{QASC\_\-updateAtRecord}}
\index{QASC\_\-updateAtRecord@{QASC\_\-updateAtRecord}!QASC.h@{QASC.h}}
\subsubsection[{QASC\_\-updateAtRecord}]{\setlength{\rightskip}{0pt plus 5cm}int QASC\_\-updateAtRecord ({\bf QASC} $\ast$ {\em qasc}, \/  const LSF\_\-record $\ast$ {\em rec})}}
\label{QASC_8h_6b6cf2d96686a3614fb328c8349088b4}


Updates the context at record time. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em Non-negative}]values indicate are one of the QASC\_\-type's \item[{\em Negative}]values indicate an unsuccessful update\end{description}
\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em qasc}]The statistics context to update. \item[{\em rec}]The statistics record \end{description}
\end{Desc}


References \_\-QASC::ctx, \_\-QASC\_\-ctx::current, \_\-QASC\_\-sampleV0::type, and \_\-QASC\_\-sample::v0.