\hypertarget{vocMsg_8c}{
\section{vocMsg.c File Reference}
\label{vocMsg_8c}\index{vocMsg.c@{vocMsg.c}}
}
{\tt \#include $<$stdio.h$>$}\par
{\tt \#include $<$string.h$>$}\par
{\tt \#include $<$stddef.h$>$}\par
{\tt \#include $<$stdlib.h$>$}\par
{\tt \#include $<$unistd.h$>$}\par
{\tt \#include $<$ctype.h$>$}\par
{\tt \#include $<$pthread.h$>$}\par
{\tt \#include $<$sys/file.h$>$}\par
{\tt \#include $<$sys/types.h$>$}\par
{\tt \#include $<$sys/socket.h$>$}\par
{\tt \#include $<$sys/select.h$>$}\par
{\tt \#include $<$sys/time.h$>$}\par
{\tt \#include $<$netinet/in.h$>$}\par
{\tt \#include $<$sys/un.h$>$}\par
{\tt \#include $<$errno.h$>$}\par
{\tt \#include $<$signal.h$>$}\par
{\tt \#include $<$netdb.h$>$}\par
{\tt \#include $<$fcntl.h$>$}\par
{\tt \#include $<$sys/uio.h$>$}\par
{\tt \#include \char`\"{}VOClient.h\char`\"{}}\par
\subsection*{Defines}
\begin{CompactItemize}
\item 
\hypertarget{vocMsg_8c_96522681f45fae55d1e17bcb63620e45}{
\#define \textbf{\_\-VOCLIENT\_\-LIB\_\-}}
\label{vocMsg_8c_96522681f45fae55d1e17bcb63620e45}

\item 
\hypertarget{vocMsg_8c_578d5b29868572f072202c1ae23ea3dd}{
\#define \textbf{SELWIDTH}~32}
\label{vocMsg_8c_578d5b29868572f072202c1ae23ea3dd}

\item 
\hypertarget{vocMsg_8c_db119203ebbaf890a9648abbeb59ad92}{
\#define \textbf{SZ\_\-CHUNK}~4096}
\label{vocMsg_8c_db119203ebbaf890a9648abbeb59ad92}

\item 
\hypertarget{vocMsg_8c_d1a1c40536cc314c339296c65d860c83}{
\#define \textbf{SZ\_\-BULKDATA}~1024000}
\label{vocMsg_8c_d1a1c40536cc314c339296c65d860c83}

\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_a36229a2ccfb8e7a446bcf8fd66e56e5}{msg\_\-newCallMsg} (ObjectID objid, char $\ast$method, int nparams)
\begin{CompactList}\small\item\em Create a CALL message structure initialized w/ parameters. \item\end{CompactList}\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_517cadcc8f9fcdf4133f7cacf629ca4a}{msg\_\-newResultMsg} (int status, int type, int nitems)
\begin{CompactList}\small\item\em Create a RESULT message structure initialized w/ parameters. \item\end{CompactList}\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_77b1550e78504576d33c763da2e0e10e}{msg\_\-newMsg} (char $\ast$msgclass, char $\ast$str)
\begin{CompactList}\small\item\em Create a MSG message initialized w/ parameters. \item\end{CompactList}\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_e894a9cdf87bb390cddd090447d2d644}{msg\_\-shutdownMsg} ()
\begin{CompactList}\small\item\em Create a END message to shutdown the server. \item\end{CompactList}\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_3183a0065ee97668b3a96dff25b919c4}{msg\_\-quitMsg} ()
\begin{CompactList}\small\item\em Create a QUIT message. \item\end{CompactList}\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_b97f1775026d5eaf7de3e03de6e94f1e}{msg\_\-ackMsg} ()
\begin{CompactList}\small\item\em Create an ACK message. \item\end{CompactList}\item 
vocMsg\_\-t $\ast$ \hyperlink{vocMsg_8c_3cc1a4a8e24b8322ac8a2b0f6e151134}{msg\_\-noackMsg} ()
\begin{CompactList}\small\item\em Create a NOACK message. \item\end{CompactList}\item 
vocRes\_\-t $\ast$ \hyperlink{vocMsg_8c_35bfd91fb870b9e42398c2c77099a486}{msg\_\-sendMsg} (int fd, vocMsg\_\-t $\ast$msg)
\begin{CompactList}\small\item\em Send the message to the VOClient server. \item\end{CompactList}\item 
int \hyperlink{vocMsg_8c_1aec8e19abd5f1741434bc0e70823965}{msg\_\-sendRawMsg} (int fd, vocMsg\_\-t $\ast$msg)
\begin{CompactList}\small\item\em Send the message to the VOClient server. \item\end{CompactList}\item 
vocRes\_\-t $\ast$ \hyperlink{vocMsg_8c_c6db5a0bf755a1637562ab4a314c5468}{msg\_\-getResult} (int fd)
\begin{CompactList}\small\item\em Read and parse a result message. \item\end{CompactList}\item 
vocRes\_\-t $\ast$ \hyperlink{vocMsg_8c_97a642f02095c629a992c67a7cc09080}{msg\_\-getResultToFile} (int fd, char $\ast$fname, int overwrite)
\begin{CompactList}\small\item\em Read and parse a result message, saving data to named file. \item\end{CompactList}\item 
void \hyperlink{vocMsg_8c_5fb36fa1a1b0bf447771272393e77df2}{msg\_\-addIntParam} (vocMsg\_\-t $\ast$msg, int ival)
\begin{CompactList}\small\item\em Add a int parameter to an outgoing CALL message. \item\end{CompactList}\item 
void \hyperlink{vocMsg_8c_eae320530430c840411cb1c401b88033}{msg\_\-addFloatParam} (vocMsg\_\-t $\ast$msg, double dval)
\begin{CompactList}\small\item\em Add a float parameter to an outgoing CALL message. \item\end{CompactList}\item 
void \hyperlink{vocMsg_8c_4f880a3c986d13c65b7a7d5c49c79707}{msg\_\-addStringParam} (vocMsg\_\-t $\ast$msg, char $\ast$str)
\begin{CompactList}\small\item\em Add a string parameter to an outgoing CALL message. \item\end{CompactList}\item 
void \hyperlink{vocMsg_8c_cf6e8745c00f7d832dcfc275cf43fcf5}{msg\_\-addIntResult} (vocMsg\_\-t $\ast$msg, int ival)
\begin{CompactList}\small\item\em Add a integer value to a RESULT string. \item\end{CompactList}\item 
\hypertarget{vocMsg_8c_a828295a8b60db29870c8bdb1e6922ba}{
void \textbf{msg\_\-addFloatResult} (vocMsg\_\-t $\ast$msg, double dval)}
\label{vocMsg_8c_a828295a8b60db29870c8bdb1e6922ba}

\item 
void \hyperlink{vocMsg_8c_51fb5ca640761a4e517562dee9698fff}{msg\_\-addStringResult} (vocMsg\_\-t $\ast$msg, char $\ast$str)
\begin{CompactList}\small\item\em Add a string value to a RESULT string. \item\end{CompactList}\item 
int \hyperlink{vocMsg_8c_0d9804ce039ea71007d8d500fbf49809}{msg\_\-resultStatus} (vocRes\_\-t $\ast$res)
\begin{CompactList}\small\item\em Get result status. \item\end{CompactList}\item 
int \hyperlink{vocMsg_8c_ec73a99da1108fa9da1a2ff97d235a36}{msg\_\-resultType} (vocRes\_\-t $\ast$res)
\begin{CompactList}\small\item\em Get result type. \item\end{CompactList}\item 
int \hyperlink{vocMsg_8c_8e2098c2d797fc23b8edf7886e65334c}{msg\_\-resultLength} (vocRes\_\-t $\ast$res)
\begin{CompactList}\small\item\em Get result length. \item\end{CompactList}\item 
int \hyperlink{vocMsg_8c_44250b9b039021f88ddf37fbe5361065}{msg\_\-getIntResult} (vocRes\_\-t $\ast$res, int index)
\begin{CompactList}\small\item\em Get an integer result by index. \item\end{CompactList}\item 
double \hyperlink{vocMsg_8c_b060cbd5cfe61864cc91b24080b5c2cd}{msg\_\-getFloatResult} (vocRes\_\-t $\ast$res, int index)
\begin{CompactList}\small\item\em Get a float result by index. \item\end{CompactList}\item 
char $\ast$ \hyperlink{vocMsg_8c_71e1c7c95771d4e6ba986bcf6099d746}{msg\_\-getStringResult} (vocRes\_\-t $\ast$res, int index)
\begin{CompactList}\small\item\em Get a string result by index. \item\end{CompactList}\item 
void $\ast$ \hyperlink{vocMsg_8c_3bce32d52e40e26a9fb0bd57c48e6dbe}{msg\_\-getBuffer} (vocRes\_\-t $\ast$res)
\begin{CompactList}\small\item\em Get result buffer. \item\end{CompactList}\end{CompactItemize}
\subsection*{Variables}
\begin{CompactItemize}
\item 
\hypertarget{vocMsg_8c_e8b9013ac3d6a8f93991444d8c8c5919}{
VOClient $\ast$ \textbf{vo}}
\label{vocMsg_8c_e8b9013ac3d6a8f93991444d8c8c5919}

\end{CompactItemize}


\label{_details}
\hypertarget{_details}{}
\subsection{Detailed Description}
VOCMSG.C -- VOClient Messaging Interface. This interface is used internally to communicate between the API and the VOClient Daemon.

msg = newCallMsg (objid, method, nparams) msg = newResultMsg (status, type, nitems) msg = newMsg (msgclass, str)

msgAddIntParam (msg, ival) msgAddFloatParam (msg, dval) msgAddStringParam (msg, str)

msgAddIntResult (msg, ival) msgAddFloatResult (msg, dval) msgAddStringResult (msg, str)

sendMsg (fd, msg) freeMsg (msg)

res = getResult (fd) \# for reading RESULT msgs freeResult (res)

stat = resultStatus (res) type = resultType (res) nitems = resultLength (res)

ival = getIntResult (res, index) dval = getFloatResult (res, index) str = getStringResult (res, index)

\begin{Desc}
\item[Author:]Michael Fitzpatrick \end{Desc}
\begin{Desc}
\item[Version:]June 2006 \end{Desc}


\subsection{Function Documentation}
\hypertarget{vocMsg_8c_b97f1775026d5eaf7de3e03de6e94f1e}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-ackMsg@{msg\_\-ackMsg}}
\index{msg\_\-ackMsg@{msg\_\-ackMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-ackMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-ackMsg (void)}}
\label{vocMsg_8c_b97f1775026d5eaf7de3e03de6e94f1e}


Create an ACK message. 

MSG\_\-ACKMSG -- Create an ACK message to the VOClient Server.

\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_eae320530430c840411cb1c401b88033}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-addFloatParam@{msg\_\-addFloatParam}}
\index{msg\_\-addFloatParam@{msg\_\-addFloatParam}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-addFloatParam}]{\setlength{\rightskip}{0pt plus 5cm}msg\_\-addFloatParam (vocMsg\_\-t $\ast$ {\em msg}, \/  double {\em dval})}}
\label{vocMsg_8c_eae320530430c840411cb1c401b88033}


Add a float parameter to an outgoing CALL message. 

MSG\_\-ADDFLOATPARAM -- Add a float parameter to an outgoing CALL message. We simply append to an existing message.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]outgoing message \item[{\em dval}]double value \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]nothing \end{Desc}
\hypertarget{vocMsg_8c_5fb36fa1a1b0bf447771272393e77df2}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-addIntParam@{msg\_\-addIntParam}}
\index{msg\_\-addIntParam@{msg\_\-addIntParam}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-addIntParam}]{\setlength{\rightskip}{0pt plus 5cm}msg\_\-addIntParam (vocMsg\_\-t $\ast$ {\em msg}, \/  int {\em ival})}}
\label{vocMsg_8c_5fb36fa1a1b0bf447771272393e77df2}


Add a int parameter to an outgoing CALL message. 

MSG\_\-ADDINTPARAM -- Add a int parameter to an outgoing CALL message. We simply append to an existing message.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]outgoing message \item[{\em ival}]integer value \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]nothing \end{Desc}
\hypertarget{vocMsg_8c_cf6e8745c00f7d832dcfc275cf43fcf5}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-addIntResult@{msg\_\-addIntResult}}
\index{msg\_\-addIntResult@{msg\_\-addIntResult}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-addIntResult}]{\setlength{\rightskip}{0pt plus 5cm}msg\_\-addIntResult (vocMsg\_\-t $\ast$ {\em msg}, \/  int {\em ival})}}
\label{vocMsg_8c_cf6e8745c00f7d832dcfc275cf43fcf5}


Add a integer value to a RESULT string. 

MSG\_\-ADDINTRESULT -- Add an integer value to a RESULT string.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]result string \item[{\em ival}]integer value \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]nothing \end{Desc}
\hypertarget{vocMsg_8c_4f880a3c986d13c65b7a7d5c49c79707}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-addStringParam@{msg\_\-addStringParam}}
\index{msg\_\-addStringParam@{msg\_\-addStringParam}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-addStringParam}]{\setlength{\rightskip}{0pt plus 5cm}msg\_\-addStringParam (vocMsg\_\-t $\ast$ {\em msg}, \/  char $\ast$ {\em str})}}
\label{vocMsg_8c_4f880a3c986d13c65b7a7d5c49c79707}


