\section{Класс BinaryProtocol}
\label{class_binary_protocol}\index{BinaryProtocol@{BinaryProtocol}}


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



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



Граф связей класса BinaryProtocol:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=400pt]{class_binary_protocol__coll__graph}
\end{center}
\end{figure}
\subsection*{Открытые члены}
\begin{DoxyCompactItemize}
\item 
{\bf BibaryPacket} {\bf readPacket} ()
\item 
ssize\_\-t {\bf readToBuffer} (void $\ast$buffer, size\_\-t length)
\item 
{\bf BinaryProtocol} ({\bf BaseConfigFile} $\ast${\bf cf})
\item 
void {\bf disconnect} ()
\item 
void {\bf sendBuffer} (const void $\ast$buffer, int length)
\item 
void {\bf sendPacket} ({\bf BibaryPacket} packet)
\item 
void {\bf addHandler} ({\bf BPHandler} $\ast$h)
\item 
void {\bf setFillBuffer} (void $\ast$buffer, size\_\-t size, unsigned long int {\bf pktID})
\item 
void {\bf waiteFillBuffer} (unsigned int {\bf pktID})
\item 
void {\bf setSendBufferData} (const void $\ast$buffer, size\_\-t size, unsigned long int {\bf pktID})
\item 
void {\bf startTread} (int {\bf skt\_\-id})
\item 
virtual {\bf $\sim$BinaryProtocol} ()
\end{DoxyCompactItemize}
\subsection*{Открытые статические члены}
\begin{DoxyCompactItemize}
\item 
static unsigned long int {\bf getNextId} ()
\end{DoxyCompactItemize}
\subsection*{Защищенные члены}
\begin{DoxyCompactItemize}
\item 
void {\bf parse} ()
\end{DoxyCompactItemize}
\subsection*{Защищенные данные}
\begin{DoxyCompactItemize}
\item 
pthread\_\-mutex\_\-t {\bf exit\_\-mutex}
\item 
pthread\_\-mutex\_\-t {\bf cs\_\-mutex4}
\item 
pthread\_\-mutex\_\-t {\bf cs\_\-mutex3}
\item 
pthread\_\-attr\_\-t {\bf attr}
\item 
size\_\-t {\bf max\_\-pktsize}
\item 
{\bf BaseConfigFile} $\ast$ {\bf cf}
\item 
int {\bf skt\_\-id}
\item 
pthread\_\-t {\bf clientThread}
\item 
pthread\_\-t {\bf binThread}
\item 
list$<$ {\bf BPHandler} $\ast$ $>$ {\bf handlers}
\item 
map$<$ unsigned long int, {\bf BufferFiller} $\ast$ $>$ {\bf bufferFillers}
\end{DoxyCompactItemize}
\subsection*{Друзья}
\begin{DoxyCompactItemize}
\item 
void $\ast$ {\bf bin\_\-client\_\-threadFunc} (void $\ast$clnt)
\item 
void $\ast$ {\bf binary\_\-threadFunc} (void $\ast$clnt)
\end{DoxyCompactItemize}


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


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



