\hypertarget{nmsgLib_8h}{
\section{nmsgLib.h File Reference}
\label{nmsgLib_8h}\index{nmsgLib.h@{nmsgLib.h}}
}
Definitions for the network message routines. 

\subsection*{Classes}
\begin{CompactItemize}
\item 
struct \hyperlink{structnmsgHead__s}{nmsgHead\_\-s}
\begin{CompactList}\small\item\em Network message header. \item\end{CompactList}\item 
struct \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-s}
\begin{CompactList}\small\item\em Prototype message buffer. \item\end{CompactList}\item 
struct \hyperlink{structnmsgStats__s}{nmsgStats\_\-s}
\begin{CompactList}\small\item\em Network statistics block. \item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{nmsgLib_8h_61cce7497f46af25695866e7e2e9d34c}{
typedef struct \hyperlink{structnmsgHead__s}{nmsgHead\_\-s} \hyperlink{nmsgLib_8h_61cce7497f46af25695866e7e2e9d34c}{nmsgHead\_\-t}}
\label{nmsgLib_8h_61cce7497f46af25695866e7e2e9d34c}

\begin{CompactList}\small\item\em Network message header. \item\end{CompactList}\item 
\hypertarget{nmsgLib_8h_4f8244269a69292602cae39bc469e9a7}{
typedef struct \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-s} \hyperlink{nmsgLib_8h_4f8244269a69292602cae39bc469e9a7}{nmsgBuff\_\-t}}
\label{nmsgLib_8h_4f8244269a69292602cae39bc469e9a7}

\begin{CompactList}\small\item\em Prototype message buffer. \item\end{CompactList}\item 
\hypertarget{nmsgLib_8h_c85f08cb8543a739a1a41433f69429df}{
typedef struct \hyperlink{structnmsgStats__s}{nmsgStats\_\-s} \hyperlink{nmsgLib_8h_c85f08cb8543a739a1a41433f69429df}{nmsgStats\_\-t}}
\label{nmsgLib_8h_c85f08cb8543a739a1a41433f69429df}

\begin{CompactList}\small\item\em Network statistics block. \item\end{CompactList}\item 
typedef int \hyperlink{nmsgLib_8h_7fb49de7485ac2f9380cf3ce0bb8d4f9}{nmsgConnCB\_\-t} (void $\ast$hndl, void $\ast$$\ast$uParm)
\begin{CompactList}\small\item\em Connect callback routine. \item\end{CompactList}\item 
typedef int \hyperlink{nmsgLib_8h_cd045829aacd8819c592ec5ea3492a7f}{nmsgDiscCB\_\-t} (void $\ast$hndl, void $\ast$$\ast$uParm)
\begin{CompactList}\small\item\em Disconnect callback routine. \item\end{CompactList}\item 
typedef int \hyperlink{nmsgLib_8h_5ae50803942223e24a3bd3406fde75a8}{nmsgRcveCB\_\-t} (void $\ast$hndl, void $\ast$$\ast$uParm, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$msg, char $\ast$$\ast$dataP)
\begin{CompactList}\small\item\em Receive message callback routine. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \{ \hyperlink{nmsgLib_8h_06fc87d81c62e9abb8790b6e5713c55b81d73c419ddc086aff6e1709931bd97e}{NMSG\_\-MAGIC} =  0x6e4d7347
 \}
