\section{Класс Protocol}
\label{class_protocol}\index{Protocol@{Protocol}}


{\ttfamily \#include $<$Protocol.h$>$}



Производные классы:{\bf Client} и {\bf Server}.



Граф связей класса Protocol:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol__coll__graph}
\end{center}
\end{figure}
\subsection*{Открытые члены}
\begin{DoxyCompactItemize}
\item 
{\bf Protocol} ()
\item 
{\bf $\sim$Protocol} ()
\item 
void {\bf parserCreate} (int sktID)
\item 
{\bf Node} $\ast$ {\bf getCurNodeSend} ()
\item 
void {\bf sendNode} ({\bf Node} \&stanza)
\item 
void {\bf addTagHandler} ({\bf TagHandler}$<$ {\bf Node} $>$::PTagHandler handler, {\bf string} name=\char`\"{}\char`\"{}, {\bf string} xmlns=\char`\"{}\char`\"{})
\item 
void {\bf addIQHandler} ({\bf TagHandler}$<$ {\bf TagIQ} $>$::PTagHandler handler, {\bf string} xmlns=\char`\"{}\char`\"{}, {\bf string} name=\char`\"{}query\char`\"{})
\item 
void {\bf removeIQHandler} ({\bf TagHandler}$<$ {\bf TagIQ} $>$::PTagHandler handler)
\item 
void {\bf startParsing} ()
\item 
virtual void {\bf startXMLTagNodeHandler} ({\bf Node} $\ast$node)
\item 
virtual void {\bf endXMLTagNodeHandler} ({\bf Node} $\ast$node)
\item 
void {\bf sendString} ({\bf string} data)
\item 
void {\bf manadgeIQResp} ({\bf TagIQ} \&st)
\item 
{\bf TagIQ} {\bf sendIQResp} ({\bf TagIQ} \&st, {\bf string} resultXMLNS, {\bf string} resultSubTagName)
\end{DoxyCompactItemize}
\subsection*{Открытые атрибуты}
\begin{DoxyCompactItemize}
\item 
pthread\_\-mutex\_\-t {\bf cs\_\-mutex}
\item 
pthread\_\-mutex\_\-t {\bf cs\_\-mutex1}
\item 
pthread\_\-mutex\_\-t {\bf cs\_\-mutexNewNode}
\item 
pthread\_\-mutex\_\-t {\bf cs\_\-mutexDEL}
\item 
pthread\_\-mutex\_\-t {\bf mutDelEndNodRu}
\begin{DoxyCompactList}\small\item\em 123 pthread\_\-mutexattr\_\-t mutDelEndNodRuAttr; \item\end{DoxyCompactList}\item 
unsigned int {\bf num\_\-run\_\-threads}
\item 
pthread\_\-cond\_\-t {\bf cond\_\-del\_\-element}
\end{DoxyCompactItemize}
\subsection*{Защищенные члены}
\begin{DoxyCompactItemize}
\item 
void {\bf handlerNode} ({\bf Node} $\ast$curNodeL)
\item 
void {\bf handlNodes} ({\bf Node} $\ast$curNodeL, TagHandelrsMapT::iterator begin, TagHandelrsMapT::iterator end)
\item 
void {\bf handlerIQ} ({\bf Node} $\ast$curNodeL)
\item 
void {\bf sendNodeStart} ({\bf Node} \&stanza)
\item 
void {\bf sendNodeEnd} ({\bf Node} \&stanza)
\end{DoxyCompactItemize}
\subsection*{Защищенные данные}
\begin{DoxyCompactItemize}
\item 
pthread\_\-attr\_\-t {\bf attr}
\item 
multimap$<$ {\bf string}, {\bf IQRespD} $>$ {\bf req\_\-id}
\item 
char {\bf read\_\-Buffer} [8192]
\item 
int {\bf skt\_\-id}
\item 
XML\_\-Parser {\bf xml\_\-parser}
\item 
int {\bf curDeph}
\item 
{\bf Node} $\ast$ {\bf topNode}
\item 
{\bf Node} $\ast$ {\bf curNode}
\item 
{\bf Node} $\ast$ {\bf curNodeSend}
\item 
{\bf TagHandelrsMapT} {\bf tagHandlers}
\item 
{\bf IQHandelrsMapT} {\bf iqHandlers}
\item 
pthread\_\-t {\bf nodeThread}
\end{DoxyCompactItemize}
\subsection*{Друзья}
\begin{DoxyCompactItemize}
\item 
void {\bf startTag} (void $\ast$userData, const XML\_\-Char $\ast$name, const XML\_\-Char $\ast$$\ast$atts)
\item 
void {\bf endTag} (void $\ast$userData, const XML\_\-Char $\ast$name)
\item 
void {\bf characterData} (void $\ast$userData, const XML\_\-Char $\ast$s, int len)
\item 
void $\ast$ {\bf node\_\-threadFunc} (void $\ast$clnt)
\end{DoxyCompactItemize}


\subsection{Подробное описание}


См. определение в файле Protocol.h строка 103



\subsection{Конструктор(ы)}
\index{Protocol@{Protocol}!Protocol@{Protocol}}
\index{Protocol@{Protocol}!Protocol@{Protocol}}
\subsubsection[{Protocol}]{\setlength{\rightskip}{0pt plus 5cm}Protocol::Protocol (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{class_protocol_a5a5359f9566fc47d5758dd247e71668a}


См. определение в файле Protocol.cpp строка 347

\index{Protocol@{Protocol}!$\sim$Protocol@{$\sim$Protocol}}
\index{$\sim$Protocol@{$\sim$Protocol}!Protocol@{Protocol}}
\subsubsection[{$\sim$Protocol}]{\setlength{\rightskip}{0pt plus 5cm}Protocol::$\sim$Protocol (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{class_protocol_ae78a2bc284f521aa47f3fd7718e23ead}


123 pthread\_\-mutex\_\-destroy(\&cs\_\-mutexEndWork); 



См. определение в файле Protocol.cpp строка 573



\subsection{Методы}
\index{Protocol@{Protocol}!addIQHandler@{addIQHandler}}
\index{addIQHandler@{addIQHandler}!Protocol@{Protocol}}
\subsubsection[{addIQHandler}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::addIQHandler (
\begin{DoxyParamCaption}
\item[{{\bf TagHandler}$<$ {\bf TagIQ} $>$::PTagHandler}]{ handler, }
\item[{{\bf string}}]{ xmlns = {\ttfamily \char`\"{}\char`\"{}}, }
\item[{{\bf string}}]{ name = {\ttfamily \char`\"{}query\char`\"{}}}
\end{DoxyParamCaption}
)}\label{class_protocol_a406c7799f0dd3c2bb5e735dcd4fcda51}


См. определение в файле Protocol.cpp строка 410



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_a406c7799f0dd3c2bb5e735dcd4fcda51_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!addTagHandler@{addTagHandler}}
\index{addTagHandler@{addTagHandler}!Protocol@{Protocol}}
\subsubsection[{addTagHandler}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::addTagHandler (
\begin{DoxyParamCaption}
\item[{{\bf TagHandler}$<$ {\bf Node} $>$::PTagHandler}]{ handler, }
\item[{{\bf string}}]{ name = {\ttfamily \char`\"{}\char`\"{}}, }
\item[{{\bf string}}]{ xmlns = {\ttfamily \char`\"{}\char`\"{}}}
\end{DoxyParamCaption}
)}\label{class_protocol_a06c34bbe8567e3dbcdac99b234f3139b}


См. определение в файле Protocol.cpp строка 381

\index{Protocol@{Protocol}!endXMLTagNodeHandler@{endXMLTagNodeHandler}}
\index{endXMLTagNodeHandler@{endXMLTagNodeHandler}!Protocol@{Protocol}}
\subsubsection[{endXMLTagNodeHandler}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::endXMLTagNodeHandler (
\begin{DoxyParamCaption}
\item[{{\bf Node} $\ast$}]{ node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [virtual]}}\label{class_protocol_ac7c9dc77b634583a848f3f67761f5a6d}


Переопределяется в {\bf Client} \doxyref{}{стр.}{class_client_af86a308361d6ff5ecc0c5a211c82be9e} и {\bf Server} \doxyref{}{стр.}{class_server_a99f0679e6dc465318a74ae9c764e8c97}.



См. определение в файле Protocol.cpp строка 135



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=342pt]{class_protocol_ac7c9dc77b634583a848f3f67761f5a6d_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!getCurNodeSend@{getCurNodeSend}}
\index{getCurNodeSend@{getCurNodeSend}!Protocol@{Protocol}}
\subsubsection[{getCurNodeSend}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Node}$\ast$ Protocol::getCurNodeSend (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [inline]}}\label{class_protocol_ab09c6c203b27c18cca1cbd73163b14aa}


См. определение в файле Protocol.h строка 148



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_ab09c6c203b27c18cca1cbd73163b14aa_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!handlerIQ@{handlerIQ}}
\index{handlerIQ@{handlerIQ}!Protocol@{Protocol}}
\subsubsection[{handlerIQ}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::handlerIQ (
\begin{DoxyParamCaption}
\item[{{\bf Node} $\ast$}]{ curNodeL}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_ab6c98ae7e59a019cda6546e6972059a2}


См. определение в файле Protocol.cpp строка 162



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_ab6c98ae7e59a019cda6546e6972059a2_cgraph}
\end{center}
\end{figure}




Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=348pt]{class_protocol_ab6c98ae7e59a019cda6546e6972059a2_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!handlerNode@{handlerNode}}
\index{handlerNode@{handlerNode}!Protocol@{Protocol}}
\subsubsection[{handlerNode}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::handlerNode (
\begin{DoxyParamCaption}
\item[{{\bf Node} $\ast$}]{ curNodeL}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_ac7b058a27a0c64048a081b0704b1e046}


См. определение в файле Protocol.cpp строка 224



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_ac7b058a27a0c64048a081b0704b1e046_cgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!handlNodes@{handlNodes}}
\index{handlNodes@{handlNodes}!Protocol@{Protocol}}
\subsubsection[{handlNodes}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::handlNodes (
\begin{DoxyParamCaption}
\item[{{\bf Node} $\ast$}]{ curNodeL, }
\item[{TagHandelrsMapT::iterator}]{ begin, }
\item[{TagHandelrsMapT::iterator}]{ end}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a3d1b485cc073ceb81e9c2f3e89c55d57}


См. определение в файле Protocol.cpp строка 139



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=360pt]{class_protocol_a3d1b485cc073ceb81e9c2f3e89c55d57_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!manadgeIQResp@{manadgeIQResp}}
\index{manadgeIQResp@{manadgeIQResp}!Protocol@{Protocol}}
\subsubsection[{manadgeIQResp}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::manadgeIQResp (
\begin{DoxyParamCaption}
\item[{{\bf TagIQ} \&}]{ st}
\end{DoxyParamCaption}
)}\label{class_protocol_a0e9f97cc641ae6093fb7518639c4950e}


См. определение в файле Protocol.cpp строка 461



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=352pt]{class_protocol_a0e9f97cc641ae6093fb7518639c4950e_cgraph}
\end{center}
\end{figure}




Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_a0e9f97cc641ae6093fb7518639c4950e_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!parserCreate@{parserCreate}}
\index{parserCreate@{parserCreate}!Protocol@{Protocol}}
\subsubsection[{parserCreate}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::parserCreate (
\begin{DoxyParamCaption}
\item[{int}]{ sktID}
\end{DoxyParamCaption}
)}\label{class_protocol_ae87429bc831561894162c03b3e644f77}


См. определение в файле Protocol.cpp строка 273



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=322pt]{class_protocol_ae87429bc831561894162c03b3e644f77_cgraph}
\end{center}
\end{figure}




Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=346pt]{class_protocol_ae87429bc831561894162c03b3e644f77_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!removeIQHandler@{removeIQHandler}}
\index{removeIQHandler@{removeIQHandler}!Protocol@{Protocol}}
\subsubsection[{removeIQHandler}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::removeIQHandler (
\begin{DoxyParamCaption}
\item[{{\bf TagHandler}$<$ {\bf TagIQ} $>$::PTagHandler}]{ handler}
\end{DoxyParamCaption}
)}\label{class_protocol_a282201ae9e08a3ccecbdee4b0af36c1e}


См. определение в файле Protocol.cpp строка 390



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_a282201ae9e08a3ccecbdee4b0af36c1e_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!sendIQResp@{sendIQResp}}
\index{sendIQResp@{sendIQResp}!Protocol@{Protocol}}
\subsubsection[{sendIQResp}]{\setlength{\rightskip}{0pt plus 5cm}{\bf TagIQ} Protocol::sendIQResp (
\begin{DoxyParamCaption}
\item[{{\bf TagIQ} \&}]{ st, }
\item[{{\bf string}}]{ resultXMLNS, }
\item[{{\bf string}}]{ resultSubTagName}
\end{DoxyParamCaption}
)}\label{class_protocol_affc885c48ba27b3a13fca8b1e6f8d4b8}


key.xmlns=resultXMLNS; key.subtagName=resultSubTagName;

\doxyref{TagIQ}{стр.}{class_tag_i_q} res(req\_\-id[key].result);

cout$<$$<$\char`\"{}iq from:\char`\"{}$<$$<$res.getFrom()$<$$<$endl; 



См. определение в файле Protocol.cpp строка 500



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=344pt]{class_protocol_affc885c48ba27b3a13fca8b1e6f8d4b8_cgraph}
\end{center}
\end{figure}




Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=348pt]{class_protocol_affc885c48ba27b3a13fca8b1e6f8d4b8_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!sendNode@{sendNode}}
\index{sendNode@{sendNode}!Protocol@{Protocol}}
\subsubsection[{sendNode}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::sendNode (
\begin{DoxyParamCaption}
\item[{{\bf Node} \&}]{ stanza}
\end{DoxyParamCaption}
)}\label{class_protocol_ad645b8348592a6eb029a7261167343fe}


См. определение в файле Protocol.cpp строка 449



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_ad645b8348592a6eb029a7261167343fe_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!sendNodeEnd@{sendNodeEnd}}
\index{sendNodeEnd@{sendNodeEnd}!Protocol@{Protocol}}
\subsubsection[{sendNodeEnd}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::sendNodeEnd (
\begin{DoxyParamCaption}
\item[{{\bf Node} \&}]{ stanza}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_ae8cb32d7a286c8b821e489606ceae8ce}


См. определение в файле Protocol.cpp строка 457



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=368pt]{class_protocol_ae8cb32d7a286c8b821e489606ceae8ce_cgraph}
\end{center}
\end{figure}




Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_ae8cb32d7a286c8b821e489606ceae8ce_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!sendNodeStart@{sendNodeStart}}
\index{sendNodeStart@{sendNodeStart}!Protocol@{Protocol}}
\subsubsection[{sendNodeStart}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::sendNodeStart (
\begin{DoxyParamCaption}
\item[{{\bf Node} \&}]{ stanza}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_afdb03f0ec944367954ec213af83c11f3}


См. определение в файле Protocol.cpp строка 453



Граф вызовов:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_afdb03f0ec944367954ec213af83c11f3_cgraph}
\end{center}
\end{figure}




Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_afdb03f0ec944367954ec213af83c11f3_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!sendString@{sendString}}
\index{sendString@{sendString}!Protocol@{Protocol}}
\subsubsection[{sendString}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::sendString (
\begin{DoxyParamCaption}
\item[{{\bf string}}]{ data}
\end{DoxyParamCaption}
)}\label{class_protocol_a3e89cb9bd95d6e08255663104fa289ed}