\subsection{Конструктор(ы)}
\index{BinaryProtocol@{BinaryProtocol}!BinaryProtocol@{BinaryProtocol}}
\index{BinaryProtocol@{BinaryProtocol}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{BinaryProtocol}]{\setlength{\rightskip}{0pt plus 5cm}BinaryProtocol::BinaryProtocol (
\begin{DoxyParamCaption}
\item[{{\bf BaseConfigFile} $\ast$}]{ cf}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_a7e3e8528fbdd819da4132bd3188c5780}


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



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


\index{BinaryProtocol@{BinaryProtocol}!$\sim$BinaryProtocol@{$\sim$BinaryProtocol}}
\index{$\sim$BinaryProtocol@{$\sim$BinaryProtocol}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{$\sim$BinaryProtocol}]{\setlength{\rightskip}{0pt plus 5cm}BinaryProtocol::$\sim$BinaryProtocol (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [virtual]}}\label{class_binary_protocol_a74e4585257f934f2eb5578147def79e1}


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



\subsection{Методы}
\index{BinaryProtocol@{BinaryProtocol}!addHandler@{addHandler}}
\index{addHandler@{addHandler}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{addHandler}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::addHandler (
\begin{DoxyParamCaption}
\item[{{\bf BPHandler} $\ast$}]{ h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [inline]}}\label{class_binary_protocol_a36e58e897426fbe45011c8df6f2efd1b}


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

\index{BinaryProtocol@{BinaryProtocol}!disconnect@{disconnect}}
\index{disconnect@{disconnect}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{disconnect}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::disconnect (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [inline]}}\label{class_binary_protocol_ad86dab455a21bda71eb8c774116f9d39}


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

\index{BinaryProtocol@{BinaryProtocol}!getNextId@{getNextId}}
\index{getNextId@{getNextId}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{getNextId}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long int BinaryProtocol::getNextId (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [static]}}\label{class_binary_protocol_a0796bbbd19aeb8fdc8130502820759a2}


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



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


\index{BinaryProtocol@{BinaryProtocol}!parse@{parse}}
\index{parse@{parse}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{parse}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::parse (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_aa3303c0f8bd6df8a4949bab6b22a155c}


!!!!!pthread\_\-mutex\_\-unlock(itBF-\/$>$second.mutex); pthread\_\-mutex\_\-destroy(\&itBF-\/$>$second.mutex); //=== 



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



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




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


\index{BinaryProtocol@{BinaryProtocol}!readPacket@{readPacket}}
\index{readPacket@{readPacket}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{readPacket}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BibaryPacket} BinaryProtocol::readPacket (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_ac798d419422dfb477501abb15cb4d23a}


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



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




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


\index{BinaryProtocol@{BinaryProtocol}!readToBuffer@{readToBuffer}}
\index{readToBuffer@{readToBuffer}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{readToBuffer}]{\setlength{\rightskip}{0pt plus 5cm}ssize\_\-t BinaryProtocol::readToBuffer (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ buffer, }
\item[{size\_\-t}]{ length}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_a6f62c26af61392f13281ea67b444d170}


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



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


\index{BinaryProtocol@{BinaryProtocol}!sendBuffer@{sendBuffer}}
\index{sendBuffer@{sendBuffer}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{sendBuffer}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::sendBuffer (
\begin{DoxyParamCaption}
\item[{const void $\ast$}]{ buffer, }
\item[{int}]{ length}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_a06c3c779bb933f6c802dbe52d1a4ba35}


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



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


\index{BinaryProtocol@{BinaryProtocol}!sendPacket@{sendPacket}}
\index{sendPacket@{sendPacket}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{sendPacket}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::sendPacket (
\begin{DoxyParamCaption}
\item[{{\bf BibaryPacket}}]{ packet}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_a253e090c0aa86a787af69deaccdef0a9}


!! 



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



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




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


\index{BinaryProtocol@{BinaryProtocol}!setFillBuffer@{setFillBuffer}}
\index{setFillBuffer@{setFillBuffer}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{setFillBuffer}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::setFillBuffer (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ buffer, }
\item[{size\_\-t}]{ size, }
\item[{unsigned long int}]{ pktID}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_aa134f256089ff8488b0d183395c26b12}


!!!bf-\/$>$mutex=(pthread\_\-mutex\_\-t$\ast$)malloc(sizeof(pthread\_\-mutex\_\-t));

!!!!pthread\_\-mutex\_\-trylock(\&bf.mutex); 



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



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


\index{BinaryProtocol@{BinaryProtocol}!setSendBufferData@{setSendBufferData}}
\index{setSendBufferData@{setSendBufferData}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{setSendBufferData}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::setSendBufferData (
\begin{DoxyParamCaption}
\item[{const void $\ast$}]{ buffer, }
\item[{size\_\-t}]{ size, }
\item[{unsigned long int}]{ pktID}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_ada7293f581e0474fcce9435b8a898258}


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



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




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


\index{BinaryProtocol@{BinaryProtocol}!startTread@{startTread}}
\index{startTread@{startTread}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{startTread}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::startTread (
\begin{DoxyParamCaption}
\item[{int}]{ skt\_\-id}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_ab29d2b7076fe449e87ede5a4afafd28e}


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



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


\index{BinaryProtocol@{BinaryProtocol}!waiteFillBuffer@{waiteFillBuffer}}
\index{waiteFillBuffer@{waiteFillBuffer}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{waiteFillBuffer}]{\setlength{\rightskip}{0pt plus 5cm}void BinaryProtocol::waiteFillBuffer (
\begin{DoxyParamCaption}
\item[{unsigned int}]{ pktID}
\end{DoxyParamCaption}
)}\label{class_binary_protocol_a2b267e6e072b1f9aaa28bdc6fee73a43}


!!!

!!!

!! 



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



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




\subsection{Документация по друзьям класса и функциям, отноносящимся к классу}
\index{BinaryProtocol@{BinaryProtocol}!bin\_\-client\_\-threadFunc@{bin\_\-client\_\-threadFunc}}
\index{bin\_\-client\_\-threadFunc@{bin\_\-client\_\-threadFunc}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{bin\_\-client\_\-threadFunc}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ bin\_\-client\_\-threadFunc (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{ clnt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  [friend]}}\label{class_binary_protocol_a38b88d1e86be6b9f4cc45062a6d0002b}


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

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


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



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


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

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


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

\index{BinaryProtocol@{BinaryProtocol}!bufferFillers@{bufferFillers}}
\index{bufferFillers@{bufferFillers}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{bufferFillers}]{\setlength{\rightskip}{0pt plus 5cm}map$<$unsigned long int,{\bf BufferFiller}$\ast$$>$ {\bf BinaryProtocol::bufferFillers}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_a4a1f252131d456d6a2670d8fab91f12e}


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

\index{BinaryProtocol@{BinaryProtocol}!cf@{cf}}
\index{cf@{cf}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{cf}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BaseConfigFile}$\ast$ {\bf BinaryProtocol::cf}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_a3341e4e38723550b07cf48408fce0bc1}


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

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


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

\index{BinaryProtocol@{BinaryProtocol}!cs\_\-mutex3@{cs\_\-mutex3}}
\index{cs\_\-mutex3@{cs\_\-mutex3}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{cs\_\-mutex3}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf BinaryProtocol::cs\_\-mutex3}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_a3d98af6611ee5dcfde6edc7f984e9935}


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

\index{BinaryProtocol@{BinaryProtocol}!cs\_\-mutex4@{cs\_\-mutex4}}
\index{cs\_\-mutex4@{cs\_\-mutex4}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{cs\_\-mutex4}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf BinaryProtocol::cs\_\-mutex4}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_a4365e1313bafd848865e2a4c76b3260a}


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

\index{BinaryProtocol@{BinaryProtocol}!exit\_\-mutex@{exit\_\-mutex}}
\index{exit\_\-mutex@{exit\_\-mutex}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{exit\_\-mutex}]{\setlength{\rightskip}{0pt plus 5cm}pthread\_\-mutex\_\-t {\bf BinaryProtocol::exit\_\-mutex}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_aa91bc1152e56413dfd8df62da57d8b93}


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

\index{BinaryProtocol@{BinaryProtocol}!handlers@{handlers}}
\index{handlers@{handlers}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{handlers}]{\setlength{\rightskip}{0pt plus 5cm}list$<${\bf BPHandler}$\ast$$>$ {\bf BinaryProtocol::handlers}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_aea564e12e739fd7ea05b67f52a25c515}


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

\index{BinaryProtocol@{BinaryProtocol}!max\_\-pktsize@{max\_\-pktsize}}
\index{max\_\-pktsize@{max\_\-pktsize}!BinaryProtocol@{BinaryProtocol}}
\subsubsection[{max\_\-pktsize}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t {\bf BinaryProtocol::max\_\-pktsize}\hspace{0.3cm}{\ttfamily  [protected]}}\label{class_binary_protocol_a188301be4e240ca47b9bfe95fa4f1a32}


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

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


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



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