\begin{CompactList}\small\item\em Magic word value definition. \item\end{CompactList}\item 
enum \{ \par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71db034fb71b58efa3c22334ad2d135de}{NMSG\_\-SUCCESS} =  0, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7beb363712c3fde03c7df20d4398d9431}{NMSG\_\-NOMEMORY} =  1, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7a3bad504b386c317f294b621512c3bcf}{NMSG\_\-UNKNHOST} =  2, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c0b973dac2ee9009867af14819e6fa8b}{NMSG\_\-NOSEMCRE} =  3, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b72714fc92ead855d9985bd33603eeca51}{NMSG\_\-NOTASKCR} =  4, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f6395448d601e741cd8aed62e64bcd19}{NMSG\_\-NOTCONN} =  5, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7a18397b9595f72445ca510fc691e1a2a}{NMSG\_\-INVSEMA} =  6, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b720268a02ec5dfff93e7fbd0865be3584}{NMSG\_\-DISCONN} =  7, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7ac4cc2d6b7489b3b89aadd8a1ca8772f}{NMSG\_\-TIMEDOUT} =  8, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7074afdda8bb6e734c5bbc7525da7c1b6}{NMSG\_\-INVFDESC} =  9, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b76ddede57796a3815233f7d7860c20b98}{NMSG\_\-INVHNDL} =  10, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7955b919068a55f4ce7d0685af0586989}{NMSG\_\-OPNTPERM} =  11, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79c6c746524b1cd6bc631bdb2498b54d5}{NMSG\_\-FILENFND} =  12, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7fe80cd179aa6759eb7db4e6a9b469269}{NMSG\_\-IOERROR} =  13, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c83fc57efef09f587d2fceb3271ee32a}{NMSG\_\-NOACCESS} =  14, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b741a26527947077689389aedc51dcaa09}{NMSG\_\-NOSCHDEV} =  15, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b73126c70f201f04fb9ac1f43c0acd775a}{NMSG\_\-NOTADIR} =  16, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b61e78ecdff61623e70d78f444188ea9}{NMSG\_\-NOTAFILE} =  17, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79441a297a05977037a2dd1b13459a825}{NMSG\_\-XSFILDVC} =  18, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7949a02dcc847e9fb1735f3d8e4816e3c}{NMSG\_\-XSFILOPN} =  19, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79a0faa3052997693fdb842c8177f4400}{NMSG\_\-NAMELONG} =  20, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7dc67790cddb8f339c357783cdcec43b2}{NMSG\_\-RDONLYFS} =  21, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b775fc83695ade65b22696284a4f9ad14b}{NMSG\_\-NETUNRCH} =  22, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c454669010e0337439b71579f33ebdaf}{NMSG\_\-NETRESET} =  23, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b750a75359b9d32e0bfd52c09747ab70af}{NMSG\_\-CONNABRT} =  24, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7443480eacabe5e6e7377744a1fcfeb8c}{NMSG\_\-CONNRSET} =  25, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b716a1078c317db6681215c07b2f964a2e}{NMSG\_\-NOBUFSPC} =  26, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7dd34f544c2b8b2e624faf09c85091970}{NMSG\_\-SOCKCONN} =  27, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71917848820f8e807b019cb126e665ada}{NMSG\_\-SNOTCONN} =  28, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7cf1c942075a5ea9590b828e0e6fcf5ea}{NMSG\_\-SHUTDOWN} =  29, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7ff2e4c41be507a5ba1bc0dd06bb624e3}{NMSG\_\-CONNTMO} =  30, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7e201a3ce435ca7e233d53c56d3ee679a}{NMSG\_\-CONNREF} =  31, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f4272b3509055838dc04ff598790d147}{NMSG\_\-NETDOWN} =  32, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b74e76752970a5fa8102343bc053f1cd12}{NMSG\_\-TOODEEP} =  33, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b72a72a7162dc72c11747cf4f8b9f72427}{NMSG\_\-HSTUNRCH} =  34, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b755c823d5864d9dc40a91437991b1b589}{NMSG\_\-HOSTDOWN} =  35, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b777c846efadae4cb403857d7bf3eb5321}{NMSG\_\-UNSUPPRO} =  36, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7572954f0210bd4a84a18c1140936c8c9}{NMSG\_\-UNSUPPRF} =  37, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b785f7be650ea4feb60aeb9d0aab250914}{NMSG\_\-PROTOTYP} =  38, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b76dbfa089fb34a88ed9d1d5d989a8531e}{NMSG\_\-UNSUPADF} =  39, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b92274c74a456a8daad7cd1028b49a12}{NMSG\_\-NOSTREAM} =  40, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71c4d86d57ef363ed17cbfbd347868277}{NMSG\_\-ADDRUSED} =  41, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f303212c1ee70b03cbdfd7647e014f20}{NMSG\_\-ADDRUNAV} =  42, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7de331e150815b585a1c3c7b09cc741cc}{NMSG\_\-ALREADY} =  43, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b74b9ad18fb66554dd67f91e1a6a2da2df}{NMSG\_\-BADFNMBR} =  44, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7166a769825b2b95ff08fb8c863c1a004}{NMSG\_\-INPROGRS} =  45, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b777aace89cdcde5bc1258771bbcc06809}{NMSG\_\-OPRNINTR} =  46, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b78b2dbbb5a35a2c48892f4f8632c06b96}{NMSG\_\-INVDARG} =  47, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b70f9d869e98bafb0456a3a51876ea654e}{NMSG\_\-NOTASOCK} =  48, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b75d6d7c4792ffc723fd977c9e3047f52d}{NMSG\_\-OPNTSUPP} =  49, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71934a4cb83b104b839d8c22124f6dc84}{NMSG\_\-BADADDRS} =  50, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b709d59fe8b06ea4a88875b128caa1aadd}{NMSG\_\-PROTOERR} =  51, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b72e5bd574d9f41282ba1730c7cc60ba}{NMSG\_\-TRYAGAIN} =  52, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b77584a2c02e335ac53c01351c97642df9}{NMSG\_\-MSGLONG} =  53, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7e765a3182358d4fa61e78ea93a60b146}{NMSG\_\-BRKNPIPE} =  54, 
\par
\hyperlink{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c70c1417d7f1714dd169666314b24f74}{NMSG\_\-UNKNERR} =  55
 \}
\begin{CompactList}\small\item\em Function return codes. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
int \hyperlink{nmsgLib_8h_25bf2c1f0b7a13933dd287217f2ac91f}{nmsgCheck} (void $\ast$hndl)
\begin{CompactList}\small\item\em Check a network connection handle. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_5825f59b8d3fe194da574ca42123ca38}{nmsgClose} (void $\ast$hndl, int force)
\begin{CompactList}\small\item\em Terminate a message client or server. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_b260e1d6c2b2a5f9c5c9e7679f1825ea}{nmsgConnect} (void $\ast$$\ast$hndl, const char $\ast$node, int port)
\begin{CompactList}\small\item\em Connect to a message server. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_760bb4dc4613df085bb7fd2f3d3ed093}{nmsgConnectAsy} (void $\ast$$\ast$hndl, const char $\ast$node, int port, int prio, \hyperlink{nmsgLib_8h_7fb49de7485ac2f9380cf3ce0bb8d4f9}{nmsgConnCB\_\-t} connRtn, \hyperlink{nmsgLib_8h_cd045829aacd8819c592ec5ea3492a7f}{nmsgDiscCB\_\-t} discRtn, void $\ast$uParm)
\begin{CompactList}\small\item\em Connect asynchronously (robustly) to a message server. \item\end{CompactList}\item 
const char $\ast$ \hyperlink{nmsgLib_8h_fe1bfca2cf3723a010fcb51e8df9012a}{nmsgErrorMsg} (int status)
\begin{CompactList}\small\item\em Obtain the text of an error message. \item\end{CompactList}\item 
void \hyperlink{nmsgLib_8h_ac6d5bd6e40a2b55f09e57d4b13bc63a}{nmsgErrorReport} (int status, const char $\ast$func)
\begin{CompactList}\small\item\em Display an error message. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_55b2221322b47b41f9404c23fe59fcaa}{nmsgListen} (void $\ast$$\ast$hndl, int port, int maxConn, int maxData, int prio, \hyperlink{nmsgLib_8h_7fb49de7485ac2f9380cf3ce0bb8d4f9}{nmsgConnCB\_\-t} connRtn, \hyperlink{nmsgLib_8h_cd045829aacd8819c592ec5ea3492a7f}{nmsgDiscCB\_\-t} discRtn, \hyperlink{nmsgLib_8h_5ae50803942223e24a3bd3406fde75a8}{nmsgRcveCB\_\-t} rcveRtn, void $\ast$uParm)
\begin{CompactList}\small\item\em Establish a message server. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_f38393f16a9ad082e681ef440cddbe46}{nmsgRemoteIP} (void $\ast$hndl, int $\ast$ip)
\begin{CompactList}\small\item\em Get the IP address of the remote end. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_c02e377443f8404d36f8beed75a2e622}{nmsgSend} (void $\ast$hndl, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$msg)
\begin{CompactList}\small\item\em Send a message and return immediately. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_f66406f1031d4de9f4125241f069b3e5}{nmsgSendW} (void $\ast$hndl, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$msg, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$$\ast$replyP, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$reply, int maxData)
\begin{CompactList}\small\item\em Send a message and receive reply. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_a96f2724ad6d35da14aad7666cc4d68c}{nmsgStats} (void $\ast$hndl, \hyperlink{structnmsgStats__s}{nmsgStats\_\-t} $\ast$stats)
\begin{CompactList}\small\item\em Get connection statistics. \item\end{CompactList}\item 
int \hyperlink{nmsgLib_8h_d12b00b6a96b50f3c79d88b99917f333}{nmsgWait} (void $\ast$hndl, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$$\ast$replyP, \hyperlink{structnmsgBuff__s}{nmsgBuff\_\-t} $\ast$reply, int maxData)
\begin{CompactList}\small\item\em Wait for a reply to a sent message. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Definitions for the network message routines. 