См. определение в файле Protocol.cpp строка 424



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_a3e89cb9bd95d6e08255663104fa289ed_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!startParsing@{startParsing}}
\index{startParsing@{startParsing}!Protocol@{Protocol}}
\subsubsection[{startParsing}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::startParsing (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{class_protocol_aa0ff3143792917a6c007bd3d5a69cb1f}


pthread\_\-mutex\_\-unlock(\&mutDelEndNodRu); 



См. определение в файле Protocol.cpp строка 287



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_protocol_aa0ff3143792917a6c007bd3d5a69cb1f_icgraph}
\end{center}
\end{figure}


\index{Protocol@{Protocol}!startXMLTagNodeHandler@{startXMLTagNodeHandler}}
\index{startXMLTagNodeHandler@{startXMLTagNodeHandler}!Protocol@{Protocol}}
\subsubsection[{startXMLTagNodeHandler}]{\setlength{\rightskip}{0pt plus 5cm}void Protocol::startXMLTagNodeHandler (
\begin{DoxyParamCaption}
\item[{{\bf Node} $\ast$}]{ node}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [virtual]}}\label{class_protocol_afb07546d9115e3d491e30c5bd5516818}


Переопределяется в {\bf Client} \doxyref{}{стр.}{class_client_a4f4ca95eb8182fc261ed7e3a224a028a} и {\bf Server} \doxyref{}{стр.}{class_server_a2d0ceb0536d5019eb48281e000b7f9aa}.



См. определение в файле Protocol.cpp строка 131



Граф вызова функции:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=354pt]{class_protocol_afb07546d9115e3d491e30c5bd5516818_icgraph}
\end{center}
\end{figure}