Add a string parameter to an outgoing CALL message. 

MSG\_\-ADDSTRINGPARAM -- Add a string parameter to an outgoing CALL message. We simply append to an existing message.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]outgoing message \item[{\em str}]string value \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]nothing \end{Desc}
\hypertarget{vocMsg_8c_51fb5ca640761a4e517562dee9698fff}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-addStringResult@{msg\_\-addStringResult}}
\index{msg\_\-addStringResult@{msg\_\-addStringResult}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-addStringResult}]{\setlength{\rightskip}{0pt plus 5cm}msg\_\-addStringResult (vocMsg\_\-t $\ast$ {\em msg}, \/  char $\ast$ {\em str})}}
\label{vocMsg_8c_51fb5ca640761a4e517562dee9698fff}


Add a string value to a RESULT string. 

MSG\_\-ADDSTRINGRESULT -- Add a string value to a RESULT string.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]result string \item[{\em str}]string value \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]nothing \end{Desc}
\hypertarget{vocMsg_8c_3bce32d52e40e26a9fb0bd57c48e6dbe}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-getBuffer@{msg\_\-getBuffer}}
\index{msg\_\-getBuffer@{msg\_\-getBuffer}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-getBuffer}]{\setlength{\rightskip}{0pt plus 5cm}len msg\_\-getBuffer (vocRes\_\-t $\ast$ {\em res})}}
\label{vocMsg_8c_3bce32d52e40e26a9fb0bd57c48e6dbe}