\begin{Desc}
\item[Author:]Owen H Saxton\end{Desc}
\begin{Desc}
\item[Id]\end{Desc}


\subsection{Typedef Documentation}
\hypertarget{nmsgLib_8h_7fb49de7485ac2f9380cf3ce0bb8d4f9}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgConnCB_t@{nmsgConnCB\_\-t}}
\index{nmsgConnCB_t@{nmsgConnCB\_\-t}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef int {\bf nmsgConnCB\_\-t}(void $\ast$hndl, void $\ast$$\ast$uParm)}}
\label{nmsgLib_8h_7fb49de7485ac2f9380cf3ce0bb8d4f9}


Connect callback routine. 

This routine, if supplied to the listen or asynchronous connection routine, is called whenever a network connection is established.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the network connection.\item[{\em uParm}]The address of a per-connection copy of the user parameter supplied in the call to the listen or connection routine.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em 0}]Accept the connection. \item[{\em -1}]Reject the connection (for listen callback only). \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_cd045829aacd8819c592ec5ea3492a7f}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgDiscCB_t@{nmsgDiscCB\_\-t}}
\index{nmsgDiscCB_t@{nmsgDiscCB\_\-t}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef int {\bf nmsgDiscCB\_\-t}(void $\ast$hndl, void $\ast$$\ast$uParm)}}
\label{nmsgLib_8h_cd045829aacd8819c592ec5ea3492a7f}


Disconnect callback routine. 

This routine, if supplied to the listen or asynchronous connection routine, is called whenever the network connection is broken.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the network connection.\item[{\em uParm}]The address of a per-connection copy of the user parameter supplied in the call to the listen or connection routine.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]The return value is ignored. \end{Desc}
\hypertarget{nmsgLib_8h_5ae50803942223e24a3bd3406fde75a8}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgRcveCB_t@{nmsgRcveCB\_\-t}}
\index{nmsgRcveCB_t@{nmsgRcveCB\_\-t}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef int {\bf nmsgRcveCB\_\-t}(void $\ast$hndl, void $\ast$$\ast$uParm, {\bf nmsgBuff\_\-t} $\ast$msg, char $\ast$$\ast$dataP)}}
\label{nmsgLib_8h_5ae50803942223e24a3bd3406fde75a8}


Receive message callback routine. 

This routine is called whenever a message is received on the server (listener) side of a network connection. It processes the message and generates a reply. Normally the whole reply is placed in the area occupied by the incoming message, and can contain data up to the maximum length established in the original listen call. However, the data portion of the reply may alternatively be supplied in a piece of allocated memory and has no restriction on its size in this case.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the network connection.\item[{\em uParm}]The address of a per-connection copy of the user parameter supplied in the call to the listen routine.\item[{\em msg}]The address of the received message.\item[{\em dataP}]The address of a pointer to optionally receive the address of an alternate data area. This area must have been allocated via a call to malloc().\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]The return value is ignored. \end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{nmsgLib_8h_06fc87d81c62e9abb8790b6e5713c55b}{
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}anonymous enum}}
\label{nmsgLib_8h_06fc87d81c62e9abb8790b6e5713c55b}


Magic word value definition. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{NMSG_MAGIC@{NMSG\_\-MAGIC}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_MAGIC@{NMSG\_\-MAGIC}}\item[{\em 
\hypertarget{nmsgLib_8h_06fc87d81c62e9abb8790b6e5713c55b81d73c419ddc086aff6e1709931bd97e}{
NMSG\_\-MAGIC}
\label{nmsgLib_8h_06fc87d81c62e9abb8790b6e5713c55b81d73c419ddc086aff6e1709931bd97e}
}]\char`\"{}nMsG\char`\"{} \end{description}
\end{Desc}

\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7}{
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}anonymous enum}}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7}