\subsection{Документация по друзьям класса и функциям, отноносящимся к классу}
\index{Protocol@{Protocol}!characterData@{characterData}}
\index{characterData@{characterData}!Protocol@{Protocol}}
\subsubsection[{characterData}]{\setlength{\rightskip}{0pt plus 5cm}void characterData (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ userData, }
\item[{const XML\_\-Char $\ast$}]{ s, }
\item[{int}]{ len}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [friend]}}\label{class_protocol_a11b3b266c68d44fcaf71425db5f97914}


См. определение в файле Protocol.cpp строка 41

\index{Protocol@{Protocol}!endTag@{endTag}}
\index{endTag@{endTag}!Protocol@{Protocol}}
\subsubsection[{endTag}]{\setlength{\rightskip}{0pt plus 5cm}void endTag (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ userData, }
\item[{const XML\_\-Char $\ast$}]{ name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [friend]}}\label{class_protocol_a813e6d03be7326a0b0c75c49b40035d4}


====123

====123

=== 



См. определение в файле Protocol.cpp строка 81

\index{Protocol@{Protocol}!node\_\-threadFunc@{node\_\-threadFunc}}
\index{node\_\-threadFunc@{node\_\-threadFunc}!Protocol@{Protocol}}
\subsubsection[{node\_\-threadFunc}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ node\_\-threadFunc (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ clnt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [friend]}}\label{class_protocol_a41d3edbc2e90b5b0ebbaf8d09a864ecf}