Get result buffer. 

MSG\_\-GETBUFFER -- Get result buffer.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em res}]result message \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]pointer to result buffer \end{Desc}
\hypertarget{vocMsg_8c_b060cbd5cfe61864cc91b24080b5c2cd}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-getFloatResult@{msg\_\-getFloatResult}}
\index{msg\_\-getFloatResult@{msg\_\-getFloatResult}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-getFloatResult}]{\setlength{\rightskip}{0pt plus 5cm}dval msg\_\-getFloatResult (vocRes\_\-t $\ast$ {\em res}, \/  int {\em index})}}
\label{vocMsg_8c_b060cbd5cfe61864cc91b24080b5c2cd}


Get a float result by index. 

MSG\_\-GETFLOATRESULT -- Get a float result by index.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em res}]result message \item[{\em index}]result index \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]float value \end{Desc}
\hypertarget{vocMsg_8c_44250b9b039021f88ddf37fbe5361065}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-getIntResult@{msg\_\-getIntResult}}
\index{msg\_\-getIntResult@{msg\_\-getIntResult}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-getIntResult}]{\setlength{\rightskip}{0pt plus 5cm}ival msg\_\-getIntResult (vocRes\_\-t $\ast$ {\em res}, \/  int {\em index})}}
\label{vocMsg_8c_44250b9b039021f88ddf37fbe5361065}