Function return codes. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{NMSG_SUCCESS@{NMSG\_\-SUCCESS}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_SUCCESS@{NMSG\_\-SUCCESS}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71db034fb71b58efa3c22334ad2d135de}{
NMSG\_\-SUCCESS}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71db034fb71b58efa3c22334ad2d135de}
}]Success. \index{NMSG_NOMEMORY@{NMSG\_\-NOMEMORY}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOMEMORY@{NMSG\_\-NOMEMORY}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7beb363712c3fde03c7df20d4398d9431}{
NMSG\_\-NOMEMORY}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7beb363712c3fde03c7df20d4398d9431}
}]Insufficient memory available. \index{NMSG_UNKNHOST@{NMSG\_\-UNKNHOST}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_UNKNHOST@{NMSG\_\-UNKNHOST}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7a3bad504b386c317f294b621512c3bcf}{
NMSG\_\-UNKNHOST}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7a3bad504b386c317f294b621512c3bcf}
}]Unknown host name. \index{NMSG_NOSEMCRE@{NMSG\_\-NOSEMCRE}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOSEMCRE@{NMSG\_\-NOSEMCRE}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c0b973dac2ee9009867af14819e6fa8b}{
NMSG\_\-NOSEMCRE}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c0b973dac2ee9009867af14819e6fa8b}
}]Cannot create semaphore. \index{NMSG_NOTASKCR@{NMSG\_\-NOTASKCR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOTASKCR@{NMSG\_\-NOTASKCR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b72714fc92ead855d9985bd33603eeca51}{
NMSG\_\-NOTASKCR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b72714fc92ead855d9985bd33603eeca51}
}]Cannot create task. \index{NMSG_NOTCONN@{NMSG\_\-NOTCONN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOTCONN@{NMSG\_\-NOTCONN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f6395448d601e741cd8aed62e64bcd19}{
NMSG\_\-NOTCONN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f6395448d601e741cd8aed62e64bcd19}
}]Not connected to server. \index{NMSG_INVSEMA@{NMSG\_\-INVSEMA}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_INVSEMA@{NMSG\_\-INVSEMA}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7a18397b9595f72445ca510fc691e1a2a}{
NMSG\_\-INVSEMA}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7a18397b9595f72445ca510fc691e1a2a}
}]Invalid semaphore. \index{NMSG_DISCONN@{NMSG\_\-DISCONN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_DISCONN@{NMSG\_\-DISCONN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b720268a02ec5dfff93e7fbd0865be3584}{
NMSG\_\-DISCONN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b720268a02ec5dfff93e7fbd0865be3584}
}]Server connection was broken. \index{NMSG_TIMEDOUT@{NMSG\_\-TIMEDOUT}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_TIMEDOUT@{NMSG\_\-TIMEDOUT}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7ac4cc2d6b7489b3b89aadd8a1ca8772f}{
NMSG\_\-TIMEDOUT}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7ac4cc2d6b7489b3b89aadd8a1ca8772f}
}]Timed out during connection. \index{NMSG_INVFDESC@{NMSG\_\-INVFDESC}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_INVFDESC@{NMSG\_\-INVFDESC}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7074afdda8bb6e734c5bbc7525da7c1b6}{
NMSG\_\-INVFDESC}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7074afdda8bb6e734c5bbc7525da7c1b6}
}]Invalid file descriptor. \index{NMSG_INVHNDL@{NMSG\_\-INVHNDL}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_INVHNDL@{NMSG\_\-INVHNDL}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b76ddede57796a3815233f7d7860c20b98}{
NMSG\_\-INVHNDL}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b76ddede57796a3815233f7d7860c20b98}
}]Invalid handle supplied. \index{NMSG_OPNTPERM@{NMSG\_\-OPNTPERM}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_OPNTPERM@{NMSG\_\-OPNTPERM}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7955b919068a55f4ce7d0685af0586989}{
NMSG\_\-OPNTPERM}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7955b919068a55f4ce7d0685af0586989}
}]Operation not permitted. \index{NMSG_FILENFND@{NMSG\_\-FILENFND}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_FILENFND@{NMSG\_\-FILENFND}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79c6c746524b1cd6bc631bdb2498b54d5}{
NMSG\_\-FILENFND}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79c6c746524b1cd6bc631bdb2498b54d5}
}]File not found. \index{NMSG_IOERROR@{NMSG\_\-IOERROR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_IOERROR@{NMSG\_\-IOERROR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7fe80cd179aa6759eb7db4e6a9b469269}{
NMSG\_\-IOERROR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7fe80cd179aa6759eb7db4e6a9b469269}
}]I/O error. \index{NMSG_NOACCESS@{NMSG\_\-NOACCESS}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOACCESS@{NMSG\_\-NOACCESS}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c83fc57efef09f587d2fceb3271ee32a}{
NMSG\_\-NOACCESS}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c83fc57efef09f587d2fceb3271ee32a}
}]Access not permitted. \index{NMSG_NOSCHDEV@{NMSG\_\-NOSCHDEV}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOSCHDEV@{NMSG\_\-NOSCHDEV}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b741a26527947077689389aedc51dcaa09}{
NMSG\_\-NOSCHDEV}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b741a26527947077689389aedc51dcaa09}
}]No such device. \index{NMSG_NOTADIR@{NMSG\_\-NOTADIR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOTADIR@{NMSG\_\-NOTADIR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b73126c70f201f04fb9ac1f43c0acd775a}{
NMSG\_\-NOTADIR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b73126c70f201f04fb9ac1f43c0acd775a}
}]Not a directory. \index{NMSG_NOTAFILE@{NMSG\_\-NOTAFILE}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOTAFILE@{NMSG\_\-NOTAFILE}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b61e78ecdff61623e70d78f444188ea9}{
NMSG\_\-NOTAFILE}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b61e78ecdff61623e70d78f444188ea9}
}]Not a file. \index{NMSG_XSFILDVC@{NMSG\_\-XSFILDVC}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_XSFILDVC@{NMSG\_\-XSFILDVC}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79441a297a05977037a2dd1b13459a825}{
NMSG\_\-XSFILDVC}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79441a297a05977037a2dd1b13459a825}
}]Too many files. \index{NMSG_XSFILOPN@{NMSG\_\-XSFILOPN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_XSFILOPN@{NMSG\_\-XSFILOPN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7949a02dcc847e9fb1735f3d8e4816e3c}{
NMSG\_\-XSFILOPN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7949a02dcc847e9fb1735f3d8e4816e3c}
}]Too many open files. \index{NMSG_NAMELONG@{NMSG\_\-NAMELONG}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NAMELONG@{NMSG\_\-NAMELONG}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79a0faa3052997693fdb842c8177f4400}{
NMSG\_\-NAMELONG}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b79a0faa3052997693fdb842c8177f4400}
}]Name too long. \index{NMSG_RDONLYFS@{NMSG\_\-RDONLYFS}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_RDONLYFS@{NMSG\_\-RDONLYFS}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7dc67790cddb8f339c357783cdcec43b2}{
NMSG\_\-RDONLYFS}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7dc67790cddb8f339c357783cdcec43b2}
}]Read-only file system. \index{NMSG_NETUNRCH@{NMSG\_\-NETUNRCH}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NETUNRCH@{NMSG\_\-NETUNRCH}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b775fc83695ade65b22696284a4f9ad14b}{
NMSG\_\-NETUNRCH}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b775fc83695ade65b22696284a4f9ad14b}
}]Network unreachable. \index{NMSG_NETRESET@{NMSG\_\-NETRESET}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NETRESET@{NMSG\_\-NETRESET}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c454669010e0337439b71579f33ebdaf}{
NMSG\_\-NETRESET}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c454669010e0337439b71579f33ebdaf}
}]Network has been reset. \index{NMSG_CONNABRT@{NMSG\_\-CONNABRT}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_CONNABRT@{NMSG\_\-CONNABRT}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b750a75359b9d32e0bfd52c09747ab70af}{
NMSG\_\-CONNABRT}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b750a75359b9d32e0bfd52c09747ab70af}
}]Connection aborted. \index{NMSG_CONNRSET@{NMSG\_\-CONNRSET}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_CONNRSET@{NMSG\_\-CONNRSET}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7443480eacabe5e6e7377744a1fcfeb8c}{
NMSG\_\-CONNRSET}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7443480eacabe5e6e7377744a1fcfeb8c}
}]Connection reset. \index{NMSG_NOBUFSPC@{NMSG\_\-NOBUFSPC}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOBUFSPC@{NMSG\_\-NOBUFSPC}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b716a1078c317db6681215c07b2f964a2e}{
NMSG\_\-NOBUFSPC}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b716a1078c317db6681215c07b2f964a2e}
}]No buffer space available. \index{NMSG_SOCKCONN@{NMSG\_\-SOCKCONN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_SOCKCONN@{NMSG\_\-SOCKCONN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7dd34f544c2b8b2e624faf09c85091970}{
NMSG\_\-SOCKCONN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7dd34f544c2b8b2e624faf09c85091970}
}]Socket already connected. \index{NMSG_SNOTCONN@{NMSG\_\-SNOTCONN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_SNOTCONN@{NMSG\_\-SNOTCONN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71917848820f8e807b019cb126e665ada}{
NMSG\_\-SNOTCONN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71917848820f8e807b019cb126e665ada}
}]Socket not connected. \index{NMSG_SHUTDOWN@{NMSG\_\-SHUTDOWN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_SHUTDOWN@{NMSG\_\-SHUTDOWN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7cf1c942075a5ea9590b828e0e6fcf5ea}{
NMSG\_\-SHUTDOWN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7cf1c942075a5ea9590b828e0e6fcf5ea}
}]Socket shut down. \index{NMSG_CONNTMO@{NMSG\_\-CONNTMO}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_CONNTMO@{NMSG\_\-CONNTMO}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7ff2e4c41be507a5ba1bc0dd06bb624e3}{
NMSG\_\-CONNTMO}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7ff2e4c41be507a5ba1bc0dd06bb624e3}
}]Connection timed out. \index{NMSG_CONNREF@{NMSG\_\-CONNREF}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_CONNREF@{NMSG\_\-CONNREF}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7e201a3ce435ca7e233d53c56d3ee679a}{
NMSG\_\-CONNREF}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7e201a3ce435ca7e233d53c56d3ee679a}
}]Connection refused. \index{NMSG_NETDOWN@{NMSG\_\-NETDOWN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NETDOWN@{NMSG\_\-NETDOWN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f4272b3509055838dc04ff598790d147}{
NMSG\_\-NETDOWN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f4272b3509055838dc04ff598790d147}
}]Network down. \index{NMSG_TOODEEP@{NMSG\_\-TOODEEP}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_TOODEEP@{NMSG\_\-TOODEEP}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b74e76752970a5fa8102343bc053f1cd12}{
NMSG\_\-TOODEEP}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b74e76752970a5fa8102343bc053f1cd12}
}]Symbolic link level too deep. \index{NMSG_HSTUNRCH@{NMSG\_\-HSTUNRCH}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_HSTUNRCH@{NMSG\_\-HSTUNRCH}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b72a72a7162dc72c11747cf4f8b9f72427}{
NMSG\_\-HSTUNRCH}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b72a72a7162dc72c11747cf4f8b9f72427}
}]Host unreachable. \index{NMSG_HOSTDOWN@{NMSG\_\-HOSTDOWN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_HOSTDOWN@{NMSG\_\-HOSTDOWN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b755c823d5864d9dc40a91437991b1b589}{
NMSG\_\-HOSTDOWN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b755c823d5864d9dc40a91437991b1b589}
}]Host down. \index{NMSG_UNSUPPRO@{NMSG\_\-UNSUPPRO}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_UNSUPPRO@{NMSG\_\-UNSUPPRO}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b777c846efadae4cb403857d7bf3eb5321}{
NMSG\_\-UNSUPPRO}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b777c846efadae4cb403857d7bf3eb5321}
}]Unsupported protocol. \index{NMSG_UNSUPPRF@{NMSG\_\-UNSUPPRF}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_UNSUPPRF@{NMSG\_\-UNSUPPRF}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7572954f0210bd4a84a18c1140936c8c9}{
NMSG\_\-UNSUPPRF}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7572954f0210bd4a84a18c1140936c8c9}
}]Unsupported protocol family. \index{NMSG_PROTOTYP@{NMSG\_\-PROTOTYP}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_PROTOTYP@{NMSG\_\-PROTOTYP}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b785f7be650ea4feb60aeb9d0aab250914}{
NMSG\_\-PROTOTYP}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b785f7be650ea4feb60aeb9d0aab250914}
}]Wrong protocol type. \index{NMSG_UNSUPADF@{NMSG\_\-UNSUPADF}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_UNSUPADF@{NMSG\_\-UNSUPADF}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b76dbfa089fb34a88ed9d1d5d989a8531e}{
NMSG\_\-UNSUPADF}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b76dbfa089fb34a88ed9d1d5d989a8531e}
}]Unsupported address family. \index{NMSG_NOSTREAM@{NMSG\_\-NOSTREAM}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOSTREAM@{NMSG\_\-NOSTREAM}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b92274c74a456a8daad7cd1028b49a12}{
NMSG\_\-NOSTREAM}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b92274c74a456a8daad7cd1028b49a12}
}]No stream resources. \index{NMSG_ADDRUSED@{NMSG\_\-ADDRUSED}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_ADDRUSED@{NMSG\_\-ADDRUSED}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71c4d86d57ef363ed17cbfbd347868277}{
NMSG\_\-ADDRUSED}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71c4d86d57ef363ed17cbfbd347868277}
}]Address in use. \index{NMSG_ADDRUNAV@{NMSG\_\-ADDRUNAV}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_ADDRUNAV@{NMSG\_\-ADDRUNAV}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f303212c1ee70b03cbdfd7647e014f20}{
NMSG\_\-ADDRUNAV}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7f303212c1ee70b03cbdfd7647e014f20}
}]Address unavailable. \index{NMSG_ALREADY@{NMSG\_\-ALREADY}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_ALREADY@{NMSG\_\-ALREADY}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7de331e150815b585a1c3c7b09cc741cc}{
NMSG\_\-ALREADY}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7de331e150815b585a1c3c7b09cc741cc}
}]Operation already in progress. \index{NMSG_BADFNMBR@{NMSG\_\-BADFNMBR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_BADFNMBR@{NMSG\_\-BADFNMBR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b74b9ad18fb66554dd67f91e1a6a2da2df}{
NMSG\_\-BADFNMBR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b74b9ad18fb66554dd67f91e1a6a2da2df}
}]Invalid file number. \index{NMSG_INPROGRS@{NMSG\_\-INPROGRS}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_INPROGRS@{NMSG\_\-INPROGRS}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7166a769825b2b95ff08fb8c863c1a004}{
NMSG\_\-INPROGRS}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7166a769825b2b95ff08fb8c863c1a004}
}]Operation in progress. \index{NMSG_OPRNINTR@{NMSG\_\-OPRNINTR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_OPRNINTR@{NMSG\_\-OPRNINTR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b777aace89cdcde5bc1258771bbcc06809}{
NMSG\_\-OPRNINTR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b777aace89cdcde5bc1258771bbcc06809}
}]Operation interrupted by signal. \index{NMSG_INVDARG@{NMSG\_\-INVDARG}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_INVDARG@{NMSG\_\-INVDARG}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b78b2dbbb5a35a2c48892f4f8632c06b96}{
NMSG\_\-INVDARG}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b78b2dbbb5a35a2c48892f4f8632c06b96}
}]Invalid argument. \index{NMSG_NOTASOCK@{NMSG\_\-NOTASOCK}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_NOTASOCK@{NMSG\_\-NOTASOCK}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b70f9d869e98bafb0456a3a51876ea654e}{
NMSG\_\-NOTASOCK}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b70f9d869e98bafb0456a3a51876ea654e}
}]Not a socket. \index{NMSG_OPNTSUPP@{NMSG\_\-OPNTSUPP}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_OPNTSUPP@{NMSG\_\-OPNTSUPP}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b75d6d7c4792ffc723fd977c9e3047f52d}{
NMSG\_\-OPNTSUPP}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b75d6d7c4792ffc723fd977c9e3047f52d}
}]Operation not supported. \index{NMSG_BADADDRS@{NMSG\_\-BADADDRS}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_BADADDRS@{NMSG\_\-BADADDRS}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71934a4cb83b104b839d8c22124f6dc84}{
NMSG\_\-BADADDRS}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b71934a4cb83b104b839d8c22124f6dc84}
}]Invalid parameter address. \index{NMSG_PROTOERR@{NMSG\_\-PROTOERR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_PROTOERR@{NMSG\_\-PROTOERR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b709d59fe8b06ea4a88875b128caa1aadd}{
NMSG\_\-PROTOERR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b709d59fe8b06ea4a88875b128caa1aadd}
}]Protocol error. \index{NMSG_TRYAGAIN@{NMSG\_\-TRYAGAIN}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_TRYAGAIN@{NMSG\_\-TRYAGAIN}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b72e5bd574d9f41282ba1730c7cc60ba}{
NMSG\_\-TRYAGAIN}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7b72e5bd574d9f41282ba1730c7cc60ba}
}]Retry operation. \index{NMSG_MSGLONG@{NMSG\_\-MSGLONG}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_MSGLONG@{NMSG\_\-MSGLONG}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b77584a2c02e335ac53c01351c97642df9}{
NMSG\_\-MSGLONG}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b77584a2c02e335ac53c01351c97642df9}
}]Message too long. \index{NMSG_BRKNPIPE@{NMSG\_\-BRKNPIPE}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_BRKNPIPE@{NMSG\_\-BRKNPIPE}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7e765a3182358d4fa61e78ea93a60b146}{
NMSG\_\-BRKNPIPE}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7e765a3182358d4fa61e78ea93a60b146}
}]Broken pipe. \index{NMSG_UNKNERR@{NMSG\_\-UNKNERR}!nmsgLib.h@{nmsgLib.h}}\index{nmsgLib.h@{nmsgLib.h}!NMSG_UNKNERR@{NMSG\_\-UNKNERR}}\item[{\em 
\hypertarget{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c70c1417d7f1714dd169666314b24f74}{
NMSG\_\-UNKNERR}
\label{nmsgLib_8h_df764cbdea00d65edcd07bb9953ad2b7c70c1417d7f1714dd169666314b24f74}
}]Unknown system error. \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{nmsgLib_8h_25bf2c1f0b7a13933dd287217f2ac91f}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgCheck@{nmsgCheck}}
\index{nmsgCheck@{nmsgCheck}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgCheck (void $\ast$ {\em hndl})}}
\label{nmsgLib_8h_25bf2c1f0b7a13933dd287217f2ac91f}