См. определение в файле Protocol.cpp строка 15

\index{Protocol@{Protocol}!startTag@{startTag}}
\index{startTag@{startTag}!Protocol@{Protocol}}
\subsubsection[{startTag}]{\setlength{\rightskip}{0pt plus 5cm}void startTag (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ userData, }
\item[{const XML\_\-Char $\ast$}]{ name, }
\item[{const XML\_\-Char $\ast$$\ast$}]{ atts}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [friend]}}\label{class_protocol_a8a62632e525e5fc7612c0d8478fa1736}


См. определение в файле Protocol.cpp строка 53



\subsection{Данные класса}
\index{Protocol@{Protocol}!attr@{attr}}
\index{attr@{attr}!Protocol@{Protocol}}
\subsubsection[{attr}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-attr\_\-t {\bf Protocol::attr}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a9f4329a6c4ab9ed2c095e30fca0f8a6e}


См. определение в файле Protocol.h строка 120

\index{Protocol@{Protocol}!cond\_\-del\_\-element@{cond\_\-del\_\-element}}
\index{cond\_\-del\_\-element@{cond\_\-del\_\-element}!Protocol@{Protocol}}
\subsubsection[{cond\_\-del\_\-element}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-cond\_\-t {\bf Protocol::cond\_\-del\_\-element}}\label{class_protocol_a25380e0b0bea9544375f7a1f4f3bf9d5}