Get an integer result by index. 

MSG\_\-GETINTRESULT -- Get an integer result by index.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em res}]result message \item[{\em index}]result index \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]integer value \end{Desc}
\hypertarget{vocMsg_8c_c6db5a0bf755a1637562ab4a314c5468}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-getResult@{msg\_\-getResult}}
\index{msg\_\-getResult@{msg\_\-getResult}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-getResult}]{\setlength{\rightskip}{0pt plus 5cm}res msg\_\-getResult (int {\em fd})}}
\label{vocMsg_8c_c6db5a0bf755a1637562ab4a314c5468}


Read and parse a result message. 

MSG\_\-GETRESULT -- Read and parse a result message.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em fd}]message channel descriptor \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]result message object \end{Desc}
\hypertarget{vocMsg_8c_97a642f02095c629a992c67a7cc09080}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-getResultToFile@{msg\_\-getResultToFile}}
\index{msg\_\-getResultToFile@{msg\_\-getResultToFile}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-getResultToFile}]{\setlength{\rightskip}{0pt plus 5cm}res msg\_\-getResultToFile (int {\em fd}, \/  char $\ast$ {\em fname}, \/  int {\em overwrite})}}
\label{vocMsg_8c_97a642f02095c629a992c67a7cc09080}


Read and parse a result message, saving data to named file. 