Check a network connection handle. 

This routine checks whether a network handle is valid or not.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the connection.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em 1}]The handle is valid. \item[{\em 0}]The handle is invalid. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_5825f59b8d3fe194da574ca42123ca38}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgClose@{nmsgClose}}
\index{nmsgClose@{nmsgClose}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgClose (void $\ast$ {\em hndl}, int {\em force})}}
\label{nmsgLib_8h_5825f59b8d3fe194da574ca42123ca38}


Terminate a message client or server. 

This routine closes a network connection or stops a network server.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle of the connection or server.\item[{\em force}]For a client connection, if TRUE, the connection is closed even if another task is in the process of sending a message. If FALSE, the closing waits until any activity has ceased. Not used for a server.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]Success. \item[{\em NMSG\_\-INVHNDL}]Invalid network handle. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_b260e1d6c2b2a5f9c5c9e7679f1825ea}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgConnect@{nmsgConnect}}
\index{nmsgConnect@{nmsgConnect}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgConnect (void $\ast$$\ast$ {\em hndl}, const char $\ast$ {\em node}, int {\em port})}}
\label{nmsgLib_8h_b260e1d6c2b2a5f9c5c9e7679f1825ea}


Connect to a message server. 

This routine establishes a network connection to a message server.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The address of a pointer to receive the identifying handle for the network connection.\item[{\em node}]The address of the name of the node containing the message server.\item[{\em port}]The port number on which to establish the connection.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]The connection was established successfully. \item[{\em NMSG\_\-NOMEMORY}]Insuffucuent memory available. \item[{\em NMSG\_\-UNKNHOST}]Host is unknown. \item[{\em NMSG\_\-NOSEMCRE}]Unable to create sync. semaphore (VxWorks) \item[{\em NMSG\_\-xxx}]Various connection errors. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_760bb4dc4613df085bb7fd2f3d3ed093}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgConnectAsy@{nmsgConnectAsy}}
\index{nmsgConnectAsy@{nmsgConnectAsy}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgConnectAsy (void $\ast$$\ast$ {\em hndl}, const char $\ast$ {\em node}, int {\em port}, int {\em prio}, {\bf nmsgConnCB\_\-t} {\em connRtn}, {\bf nmsgDiscCB\_\-t} {\em discRtn}, void $\ast$ {\em uParm})}}
\label{nmsgLib_8h_760bb4dc4613df085bb7fd2f3d3ed093}