См. определение в файле Protocol.h строка 118

\index{Protocol@{Protocol}!cs\_\-mutex@{cs\_\-mutex}}
\index{cs\_\-mutex@{cs\_\-mutex}!Protocol@{Protocol}}
\subsubsection[{cs\_\-mutex}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf Protocol::cs\_\-mutex}}\label{class_protocol_a6fc3572ec339e79666a35c2d853ef4df}


См. определение в файле Protocol.h строка 108

\index{Protocol@{Protocol}!cs\_\-mutex1@{cs\_\-mutex1}}
\index{cs\_\-mutex1@{cs\_\-mutex1}!Protocol@{Protocol}}
\subsubsection[{cs\_\-mutex1}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf Protocol::cs\_\-mutex1}}\label{class_protocol_aa64b8ec41d86ede9114da1cae6ef062b}


См. определение в файле Protocol.h строка 109

\index{Protocol@{Protocol}!cs\_\-mutexDEL@{cs\_\-mutexDEL}}
\index{cs\_\-mutexDEL@{cs\_\-mutexDEL}!Protocol@{Protocol}}
\subsubsection[{cs\_\-mutexDEL}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf Protocol::cs\_\-mutexDEL}}\label{class_protocol_a857a1231c836cf062ac61d42af05e299}


См. определение в файле Protocol.h строка 113

