\hypertarget{classfz_1_1socket__base}{}\section{socket\+\_\+base Class Reference} \label{classfz_1_1socket__base}\index{socket\_base@{socket\_base}} Common base clase for \mbox{\hyperlink{classfz_1_1socket}{fz\+::socket}} and \mbox{\hyperlink{classfz_1_1listen__socket}{fz\+::listen\+\_\+socket}}. {\ttfamily \#include $<$socket.\+hpp$>$} Inheritance diagram for socket\+\_\+base\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=222pt]{classfz_1_1socket__base__inherit__graph} \end{center} \end{figure} Collaboration diagram for socket\+\_\+base\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classfz_1_1socket__base__coll__graph} \end{center} \end{figure} \subsection*{Public Types} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classfz_1_1socket__base_a2d680f96c20c525d4d49c4a61c709800}\label{classfz_1_1socket__base_a2d680f96c20c525d4d49c4a61c709800}} typedef intptr\+\_\+t {\bfseries socket\+\_\+t} \end{DoxyCompactItemize} \subsection*{Public Member Functions} \begin{DoxyCompactItemize} \item int \mbox{\hyperlink{classfz_1_1socket__base_a59fae3894bc485b15bbb69a2df5cdb1b}{set\+\_\+buffer\+\_\+sizes}} (int size\+\_\+receive, int size\+\_\+send) \begin{DoxyCompactList}\small\item\em Sets socket buffer sizes. \end{DoxyCompactList}\item \mbox{\Hypertarget{classfz_1_1socket__base_aa1ee4924a9e7fbcc6e38b3cc10534e19}\label{classfz_1_1socket__base_aa1ee4924a9e7fbcc6e38b3cc10534e19}} address\+\_\+type \mbox{\hyperlink{classfz_1_1socket__base_aa1ee4924a9e7fbcc6e38b3cc10534e19}{address\+\_\+family}} () const \begin{DoxyCompactList}\small\item\em If connected, either ipv4 or ipv6, unknown otherwise. \end{DoxyCompactList}\item std\+::string \mbox{\hyperlink{classfz_1_1socket__base_a4c5108bfb28fd4c59edc9d340fdc915c}{local\+\_\+ip}} (bool strip\+\_\+zone\+\_\+index=false) const \begin{DoxyCompactList}\small\item\em Returns local address of a connected socket. \end{DoxyCompactList}\item int \mbox{\hyperlink{classfz_1_1socket__base_ae0edcc20564cae42547f4183efc00bc9}{local\+\_\+port}} (int \&error) const \begin{DoxyCompactList}\small\item\em Returns local port of a connected socket. \end{DoxyCompactList}\item bool \mbox{\hyperlink{classfz_1_1socket__base_ac8d45bf1f532805aa27a85f862e2d7ad}{bind}} (std\+::string const \&address) \begin{DoxyCompactList}\small\item\em Bind socket to the specific local IP. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Static Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classfz_1_1socket__base_a20c4814777886e1ddb39a762d226f990}\label{classfz_1_1socket__base_a20c4814777886e1ddb39a762d226f990}} static std\+::string {\bfseries address\+\_\+to\+\_\+string} (sockaddr const $\ast$addr, int addr\+\_\+len, bool with\+\_\+port=true, bool strip\+\_\+zone\+\_\+index=false) \item \mbox{\Hypertarget{classfz_1_1socket__base_aec20ba55c4259b4bd463951ff6e49955}\label{classfz_1_1socket__base_aec20ba55c4259b4bd463951ff6e49955}} static std\+::string {\bfseries address\+\_\+to\+\_\+string} (char const $\ast$buf, int buf\+\_\+len) \end{DoxyCompactItemize} \subsection*{Protected Member Functions} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classfz_1_1socket__base_aa70f97491f9998c33e57dcea3f8e75ee}\label{classfz_1_1socket__base_aa70f97491f9998c33e57dcea3f8e75ee}} {\bfseries socket\+\_\+base} (\mbox{\hyperlink{classfz_1_1thread__pool}{thread\+\_\+pool}} \&pool, \mbox{\hyperlink{classfz_1_1event__handler}{event\+\_\+handler}} $\ast$evt\+\_\+handler, \mbox{\hyperlink{classfz_1_1socket__event__source}{socket\+\_\+event\+\_\+source}} $\ast$ev\+\_\+source) \item \mbox{\Hypertarget{classfz_1_1socket__base_a5473d8320e5f61ac1ce834594d251ee9}\label{classfz_1_1socket__base_a5473d8320e5f61ac1ce834594d251ee9}} int {\bfseries close} () \item \mbox{\Hypertarget{classfz_1_1socket__base_af276c91c8943f1b04eb130aeaabee8aa}\label{classfz_1_1socket__base_af276c91c8943f1b04eb130aeaabee8aa}} void {\bfseries do\+\_\+set\+\_\+event\+\_\+handler} (\mbox{\hyperlink{classfz_1_1event__handler}{event\+\_\+handler}} $\ast$p\+Evt\+Handler) \item \mbox{\Hypertarget{classfz_1_1socket__base_ae72c938604a349a83e5eab8f5d927560}\label{classfz_1_1socket__base_ae72c938604a349a83e5eab8f5d927560}} void {\bfseries detach\+\_\+thread} (\mbox{\hyperlink{classfz_1_1scoped__lock}{scoped\+\_\+lock}} \&l) \end{DoxyCompactItemize} \subsection*{Protected Attributes} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classfz_1_1socket__base_a9fdf0b76782b364d3a8a8257979646b2}\label{classfz_1_1socket__base_a9fdf0b76782b364d3a8a8257979646b2}} \mbox{\hyperlink{classfz_1_1thread__pool}{thread\+\_\+pool}} \& {\bfseries thread\+\_\+pool\+\_\+} \item \mbox{\Hypertarget{classfz_1_1socket__base_a65f92349ef449ae5b3dd5258f98c719f}\label{classfz_1_1socket__base_a65f92349ef449ae5b3dd5258f98c719f}} \mbox{\hyperlink{classfz_1_1event__handler}{event\+\_\+handler}} $\ast$ {\bfseries evt\+\_\+handler\+\_\+} \item \mbox{\Hypertarget{classfz_1_1socket__base_a8acb6ce3eb980f66181343df91d4f116}\label{classfz_1_1socket__base_a8acb6ce3eb980f66181343df91d4f116}} socket\+\_\+t {\bfseries fd\+\_\+} \{-\/1\} \item \mbox{\Hypertarget{classfz_1_1socket__base_aec54074640bec9e1715b42cbbdab4773}\label{classfz_1_1socket__base_aec54074640bec9e1715b42cbbdab4773}} socket\+\_\+thread $\ast$ {\bfseries socket\+\_\+thread\+\_\+} \{\} \item \mbox{\Hypertarget{classfz_1_1socket__base_a0e9b61892283d5316755b3614b212a0e}\label{classfz_1_1socket__base_a0e9b61892283d5316755b3614b212a0e}} unsigned int {\bfseries port\+\_\+} \{\} \item \mbox{\Hypertarget{classfz_1_1socket__base_a19e48cfac2398b248b9dcd1bff89bdc2}\label{classfz_1_1socket__base_a19e48cfac2398b248b9dcd1bff89bdc2}} int {\bfseries family\+\_\+} \item \mbox{\Hypertarget{classfz_1_1socket__base_a3948b499081be65d1bbc4a3751375304}\label{classfz_1_1socket__base_a3948b499081be65d1bbc4a3751375304}} int {\bfseries buffer\+\_\+sizes\+\_\+} \mbox{[}2\mbox{]} \item \mbox{\Hypertarget{classfz_1_1socket__base_ab2ae0a25bc4c11cbb0d18579b24a9a7b}\label{classfz_1_1socket__base_ab2ae0a25bc4c11cbb0d18579b24a9a7b}} \mbox{\hyperlink{classfz_1_1socket__event__source}{socket\+\_\+event\+\_\+source}} $\ast$const {\bfseries ev\+\_\+source\+\_\+} \{\} \end{DoxyCompactItemize} \subsection*{Friends} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classfz_1_1socket__base_aefd3a1f48612b951593274899bd2037e}\label{classfz_1_1socket__base_aefd3a1f48612b951593274899bd2037e}} class {\bfseries socket\+\_\+thread} \end{DoxyCompactItemize} \subsection{Detailed Description} Common base clase for \mbox{\hyperlink{classfz_1_1socket}{fz\+::socket}} and \mbox{\hyperlink{classfz_1_1listen__socket}{fz\+::listen\+\_\+socket}}. \subsection{Member Function Documentation} \mbox{\Hypertarget{classfz_1_1socket__base_ac8d45bf1f532805aa27a85f862e2d7ad}\label{classfz_1_1socket__base_ac8d45bf1f532805aa27a85f862e2d7ad}} \index{socket\_base@{socket\_base}!bind@{bind}} \index{bind@{bind}!socket\_base@{socket\_base}} \subsubsection{\texorpdfstring{bind()}{bind()}} {\footnotesize\ttfamily bool bind (\begin{DoxyParamCaption}\item[{std\+::string const \&}]{address }\end{DoxyParamCaption})} Bind socket to the specific local IP. Undefined after having called connect/listen \mbox{\Hypertarget{classfz_1_1socket__base_a4c5108bfb28fd4c59edc9d340fdc915c}\label{classfz_1_1socket__base_a4c5108bfb28fd4c59edc9d340fdc915c}} \index{socket\_base@{socket\_base}!local\_ip@{local\_ip}} \index{local\_ip@{local\_ip}!socket\_base@{socket\_base}} \subsubsection{\texorpdfstring{local\_ip()}{local\_ip()}} {\footnotesize\ttfamily std\+::string local\+\_\+ip (\begin{DoxyParamCaption}\item[{bool}]{strip\+\_\+zone\+\_\+index = {\ttfamily false} }\end{DoxyParamCaption}) const} Returns local address of a connected socket. \begin{DoxyReturn}{Returns} empty string on error \end{DoxyReturn} \mbox{\Hypertarget{classfz_1_1socket__base_ae0edcc20564cae42547f4183efc00bc9}\label{classfz_1_1socket__base_ae0edcc20564cae42547f4183efc00bc9}} \index{socket\_base@{socket\_base}!local\_port@{local\_port}} \index{local\_port@{local\_port}!socket\_base@{socket\_base}} \subsubsection{\texorpdfstring{local\_port()}{local\_port()}} {\footnotesize\ttfamily int local\+\_\+port (\begin{DoxyParamCaption}\item[{int \&}]{error }\end{DoxyParamCaption}) const} Returns local port of a connected socket. \begin{DoxyReturn}{Returns} -\/1 on error \end{DoxyReturn} \mbox{\Hypertarget{classfz_1_1socket__base_a59fae3894bc485b15bbb69a2df5cdb1b}\label{classfz_1_1socket__base_a59fae3894bc485b15bbb69a2df5cdb1b}} \index{socket\_base@{socket\_base}!set\_buffer\_sizes@{set\_buffer\_sizes}} \index{set\_buffer\_sizes@{set\_buffer\_sizes}!socket\_base@{socket\_base}} \subsubsection{\texorpdfstring{set\_buffer\_sizes()}{set\_buffer\_sizes()}} {\footnotesize\ttfamily int set\+\_\+buffer\+\_\+sizes (\begin{DoxyParamCaption}\item[{int}]{size\+\_\+receive, }\item[{int}]{size\+\_\+send }\end{DoxyParamCaption})} Sets socket buffer sizes. Internally this sets S\+O\+\_\+\+R\+C\+V\+B\+UF and S\+O\+\_\+\+S\+N\+D\+B\+UF on the socket. If called on listen socket, sizes will be inherited by accepted sockets. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} \item \mbox{\hyperlink{socket_8hpp}{socket.\+hpp}}\end{DoxyCompactItemize}