Connect asynchronously (robustly) to a message server. 

This routine establishes a robust network connection to a message server. The connection is done asynchronously, and the attempt is retried periodically if the initial attempt fails, or if the connection is broken.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The address of a pointer to receive the identifying handle for the network connection.\item[{\em node}]The address of the name of the node containing the message server.\item[{\em port}]The port number on which to establish the connection.\item[{\em prio}]The priority of the connection task, where applicable. If 0, the default value (100) is used.\item[{\em connRtn}]The address of a routine to be called when the connection has been made.\item[{\em discRtn}]The address of a routine to be called when the connection is broken.\item[{\em uParm}]A parameter to be passed to the connect and disconnect callback routines.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]The connection was established successfully. \item[{\em NMSG\_\-NOMEMORY}]Insuffucuent memory available. \item[{\em NMSG\_\-UNKNHOST}]Host is unknown. \item[{\em NMSG\_\-NOSEMCRE}]Unable to create sync. semaphore (VxWorks) \item[{\em NMSG\_\-NOTASKCR}]Unable to spawn connection task. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_fe1bfca2cf3723a010fcb51e8df9012a}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgErrorMsg@{nmsgErrorMsg}}
\index{nmsgErrorMsg@{nmsgErrorMsg}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ nmsgErrorMsg (int {\em status})}}
\label{nmsgLib_8h_fe1bfca2cf3723a010fcb51e8df9012a}