\index{Protocol@{Protocol}!cs\_\-mutexNewNode@{cs\_\-mutexNewNode}}
\index{cs\_\-mutexNewNode@{cs\_\-mutexNewNode}!Protocol@{Protocol}}
\subsubsection[{cs\_\-mutexNewNode}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf Protocol::cs\_\-mutexNewNode}}\label{class_protocol_a805038cede3bb16c9c98a038f0005274}
123 pthread\_\-mutex\_\-t cs\_\-mutexUNIC; 123 pthread\_\-mutex\_\-t cs\_\-mutexEndWork; 

См. определение в файле Protocol.h строка 112

\index{Protocol@{Protocol}!curDeph@{curDeph}}
\index{curDeph@{curDeph}!Protocol@{Protocol}}
\subsubsection[{curDeph}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf Protocol::curDeph}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_ac8bbfae8d80f20d4f1404f58ee06d45a}


См. определение в файле Protocol.h строка 127

\index{Protocol@{Protocol}!curNode@{curNode}}
\index{curNode@{curNode}!Protocol@{Protocol}}
\subsubsection[{curNode}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Node}$\ast$ {\bf Protocol::curNode}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_af8e3144e06e936f38e6c2fd808185923}


См. определение в файле Protocol.h строка 129

\index{Protocol@{Protocol}!curNodeSend@{curNodeSend}}
\index{curNodeSend@{curNodeSend}!Protocol@{Protocol}}
\subsubsection[{curNodeSend}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Node}$\ast$ {\bf Protocol::curNodeSend}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a772413f4652fae5086003ac48e6616ce}


См. определение в файле Protocol.h строка 130

\index{Protocol@{Protocol}!iqHandlers@{iqHandlers}}
\index{iqHandlers@{iqHandlers}!Protocol@{Protocol}}
\subsubsection[{iqHandlers}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IQHandelrsMapT} {\bf Protocol::iqHandlers}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a605749045305659a8dfbe91d4733acb2}


См. определение в файле Protocol.h строка 141