MSG\_\-GETRESULTTOFILE -- Read and parse a result message, save bulk data to the named file.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em fd}]message channel descriptor \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]result message object \end{Desc}
\hypertarget{vocMsg_8c_71e1c7c95771d4e6ba986bcf6099d746}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-getStringResult@{msg\_\-getStringResult}}
\index{msg\_\-getStringResult@{msg\_\-getStringResult}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-getStringResult}]{\setlength{\rightskip}{0pt plus 5cm}str msg\_\-getStringResult (vocRes\_\-t $\ast$ {\em res}, \/  int {\em index})}}
\label{vocMsg_8c_71e1c7c95771d4e6ba986bcf6099d746}


Get a string result by index. 

MSG\_\-GETSTRINGRESULT -- Get a string result by index.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em res}]result message \item[{\em index}]result index \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]string value \end{Desc}
\hypertarget{vocMsg_8c_a36229a2ccfb8e7a446bcf8fd66e56e5}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-newCallMsg@{msg\_\-newCallMsg}}
\index{msg\_\-newCallMsg@{msg\_\-newCallMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-newCallMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-newCallMsg (ObjectID {\em objid}, \/  char $\ast$ {\em method}, \/  int {\em nparams})}}
\label{vocMsg_8c_a36229a2ccfb8e7a446bcf8fd66e56e5}


Create a CALL message structure initialized w/ parameters. 

MSG\_\-NEWCALLMSG -- Create a CALL message structure and initialize with the requested parameters. Structures are allocated dynamically, the caller is responsible for freeing the struct when finished.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em objid}]object id \item[{\em method}]name of method to call \item[{\em nparams}]number of parameters in message \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_77b1550e78504576d33c763da2e0e10e}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-newMsg@{msg\_\-newMsg}}
\index{msg\_\-newMsg@{msg\_\-newMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-newMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-newMsg (char $\ast$ {\em msgclass}, \/  char $\ast$ {\em str})}}
\label{vocMsg_8c_77b1550e78504576d33c763da2e0e10e}


Create a MSG message initialized w/ parameters. 

MSG\_\-NEWMSG -- Create a new MSG message context and initialize with the requested parameters. The caller is responsible for freeing the struct when complete.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msgclass}]message class \item[{\em str}]message string \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_517cadcc8f9fcdf4133f7cacf629ca4a}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-newResultMsg@{msg\_\-newResultMsg}}
\index{msg\_\-newResultMsg@{msg\_\-newResultMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-newResultMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-newResultMsg (int {\em status}, \/  int {\em type}, \/  int {\em nitems})}}
\label{vocMsg_8c_517cadcc8f9fcdf4133f7cacf629ca4a}


Create a RESULT message structure initialized w/ parameters. 

MSG\_\-NEWRESULTMSG -- Create a new RESULT message context and initialize with the requested parameters. The caller is responsible for freeing the struct when complete.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em status}]result status \item[{\em type}]result type \item[{\em nitems}]number of items in message \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_3cc1a4a8e24b8322ac8a2b0f6e151134}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-noackMsg@{msg\_\-noackMsg}}
\index{msg\_\-noackMsg@{msg\_\-noackMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-noackMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-noackMsg (void)}}
\label{vocMsg_8c_3cc1a4a8e24b8322ac8a2b0f6e151134}


Create a NOACK message. 

MSG\_\-NOACKMSG -- Create an NO-ACK message to the VOClient Server.