Obtain the text of an error message. 

This routine returns a pointer to the message corresponding to a given NMSG status code.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em status}]The NMSG status code.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]The address of the corresponding message text. \end{Desc}
\hypertarget{nmsgLib_8h_ac6d5bd6e40a2b55f09e57d4b13bc63a}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgErrorReport@{nmsgErrorReport}}
\index{nmsgErrorReport@{nmsgErrorReport}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void nmsgErrorReport (int {\em status}, const char $\ast$ {\em func})}}
\label{nmsgLib_8h_ac6d5bd6e40a2b55f09e57d4b13bc63a}


Display an error message. 

This routine outputs to stderr the message corresponding to a given NMSG status code.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em status}]The NMSG status code.\item[{\em func}]The function name to be displayed at the start of the message. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_55b2221322b47b41f9404c23fe59fcaa}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgListen@{nmsgListen}}
\index{nmsgListen@{nmsgListen}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgListen (void $\ast$$\ast$ {\em hndl}, int {\em port}, int {\em maxConn}, int {\em maxData}, int {\em prio}, {\bf nmsgConnCB\_\-t} {\em connRtn}, {\bf nmsgDiscCB\_\-t} {\em discRtn}, {\bf nmsgRcveCB\_\-t} {\em rcveRtn}, void $\ast$ {\em uParm})}}
\label{nmsgLib_8h_55b2221322b47b41f9404c23fe59fcaa}


Establish a message server. 

