\hypertarget{sampHub_8c}{ \section{sampHub.c File Reference} \label{sampHub_8c}\index{sampHub.c@{sampHub.c}} } Methods related to the SAMP \hyperlink{structHub}{Hub} interface. {\tt \#include $<$stdlib.h$>$}\par {\tt \#include $<$stdio.h$>$}\par {\tt \#include $<$unistd.h$>$}\par {\tt \#include $<$string.h$>$}\par {\tt \#include $<$time.h$>$}\par {\tt \#include $<$pthread.h$>$}\par {\tt \#include $<$ctype.h$>$}\par {\tt \#include \char`\"{}samp.h\char`\"{}}\par \subsection*{Defines} \begin{CompactItemize} \item \hypertarget{sampHub_8c_15f13b436c106e975a91e0d343005e01}{ \#define \textbf{HUB\_\-DBG}~(getenv(\char`\"{}HUB\_\-DBG\char`\"{})!=NULL$|$$|$access(\char`\"{}/tmp/HUB\_\-DBG\char`\"{},F\_\-OK)==0)} \label{sampHub_8c_15f13b436c106e975a91e0d343005e01} \end{CompactItemize} \subsection*{Functions} \begin{CompactItemize} \item handle\_\-t \hyperlink{sampHub_8c_ab66aed8f93a9cd5734a8dd62e427418}{samp\_\-hubOpen} (\hyperlink{structSamp}{Samp} $\ast$sampP) \begin{CompactList}\small\item\em Discover and open a connection to the SAMP \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_52f471568663ac6f0116d57a9ce00f00}{samp\_\-hubClose} (handle\_\-t handle) \begin{CompactList}\small\item\em Close a connection to the \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_a927eb8dcb67e245aeb5a8a4feeb6230}{samp\_\-hubRunning} (void) \item \hyperlink{sampDecl_8h_39f9d235896a8fd920f319105eb82791}{List} \hyperlink{sampHub_8c_e792eedc70daa9b2d010ca6cd8e57fe8}{samp\_\-getAvailableHubs} (handle\_\-t handle) \begin{CompactList}\small\item\em Get a list of available Hubs. \item\end{CompactList}\item \hypertarget{sampHub_8c_4b4292d136520c3d276d655e2093dd30}{ char $\ast$ \textbf{samp\_\-getActiveHubName} (handle\_\-t handle)} \label{sampHub_8c_4b4292d136520c3d276d655e2093dd30} \item \hypertarget{sampHub_8c_bf266e81b16f556e2f42cad5a2eb9157}{ int \textbf{samp\_\-getActiveHub} (handle\_\-t handle)} \label{sampHub_8c_bf266e81b16f556e2f42cad5a2eb9157} \item \hypertarget{sampHub_8c_b7ea81f81c8b5b5a6d7a323e9c98cd12}{ int \textbf{samp\_\-hubInit} (handle\_\-t handle, char $\ast$appName, char $\ast$descr)} \label{sampHub_8c_b7ea81f81c8b5b5a6d7a323e9c98cd12} \item int \hyperlink{sampHub_8c_2933b26ac05c440196368edad0167bdf}{samp\_\-processHubEvent} (\hyperlink{sampDecl_8h_2efe6d463d80744789f228f5dc4baa39}{String} mtype, \hyperlink{sampDecl_8h_39a90bc041db57e1a6ba736ba91eee30}{Map} params) \begin{CompactList}\small\item\em Determine the type of \hyperlink{structHub}{Hub} event mtype. \item\end{CompactList}\item int \hyperlink{sampHub_8c_19f64b527fcc431541206e41f8e36132}{samp\_\-hubEvent} (\hyperlink{sampDecl_8h_2efe6d463d80744789f228f5dc4baa39}{String} mtype) \begin{CompactList}\small\item\em Determine the type of \hyperlink{structHub}{Hub} event mtype. \item\end{CompactList}\item int \hyperlink{sampHub_8c_13ad32079ae1db571e3114b7bd8ba356}{samp\_\-hubRegister} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Send a Register message to the \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_6d4e32ed0eb19f02cc8a75f75a98deec}{samp\_\-hubUnRegister} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Send a UnRegister message to the \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_a704d2a0d290f2fdfb3ebfffc39adcb3}{samp\_\-hubSendShutdown} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Send a samp.app.event.shutdown message to the \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_2fcb0032e5ae98fff93becdb06da49f9}{samp\_\-hubSetXmlrpcCallback} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Set the client callback and send to \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_47b1a9a4627fde97f95b40b372153cf6}{samp\_\-hubPing} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Ping the \hyperlink{structHub}{Hub} to see if it is alive. \item\end{CompactList}\item int \hyperlink{sampHub_8c_088f1e762175d0dbc315853d06e50149}{samp\_\-hubDeclareMetadata} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Declare \char`\"{}standard\char`\"{} metadata to the \hyperlink{structHub}{Hub}. \item\end{CompactList}\item int \hyperlink{sampHub_8c_7be493427eac28b2a064eedd8a7d63ff}{samp\_\-hubDeclareSubscriptions} (\hyperlink{structHub}{Hub} $\ast$\hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub}) \begin{CompactList}\small\item\em Declare mtype subscriptions to the \hyperlink{structHub}{Hub}. \item\end{CompactList}\end{CompactItemize} \subsection*{Variables} \begin{CompactItemize} \item \hyperlink{structHub}{Hub} $\ast$ \hyperlink{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{hub} = (\hyperlink{structHub}{Hub} $\ast$) NULL \item int \hyperlink{sampHub_8c_037f00cb1101b007b4bf45e8bee1bd3e}{numHubs} = 0 \item handle\_\-t \hyperlink{sampHub_8c_86b0db44d25bc3079d8d9d75e01a0ecd}{hubHandles} \mbox{[}MAX\_\-HUBS\mbox{]} \item pthread\_\-mutex\_\-t \hyperlink{sampHub_8c_c49d9bc6850c63f257c18f2920915d9c}{samp\_\-mutex} = PTHREAD\_\-MUTEX\_\-INITIALIZER \item \hypertarget{sampHub_8c_12abcaf1a16a8a7c2ef6358cdbf4d705}{ \hyperlink{structSamp}{Samp} $\ast$ \textbf{sampP}} \label{sampHub_8c_12abcaf1a16a8a7c2ef6358cdbf4d705} \item \hypertarget{sampHub_8c_b45e068a722f83368367449cb0a5312b}{ int \textbf{numSamps}} \label{sampHub_8c_b45e068a722f83368367449cb0a5312b} \item \hypertarget{sampHub_8c_9ee46f73e7f3c5e99958a618b2b6ed5a}{ handle\_\-t \textbf{sampHandles} \mbox{[}MAX\_\-SAMPS\mbox{]}} \label{sampHub_8c_9ee46f73e7f3c5e99958a618b2b6ed5a} \item \hyperlink{sampDecl_8h_39a90bc041db57e1a6ba736ba91eee30}{Map} \hyperlink{sampHub_8c_68bf22a5b3f2531242f5c6d6ecf2ea1e}{nullMap} \end{CompactItemize} \label{_details} \hypertarget{_details}{} \subsection{Detailed Description} Methods related to the SAMP \hyperlink{structHub}{Hub} interface. SAMPHUB.C -- Methods related to the SAMP \hyperlink{structHub}{Hub} interface. \begin{Desc} \item[Author:]Mike Fitzpatrick \end{Desc} \begin{Desc} \item[Date:]7/10/09 \end{Desc} \subsection{Function Documentation} \hypertarget{sampHub_8c_e792eedc70daa9b2d010ca6cd8e57fe8}{ \index{sampHub.c@{sampHub.c}!samp\_\-getAvailableHubs@{samp\_\-getAvailableHubs}} \index{samp\_\-getAvailableHubs@{samp\_\-getAvailableHubs}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-getAvailableHubs}]{\setlength{\rightskip}{0pt plus 5cm}{\bf List} samp\_\-getAvailableHubs (handle\_\-t {\em handle})}} \label{sampHub_8c_e792eedc70daa9b2d010ca6cd8e57fe8} Get a list of available Hubs. SAMP\_\-GETAVAILABLEHUBS -- Get a list of available Hubs \begin{Desc} \item[Parameters:] \begin{description} \item[{\em handle}]hub handle \end{description} \end{Desc} \begin{Desc} \item[Returns:]List of hub handles \end{Desc} \hypertarget{sampHub_8c_52f471568663ac6f0116d57a9ce00f00}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubClose@{samp\_\-hubClose}} \index{samp\_\-hubClose@{samp\_\-hubClose}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubClose}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubClose (handle\_\-t {\em handle})}} \label{sampHub_8c_52f471568663ac6f0116d57a9ce00f00} Close a connection to the \hyperlink{structHub}{Hub}. SAMP\_\-HUBCLOSE -- Close a connection to the \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em handle}]hub handle \end{description} \end{Desc} \begin{Desc} \item[Returns:]unregister status \end{Desc} References appMD::aKey, appMD::aVal, Hub::meta, appMD::nkeys, samp\_\-freeHandle(), and samp\_\-hubUnRegister(). Referenced by sampClose(), and sampShutdown().\hypertarget{sampHub_8c_088f1e762175d0dbc315853d06e50149}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubDeclareMetadata@{samp\_\-hubDeclareMetadata}} \index{samp\_\-hubDeclareMetadata@{samp\_\-hubDeclareMetadata}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubDeclareMetadata}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubDeclareMetadata ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_088f1e762175d0dbc315853d06e50149} Declare \char`\"{}standard\char`\"{} metadata to the \hyperlink{structHub}{Hub}. SAMP\_\-DECLAREMETADATA -- Declare \char`\"{}standard\char`\"{} metadata to the \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References appMD::aKey, appMD::aVal, Hub::description, appMD::docURL, appMD::iconURL, Hub::id, Hub::meta, appMD::nkeys, and Hub::privateKey. Referenced by samp\_\-DeclareMetadata(), and sampStartup().\hypertarget{sampHub_8c_7be493427eac28b2a064eedd8a7d63ff}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubDeclareSubscriptions@{samp\_\-hubDeclareSubscriptions}} \index{samp\_\-hubDeclareSubscriptions@{samp\_\-hubDeclareSubscriptions}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubDeclareSubscriptions}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubDeclareSubscriptions ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_7be493427eac28b2a064eedd8a7d63ff} Declare mtype subscriptions to the \hyperlink{structHub}{Hub}. SAMP\_\-HUBDECLARESUBSCRIPTIONS -- Declare mtype subscriptions to the \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References Hub::id, Samp::nsubs, nullMap, Hub::privateKey, Hub::samp, samp\_\-freeMap(), and Subs::userFunc. Referenced by samp\_\-DeclareSubscriptions(), and sampStartup().\hypertarget{sampHub_8c_19f64b527fcc431541206e41f8e36132}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubEvent@{samp\_\-hubEvent}} \index{samp\_\-hubEvent@{samp\_\-hubEvent}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubEvent}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubEvent ({\bf String} {\em mtype})}} \label{sampHub_8c_19f64b527fcc431541206e41f8e36132} Determine the type of \hyperlink{structHub}{Hub} event mtype. SAMP\_\-HUBEVENT -- Determine the type of \hyperlink{structHub}{Hub} event mtype. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em mtype}]mtype string \end{description} \end{Desc} \begin{Desc} \item[Returns:]\hyperlink{structHub}{Hub} event code or -1 if not found \end{Desc} References HUB\_\-SHUTDOWN. Referenced by samp\_\-processHubEvent().\hypertarget{sampHub_8c_ab66aed8f93a9cd5734a8dd62e427418}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubOpen@{samp\_\-hubOpen}} \index{samp\_\-hubOpen@{samp\_\-hubOpen}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubOpen}]{\setlength{\rightskip}{0pt plus 5cm}handle\_\-t samp\_\-hubOpen ({\bf Samp} $\ast$ {\em sampP})}} \label{sampHub_8c_ab66aed8f93a9cd5734a8dd62e427418} Discover and open a connection to the SAMP \hyperlink{structHub}{Hub}. SAMP\_\-HUBOPEN -- Discover and open a connection to the SAMP \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em samp}]Same structure \end{description} \end{Desc} \begin{Desc} \item[Returns:]hub handle \end{Desc} References Hub::appId, Samp::appVer, Hub::appVer, appMD::desc, Hub::description, Samp::description, Hub::id, Hub::meta, Hub::samp, samp\_\-hubRegister(), samp\_\-hubSetXmlrpcCallback(), samp\_\-newHandle(), samp\_\-P2H(), Hub::timeout, and Hub::url. Referenced by sampInit(), and sampStartup().\hypertarget{sampHub_8c_47b1a9a4627fde97f95b40b372153cf6}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubPing@{samp\_\-hubPing}} \index{samp\_\-hubPing@{samp\_\-hubPing}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubPing}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubPing ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_47b1a9a4627fde97f95b40b372153cf6} Ping the \hyperlink{structHub}{Hub} to see if it is alive. SAMP\_\-HUBPING -- Ping the \hyperlink{structHub}{Hub} to see if it is alive. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References Hub::id, and Hub::privateKey. Referenced by samp\_\-Ping().\hypertarget{sampHub_8c_13ad32079ae1db571e3114b7bd8ba356}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubRegister@{samp\_\-hubRegister}} \index{samp\_\-hubRegister@{samp\_\-hubRegister}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubRegister}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubRegister ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_13ad32079ae1db571e3114b7bd8ba356} Send a Register message to the \hyperlink{structHub}{Hub}. SAMP\_\-HUB\_\-REGISTER -- Send a Register message to the \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References Hub::hubId, Hub::id, Hub::privateKey, Hub::secret, and Hub::selfId. Referenced by samp\_\-hubOpen().\hypertarget{sampHub_8c_a927eb8dcb67e245aeb5a8a4feeb6230}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubRunning@{samp\_\-hubRunning}} \index{samp\_\-hubRunning@{samp\_\-hubRunning}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubRunning}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubRunning (void)}} \label{sampHub_8c_a927eb8dcb67e245aeb5a8a4feeb6230} SAMP\_\-HUBRUNNING -- See whether a \hyperlink{structHub}{Hub} is running. The test simply checks the existence of a \hyperlink{structHub}{Hub} lockfile. References SZ\_\-NAME.\hypertarget{sampHub_8c_a704d2a0d290f2fdfb3ebfffc39adcb3}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubSendShutdown@{samp\_\-hubSendShutdown}} \index{samp\_\-hubSendShutdown@{samp\_\-hubSendShutdown}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubSendShutdown}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubSendShutdown ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_a704d2a0d290f2fdfb3ebfffc39adcb3} Send a samp.app.event.shutdown message to the \hyperlink{structHub}{Hub}. SAMP\_\-HUBSENDSHUTDOWN -- Send a samp.app.event.shutdown message to the \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References Hub::id, Hub::privateKey, and samp\_\-nullResponse().\hypertarget{sampHub_8c_2fcb0032e5ae98fff93becdb06da49f9}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubSetXmlrpcCallback@{samp\_\-hubSetXmlrpcCallback}} \index{samp\_\-hubSetXmlrpcCallback@{samp\_\-hubSetXmlrpcCallback}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubSetXmlrpcCallback}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubSetXmlrpcCallback ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_2fcb0032e5ae98fff93becdb06da49f9} Set the client callback and send to \hyperlink{structHub}{Hub}. SAMP\_\-HUBSETXMLRPCCALLBACK -- Set the client callback and send to \hyperlink{structHub}{Hub} \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References Hub::id, Hub::privateKey, and samp\_\-serverPort(). Referenced by samp\_\-hubOpen().\hypertarget{sampHub_8c_6d4e32ed0eb19f02cc8a75f75a98deec}{ \index{sampHub.c@{sampHub.c}!samp\_\-hubUnRegister@{samp\_\-hubUnRegister}} \index{samp\_\-hubUnRegister@{samp\_\-hubUnRegister}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-hubUnRegister}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-hubUnRegister ({\bf Hub} $\ast$ {\em hub})}} \label{sampHub_8c_6d4e32ed0eb19f02cc8a75f75a98deec} Send a UnRegister message to the \hyperlink{structHub}{Hub}. SAMP\_\-HUBUNREGISTER -- Send a UnRegister message to the \hyperlink{structHub}{Hub}. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em hub}]hub struct pointer \end{description} \end{Desc} \begin{Desc} \item[Returns:]status \end{Desc} References Hub::id, and Hub::privateKey. Referenced by samp\_\-hubClose(), and samp\_\-UnRegister().\hypertarget{sampHub_8c_2933b26ac05c440196368edad0167bdf}{ \index{sampHub.c@{sampHub.c}!samp\_\-processHubEvent@{samp\_\-processHubEvent}} \index{samp\_\-processHubEvent@{samp\_\-processHubEvent}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-processHubEvent}]{\setlength{\rightskip}{0pt plus 5cm}int samp\_\-processHubEvent ({\bf String} {\em mtype}, \/ {\bf Map} {\em params})}} \label{sampHub_8c_2933b26ac05c440196368edad0167bdf} Determine the type of \hyperlink{structHub}{Hub} event mtype. SAMP\_\-HUBEVENT -- Determine the type of \hyperlink{structHub}{Hub} event mtype. \begin{Desc} \item[Parameters:] \begin{description} \item[{\em mtype}]mtype string \item[{\em params}]message parameter Map \end{description} \end{Desc} \begin{Desc} \item[Returns:]non-zero value if a \hyperlink{structHub}{Hub} event was processed \end{Desc} References HUB\_\-SHUTDOWN, samp\_\-addClient(), samp\_\-hubEvent(), samp\_\-mutex, samp\_\-P2H(), samp\_\-removeClient(), sampH, and sampShutdown(). Referenced by samp\_\-receiveNotification(). \subsection{Variable Documentation} \hypertarget{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad}{ \index{sampHub.c@{sampHub.c}!hub@{hub}} \index{hub@{hub}!sampHub.c@{sampHub.c}} \subsubsection[{hub}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Hub}$\ast$ {\bf hub} = ({\bf Hub} $\ast$) NULL}} \label{sampHub_8c_d702b07240de0e0cf9e4b781a38317ad} empty List struct Referenced by samp\_\-bibLoad(), samp\_\-call(), samp\_\-callAll(), samp\_\-callAndWait(), samp\_\-cmdExec(), samp\_\-coordPointAtSky(), samp\_\-DeclareMetadata(), samp\_\-DeclareSubscriptions(), samp\_\-envGet(), samp\_\-envSet(), samp\_\-GetMetadata(), samp\_\-imageLoadFITS(), samp\_\-notify(), samp\_\-notifyAll(), samp\_\-paramGet(), samp\_\-paramSet(), samp\_\-Register(), samp\_\-Reply(), samp\_\-resourceLoad(), samp\_\-sendGeneric(), samp\_\-specLoadSSAGeneric(), samp\_\-tableHighlightRow(), samp\_\-tableLoadFITS(), samp\_\-tableLoadVOTable(), samp\_\-tableSelectRowList(), and samp\_\-UnRegister().\hypertarget{sampHub_8c_86b0db44d25bc3079d8d9d75e01a0ecd}{ \index{sampHub.c@{sampHub.c}!hubHandles@{hubHandles}} \index{hubHandles@{hubHandles}!sampHub.c@{sampHub.c}} \subsubsection[{hubHandles}]{\setlength{\rightskip}{0pt plus 5cm}handle\_\-t {\bf hubHandles}\mbox{[}MAX\_\-HUBS\mbox{]}}} \label{sampHub_8c_86b0db44d25bc3079d8d9d75e01a0ecd} No. of available hubs \hypertarget{sampHub_8c_68bf22a5b3f2531242f5c6d6ecf2ea1e}{ \index{sampHub.c@{sampHub.c}!nullMap@{nullMap}} \index{nullMap@{nullMap}!sampHub.c@{sampHub.c}} \subsubsection[{nullMap}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Map} {\bf nullMap}}} \label{sampHub_8c_68bf22a5b3f2531242f5c6d6ecf2ea1e} SAMP handle \hypertarget{sampHub_8c_037f00cb1101b007b4bf45e8bee1bd3e}{ \index{sampHub.c@{sampHub.c}!numHubs@{numHubs}} \index{numHubs@{numHubs}!sampHub.c@{sampHub.c}} \subsubsection[{numHubs}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf numHubs} = 0}} \label{sampHub_8c_037f00cb1101b007b4bf45e8bee1bd3e} HUB connection \hypertarget{sampHub_8c_c49d9bc6850c63f257c18f2920915d9c}{ \index{sampHub.c@{sampHub.c}!samp\_\-mutex@{samp\_\-mutex}} \index{samp\_\-mutex@{samp\_\-mutex}!sampHub.c@{sampHub.c}} \subsubsection[{samp\_\-mutex}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf samp\_\-mutex} = PTHREAD\_\-MUTEX\_\-INITIALIZER}} \label{sampHub_8c_c49d9bc6850c63f257c18f2920915d9c} lock so we can update struct Referenced by samp\_\-processHubEvent().