\index{Protocol@{Protocol}!mutDelEndNodRu@{mutDelEndNodRu}}
\index{mutDelEndNodRu@{mutDelEndNodRu}!Protocol@{Protocol}}
\subsubsection[{mutDelEndNodRu}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf Protocol::mutDelEndNodRu}}\label{class_protocol_a6c2af25e37c41c6c99e23c98890c09a0}


123 pthread\_\-mutexattr\_\-t mutDelEndNodRuAttr; 



См. определение в файле Protocol.h строка 116

\index{Protocol@{Protocol}!nodeThread@{nodeThread}}
\index{nodeThread@{nodeThread}!Protocol@{Protocol}}
\subsubsection[{nodeThread}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-t {\bf Protocol::nodeThread}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_ab9f9de29a887abbc4b7ef1d4e2f26610}


См. определение в файле Protocol.h строка 142

\index{Protocol@{Protocol}!num\_\-run\_\-threads@{num\_\-run\_\-threads}}
\index{num\_\-run\_\-threads@{num\_\-run\_\-threads}!Protocol@{Protocol}}
\subsubsection[{num\_\-run\_\-threads}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf Protocol::num\_\-run\_\-threads}}\label{class_protocol_a39486f465081a4d2646a9f155eff4e64}


См. определение в файле Protocol.h строка 117

\index{Protocol@{Protocol}!read\_\-Buffer@{read\_\-Buffer}}
\index{read\_\-Buffer@{read\_\-Buffer}!Protocol@{Protocol}}
\subsubsection[{read\_\-Buffer}]{\setlength{\rightskip}{0pt plus 5cm}char {\bf Protocol::read\_\-Buffer}[8192]\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a01e003cc11e4bbd493df1bdf15edb22d}


См. определение в файле Protocol.h строка 124

\index{Protocol@{Protocol}!req\_\-id@{req\_\-id}}
\index{req\_\-id@{req\_\-id}!Protocol@{Protocol}}
\subsubsection[{req\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}multimap$<${\bf string},{\bf IQRespD}$>$ {\bf Protocol::req\_\-id}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a892f4485b3de068982c4a1723bdc51ae}


См. определение в файле Protocol.h строка 122

\index{Protocol@{Protocol}!skt\_\-id@{skt\_\-id}}
\index{skt\_\-id@{skt\_\-id}!Protocol@{Protocol}}
\subsubsection[{skt\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf Protocol::skt\_\-id}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_af49c41700095f609533554762a731f17}


См. определение в файле Protocol.h строка 125

\index{Protocol@{Protocol}!tagHandlers@{tagHandlers}}
\index{tagHandlers@{tagHandlers}!Protocol@{Protocol}}
\subsubsection[{tagHandlers}]{\setlength{\rightskip}{0pt plus 5cm}{\bf TagHandelrsMapT} {\bf Protocol::tagHandlers}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a4e197ec90b5db5f76f68395ea077f620}


См. определение в файле Protocol.h строка 140

\index{Protocol@{Protocol}!topNode@{topNode}}
\index{topNode@{topNode}!Protocol@{Protocol}}
\subsubsection[{topNode}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Node}$\ast$ {\bf Protocol::topNode}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_a8ed598b0db5c8abbc275df511ad2fea5}


См. определение в файле Protocol.h строка 128

\index{Protocol@{Protocol}!xml\_\-parser@{xml\_\-parser}}
\index{xml\_\-parser@{xml\_\-parser}!Protocol@{Protocol}}
\subsubsection[{xml\_\-parser}]{\setlength{\rightskip}{0pt plus 5cm}XML\_\-Parser {\bf Protocol::xml\_\-parser}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_protocol_ae8327f6a4c29c12b68aa0c93521c88d5}


См. определение в файле Protocol.h строка 126



Объявления и описания членов классов находятся в файлах:\begin{DoxyCompactItemize}
\item 
ServerFSp/XML/{\bf Protocol.h}\item 
ServerFSp/XML/{\bf Protocol.cpp}\end{DoxyCompactItemize}