This routine establishes a network message server (listener).

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The address of a pointer to receive the identifying handle for the network listener.\item[{\em port}]The port number on which to establish the server.\item[{\em maxConn}]The maximum number of concurrent connections that the server will allow.\item[{\em maxData}]The maximum number of data bytes that can be transferred in a single message.\item[{\em prio}]The priority of the listener (server) and receiver tasks, where applicable. If 0, the default value (100) is used.\item[{\em connRtn}]The address of a routine to be called when a new connection has been made. The connection will be rejected if this routine returns ERROR status.\item[{\em discRtn}]The address of a routine to be called when a connection is broken.\item[{\em rcveRtn}]The address of a routine to be called whenever a message is received.\item[{\em uParm}]A parameter to be passed to the connect, disconnect and receive callback routines.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]The connection was established successfully. \item[{\em NMSG\_\-NOMEMORY}]Insuffucuent memory available. \item[{\em NMSG\_\-NOTASKCR}]Unable to spawn listener task. \item[{\em NMSG\_\-xxx}]Various system errors. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_f38393f16a9ad082e681ef440cddbe46}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgRemoteIP@{nmsgRemoteIP}}
\index{nmsgRemoteIP@{nmsgRemoteIP}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgRemoteIP (void $\ast$ {\em hndl}, int $\ast$ {\em ip})}}
\label{nmsgLib_8h_f38393f16a9ad082e681ef440cddbe46}


Get the IP address of the remote end. 

This routine returns the IP address of the remote end of a connection. It can be used on either end of a connection.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the connection.\item[{\em ip}]The addressof an integer to receive the IP address.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]Success. \item[{\em NMSG\_\-INVHNDL}]Invalid network handle. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_c02e377443f8404d36f8beed75a2e622}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgSend@{nmsgSend}}
\index{nmsgSend@{nmsgSend}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgSend (void $\ast$ {\em hndl}, {\bf nmsgBuff\_\-t} $\ast$ {\em msg})}}
\label{nmsgLib_8h_c02e377443f8404d36f8beed75a2e622}


Send a message and return immediately. 

This routine sends a message on a network connection and returns without waiting for a reply.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the connection.\item[{\em msg}]The address of message to be sent. It must be formatted using the nmsgBuff\_\-t structure type.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]Success. \item[{\em NMSG\_\-INVHNDL}]Invalid network handle. \item[{\em NMSG\_\-NOTCONN}]Not connected to server. \item[{\em NMSG\_\-INVSEMA}]Invalid semaphore. \item[{\em NMSG\_\-DISCONN}]Server connection was broken. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_f66406f1031d4de9f4125241f069b3e5}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgSendW@{nmsgSendW}}
\index{nmsgSendW@{nmsgSendW}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgSendW (void $\ast$ {\em hndl}, {\bf nmsgBuff\_\-t} $\ast$ {\em msg}, {\bf nmsgBuff\_\-t} $\ast$$\ast$ {\em replyP}, {\bf nmsgBuff\_\-t} $\ast$ {\em reply}, int {\em maxData})}}
\label{nmsgLib_8h_f66406f1031d4de9f4125241f069b3e5}


Send a message and receive reply. 

This routine sends a message on a network connection and waits for a reply.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the connection.\item[{\em msg}]The address of message to be sent. It must be formatted using the nmsgBuff\_\-t structure type.\item[{\em replyP}]The address of a pointer to receive the address of the reply. If a reply area is supplied and it is big enough, this will be the address of this area. Otherwise a sufficiently large reply area is allocated and its address returned here. In this latter case, the memory must be relinquished using free() after it is no longer needed.\item[{\em reply}]The address of an area to receive the reply to the message, or NULL if no area is to be used.\item[{\em maxData}]The maximum number of data bytes that can be put into the supplied reply area.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]Success. \item[{\em NMSG\_\-INVHNDL}]Invalid network handle. \item[{\em NMSG\_\-NOTCONN}]Not connected to server. \item[{\em NMSG\_\-INVSEMA}]Invalid semaphore. \item[{\em NMSG\_\-DISCONN}]Server connection was broken. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_a96f2724ad6d35da14aad7666cc4d68c}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgStats@{nmsgStats}}
\index{nmsgStats@{nmsgStats}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgStats (void $\ast$ {\em hndl}, {\bf nmsgStats\_\-t} $\ast$ {\em stats})}}
\label{nmsgLib_8h_a96f2724ad6d35da14aad7666cc4d68c}


Get connection statistics. 

This routine returns a block of connection statistics containing the number of connects, disconnects, messages sent/received, bytes sent and bytes received.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the connection.\item[{\em stats}]The address of an area to receive the statistics block.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]Success. \item[{\em NMSG\_\-INVHNDL}]Invalid network handle. \end{description}
\end{Desc}
\hypertarget{nmsgLib_8h_d12b00b6a96b50f3c79d88b99917f333}{
\index{nmsgLib.h@{nmsgLib.h}!nmsgWait@{nmsgWait}}
\index{nmsgWait@{nmsgWait}!nmsgLib.h@{nmsgLib.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int nmsgWait (void $\ast$ {\em hndl}, {\bf nmsgBuff\_\-t} $\ast$$\ast$ {\em replyP}, {\bf nmsgBuff\_\-t} $\ast$ {\em reply}, int {\em maxData})}}
\label{nmsgLib_8h_d12b00b6a96b50f3c79d88b99917f333}


Wait for a reply to a sent message. 

This routine waits for a reply to a previously sent message.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em hndl}]The handle for the connection.\item[{\em replyP}]The address of a pointer to receive the address of the reply. If a reply area is supplied and it is big enough, this will be the address of this area. Otherwise a sufficiently large reply area is allocated and its address returned here. In this latter case, the memory must be relinquished using free() after it is no longer needed.\item[{\em reply}]The address of an area to receive the reply to the message, or NULL if no area is to be used.\item[{\em maxData}]The maximum number of data bytes that can be put into the supplied reply area.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em NMSG\_\-SUCCESS}]Success. \item[{\em NMSG\_\-INVHNDL}]Invalid network handle. \item[{\em NMSG\_\-NOTCONN}]Not connected to server. \item[{\em NMSG\_\-INVSEMA}]Invalid semaphore. \item[{\em NMSG\_\-DISCONN}]Server connection was broken. \end{description}
\end{Desc}