\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_3183a0065ee97668b3a96dff25b919c4}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-quitMsg@{msg\_\-quitMsg}}
\index{msg\_\-quitMsg@{msg\_\-quitMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-quitMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-quitMsg (void)}}
\label{vocMsg_8c_3183a0065ee97668b3a96dff25b919c4}


Create a QUIT message. 

MSG\_\-QUITMSG -- Create a QUIT message to the VOClient Server to tell it we're leaving but that it should keep running

\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_8e2098c2d797fc23b8edf7886e65334c}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-resultLength@{msg\_\-resultLength}}
\index{msg\_\-resultLength@{msg\_\-resultLength}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-resultLength}]{\setlength{\rightskip}{0pt plus 5cm}len msg\_\-resultLength (vocRes\_\-t $\ast$ {\em res})}}
\label{vocMsg_8c_8e2098c2d797fc23b8edf7886e65334c}


Get result length. 

MSG\_\-RESULTLENGTH -- Get result length.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]result string \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]result length \end{Desc}
\hypertarget{vocMsg_8c_0d9804ce039ea71007d8d500fbf49809}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-resultStatus@{msg\_\-resultStatus}}
\index{msg\_\-resultStatus@{msg\_\-resultStatus}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-resultStatus}]{\setlength{\rightskip}{0pt plus 5cm}status msg\_\-resultStatus (vocRes\_\-t $\ast$ {\em res})}}
\label{vocMsg_8c_0d9804ce039ea71007d8d500fbf49809}


Get result status. 

MSG\_\-RESULTSTATUS -- Get result status.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]result string \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]result status \end{Desc}
\hypertarget{vocMsg_8c_ec73a99da1108fa9da1a2ff97d235a36}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-resultType@{msg\_\-resultType}}
\index{msg\_\-resultType@{msg\_\-resultType}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-resultType}]{\setlength{\rightskip}{0pt plus 5cm}type msg\_\-resultType (vocRes\_\-t $\ast$ {\em res})}}
\label{vocMsg_8c_ec73a99da1108fa9da1a2ff97d235a36}


Get result type. 

MSG\_\-RESULTTYPE -- Get result type.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em msg}]result string \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]result type \end{Desc}
\hypertarget{vocMsg_8c_35bfd91fb870b9e42398c2c77099a486}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-sendMsg@{msg\_\-sendMsg}}
\index{msg\_\-sendMsg@{msg\_\-sendMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-sendMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-sendMsg (int {\em fd}, \/  vocMsg\_\-t $\ast$ {\em msg})}}
\label{vocMsg_8c_35bfd91fb870b9e42398c2c77099a486}


Send the message to the VOClient server. 

MSG\_\-SENDMSG -- Send the message to the VOClient Server and wait for the ACK. The simple form of the message returns the result handle, for the raw message we only send to allow to a bullk return object.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em fd}]message channel descriptor \item[{\em str}]message string \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_1aec8e19abd5f1741434bc0e70823965}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-sendRawMsg@{msg\_\-sendRawMsg}}
\index{msg\_\-sendRawMsg@{msg\_\-sendRawMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-sendRawMsg}]{\setlength{\rightskip}{0pt plus 5cm}len msg\_\-sendRawMsg (int {\em fd}, \/  vocMsg\_\-t $\ast$ {\em msg})}}
\label{vocMsg_8c_1aec8e19abd5f1741434bc0e70823965}


Send the message to the VOClient server. 

MSG\_\-SENDRAWMSG -- Send the message to the VOClient Server.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em fd}]message channel descriptor \item[{\em str}]message string \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a new message object \end{Desc}
\hypertarget{vocMsg_8c_e894a9cdf87bb390cddd090447d2d644}{
\index{vocMsg.c@{vocMsg.c}!msg\_\-shutdownMsg@{msg\_\-shutdownMsg}}
\index{msg\_\-shutdownMsg@{msg\_\-shutdownMsg}!vocMsg.c@{vocMsg.c}}
\subsubsection[{msg\_\-shutdownMsg}]{\setlength{\rightskip}{0pt plus 5cm}msg msg\_\-shutdownMsg (void)}}
\label{vocMsg_8c_e894a9cdf87bb390cddd090447d2d644}


Create a END message to shutdown the server. 

MSG\_\-SHUTDOWNMSG -- Create an END message to the VOClient Server to shut it down.

\begin{Desc}
\item[Returns:]a new message object \end{Desc}
