Many changes to ServerCore

This commit is contained in:
barant committed 2021-07-23 08:57:27 -07:00
1 parent 6969ef0fbb
commit d445834af6
83 files changed
+666 -756

No files matched your search

+8 -8
View File
@@ -25,9 +25,9 @@ Collaboration diagram for core\+::Command\+:\nopagebreak
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
virtual bool \mbox{\hyperlink{classcore_1_1Command_abdc0d7a4693a7f7940bbae20c4a667c0}{check}} (std\+::string request)
virtual bool \mbox{\hyperlink{classcore_1_1Command_af9b8d8b3a6d6566f86e0abcb0d10f905}{check}} (coreutils\+::\+Z\+String request)
\item
virtual int \mbox{\hyperlink{classcore_1_1Command_a068ebc22f7a067cf23ed2c17f95b06e9}{process\+Command}} (std\+::string request, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data)
virtual int \mbox{\hyperlink{classcore_1_1Command_ad8eecee5b179a0030d2f34bcfa30d4f4}{process\+Command}} (coreutils\+::\+Z\+String request, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data)
\item
virtual void \mbox{\hyperlink{classcore_1_1Command_a314aef05f78aacb802097f8ae0875291}{output}} (Session $\ast$session)
\item
@@ -45,15 +45,15 @@ std\+::string {\bfseries get\+Name} ()
Use the \mbox{\hyperlink{classcore_1_1Command}{Command}} object in combination with a \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} object to maintain a list of functions that can be invoked as a result of processing a request.
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classcore_1_1Command_abdc0d7a4693a7f7940bbae20c4a667c0}\label{classcore_1_1Command_abdc0d7a4693a7f7940bbae20c4a667c0}}
\mbox{\Hypertarget{classcore_1_1Command_af9b8d8b3a6d6566f86e0abcb0d10f905}\label{classcore_1_1Command_af9b8d8b3a6d6566f86e0abcb0d10f905}}
\index{core::Command@{core::Command}!check@{check}}
\index{check@{check}!core::Command@{core::Command}}
\doxysubsubsection{\texorpdfstring{check()}{check()}}
{\footnotesize\ttfamily bool core\+::\+Command\+::check (\begin{DoxyParamCaption}\item[{std\+::string}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
{\footnotesize\ttfamily bool core\+::\+Command\+::check (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{request }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
Implement check method to provide a special check rule upon the request to see if the command should be processed.
The default rule is to verify that the first token in the request string matches the name given on the registration of the command to the \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}}. This can be overridden by implementing the \mbox{\hyperlink{classcore_1_1Command_abdc0d7a4693a7f7940bbae20c4a667c0}{check()}} method to perform the test and return the condition of the command.
The default rule is to verify that the first token in the request string matches the name given on the registration of the command to the \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}}. This can be overridden by implementing the \mbox{\hyperlink{classcore_1_1Command_af9b8d8b3a6d6566f86e0abcb0d10f905}{check()}} method to perform the test and return the condition of the command.
\begin{DoxyParams}{Parameters}
@@ -76,11 +76,11 @@ Specify the output that will occur to the specified session.
{\em session} & The session that will receive the output. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classcore_1_1Command_a068ebc22f7a067cf23ed2c17f95b06e9}\label{classcore_1_1Command_a068ebc22f7a067cf23ed2c17f95b06e9}}
\mbox{\Hypertarget{classcore_1_1Command_ad8eecee5b179a0030d2f34bcfa30d4f4}\label{classcore_1_1Command_ad8eecee5b179a0030d2f34bcfa30d4f4}}
\index{core::Command@{core::Command}!processCommand@{processCommand}}
\index{processCommand@{processCommand}!core::Command@{core::Command}}
\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}}
{\footnotesize\ttfamily int core\+::\+Command\+::process\+Command (\begin{DoxyParamCaption}\item[{std\+::string}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
{\footnotesize\ttfamily int core\+::\+Command\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.
@@ -96,7 +96,7 @@ Returns 0 if execution of the command was successful. Otherwise returns a non-\/
\end{DoxyReturn}
Reimplemented in \mbox{\hyperlink{classcore_1_1CommandList_a98939555ca061b445019a841726e3ef6}{core\+::\+Command\+List}}, \mbox{\hyperlink{classcore_1_1EPoll_a0c2d7fdaec43d0a15abab0399d5727df}{core\+::\+E\+Poll}}, and \mbox{\hyperlink{classcore_1_1TCPServer_a93f64f81bc63f145799af91138a064dc}{core\+::\+T\+C\+P\+Server}}.
Reimplemented in \mbox{\hyperlink{classcore_1_1EPoll_a5cb8a89fb45922c8c88472ec3eae7858}{core\+::\+E\+Poll}}, and \mbox{\hyperlink{classcore_1_1TCPServer_ad08e04a2ff44c9c40419cdc6bd0e4b79}{core\+::\+T\+C\+P\+Server}}.
\mbox{\Hypertarget{classcore_1_1Command_ad8b0321c64838f4d5c8f93461b97cfef}\label{classcore_1_1Command_ad8b0321c64838f4d5c8f93461b97cfef}}
\index{core::Command@{core::Command}!setName@{setName}}
+6 -27
View File
@@ -29,14 +29,15 @@ void \mbox{\hyperlink{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9
\item
void \mbox{\hyperlink{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}{remove}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command)
\item
bool \mbox{\hyperlink{classcore_1_1CommandList_a589f3eba55beebad94a5978970e0650d}{process\+Request}} (std\+::string request, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data)
bool \mbox{\hyperlink{classcore_1_1CommandList_a4d0150f59f832c65f113a6a575f45c19}{process\+Request}} (coreutils\+::\+Z\+String request, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data)
\item
bool \mbox{\hyperlink{classcore_1_1CommandList_a40211d843807cd65f6614c17efcb00e4}{grab\+Input}} (\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, \mbox{\hyperlink{classcore_1_1Command}{Command}} \&command)
\item
\mbox{\Hypertarget{classcore_1_1CommandList_a2bf14022331b23e0878aa9d676a90110}\label{classcore_1_1CommandList_a2bf14022331b23e0878aa9d676a90110}}
void {\bfseries clear\+Grab} (\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session)
\item
int \mbox{\hyperlink{classcore_1_1CommandList_a98939555ca061b445019a841726e3ef6}{process\+Command}} (std\+::string request, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data)
\mbox{\Hypertarget{classcore_1_1CommandList_a98939555ca061b445019a841726e3ef6}\label{classcore_1_1CommandList_a98939555ca061b445019a841726e3ef6}}
int {\bfseries process\+Command} (std\+::string request, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data)
\end{DoxyCompactItemize}
\doxysubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
@@ -64,35 +65,13 @@ Add a new command to the command list and assign a default search value. \mbox{\
\doxysubsubsection{\texorpdfstring{grabInput()}{grabInput()}}
{\footnotesize\ttfamily bool core\+::\+Command\+List\+::grab\+Input (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})}
Use \mbox{\hyperlink{classcore_1_1CommandList_a40211d843807cd65f6614c17efcb00e4}{grab\+Input()}} within a \mbox{\hyperlink{classcore_1_1Command}{Command}} object to force the requesting handler to receive all further input from the socket. Use release\+Grab() method to release the session back to normal command processing. \mbox{\Hypertarget{classcore_1_1CommandList_a98939555ca061b445019a841726e3ef6}\label{classcore_1_1CommandList_a98939555ca061b445019a841726e3ef6}}
\index{core::CommandList@{core::CommandList}!processCommand@{processCommand}}
\index{processCommand@{processCommand}!core::CommandList@{core::CommandList}}
\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}}
{\footnotesize\ttfamily int core\+::\+Command\+List\+::process\+Command (\begin{DoxyParamCaption}\item[{std\+::string}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
This method is used to implement the functionality of the requested command. This pure virtual function must be implemented in your inheriting object.
\begin{DoxyParams}{Parameters}
{\em request} & The request that was entered by the user to invoke this command. \\
\hline
{\em session} & Specify the requesting session so that the execution of the command process can return its output to the session. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns 0 if execution of the command was successful. Otherwise returns a non-\/zero value indicating an error condition.
\end{DoxyReturn}
Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a068ebc22f7a067cf23ed2c17f95b06e9}{core\+::\+Command}}.
\mbox{\Hypertarget{classcore_1_1CommandList_a589f3eba55beebad94a5978970e0650d}\label{classcore_1_1CommandList_a589f3eba55beebad94a5978970e0650d}}
Use \mbox{\hyperlink{classcore_1_1CommandList_a40211d843807cd65f6614c17efcb00e4}{grab\+Input()}} within a \mbox{\hyperlink{classcore_1_1Command}{Command}} object to force the requesting handler to receive all further input from the socket. Use release\+Grab() method to release the session back to normal command processing. \mbox{\Hypertarget{classcore_1_1CommandList_a4d0150f59f832c65f113a6a575f45c19}\label{classcore_1_1CommandList_a4d0150f59f832c65f113a6a575f45c19}}
\index{core::CommandList@{core::CommandList}!processRequest@{processRequest}}
\index{processRequest@{processRequest}!core::CommandList@{core::CommandList}}
\doxysubsubsection{\texorpdfstring{processRequest()}{processRequest()}}
{\footnotesize\ttfamily bool core\+::\+Command\+List\+::process\+Request (\begin{DoxyParamCaption}\item[{std\+::string}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})}
{\footnotesize\ttfamily bool core\+::\+Command\+List\+::process\+Request (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})}
Use this method to apply a parsed P\+String to the command set and execute the matching parameter. The selected command will return a true on a call to \mbox{\hyperlink{classcore_1_1Command_abdc0d7a4693a7f7940bbae20c4a667c0}{check()}}. If there is a handler that has a grab on the process handler then control is given to the process handler holding the grab on the input. \mbox{\Hypertarget{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}\label{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}}
Use this method to apply a parsed P\+String to the command set and execute the matching parameter. The selected command will return a true on a call to \mbox{\hyperlink{classcore_1_1Command_af9b8d8b3a6d6566f86e0abcb0d10f905}{check()}}. If there is a handler that has a grab on the process handler then control is given to the process handler holding the grab on the input. \mbox{\Hypertarget{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}\label{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}}
\index{core::CommandList@{core::CommandList}!remove@{remove}}
\index{remove@{remove}!core::CommandList@{core::CommandList}}
\doxysubsubsection{\texorpdfstring{remove()}{remove()}}
+5 -5
View File
@@ -34,7 +34,7 @@ void {\bfseries write\+Log} (std\+::string data)
\doxysubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item
void \mbox{\hyperlink{classcore_1_1ConsoleSession_a830cc1e1e0c3fe3b066f0a9f7f469490}{protocol}} (std\+::string data) override
void \mbox{\hyperlink{classcore_1_1ConsoleSession_a72cd8a1ed55112b7245d889a9424fd64}{protocol}} (coreutils\+::\+Z\+String data) override
\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}
@@ -42,20 +42,20 @@ void \mbox{\hyperlink{classcore_1_1ConsoleSession_a830cc1e1e0c3fe3b066f0a9f7f469
\doxysubsection{Detailed Description}
\mbox{\hyperlink{classcore_1_1ConsoleSession}{Console\+Session}}
Extends the session parameters for this \mbox{\hyperlink{classcore_1_1TCPSocket}{T\+C\+P\+Socket}} derived object. Extend the \mbox{\hyperlink{classcore_1_1ConsoleSession_a830cc1e1e0c3fe3b066f0a9f7f469490}{protocol()}} method in order to define the behavior and protocol interaction for this socket which is a console session.
Extends the session parameters for this \mbox{\hyperlink{classcore_1_1TCPSocket}{T\+C\+P\+Socket}} derived object. Extend the \mbox{\hyperlink{classcore_1_1ConsoleSession_a72cd8a1ed55112b7245d889a9424fd64}{protocol()}} method in order to define the behavior and protocol interaction for this socket which is a console session.
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classcore_1_1ConsoleSession_a830cc1e1e0c3fe3b066f0a9f7f469490}\label{classcore_1_1ConsoleSession_a830cc1e1e0c3fe3b066f0a9f7f469490}}
\mbox{\Hypertarget{classcore_1_1ConsoleSession_a72cd8a1ed55112b7245d889a9424fd64}\label{classcore_1_1ConsoleSession_a72cd8a1ed55112b7245d889a9424fd64}}
\index{core::ConsoleSession@{core::ConsoleSession}!protocol@{protocol}}
\index{protocol@{protocol}!core::ConsoleSession@{core::ConsoleSession}}
\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}}
{\footnotesize\ttfamily void core\+::\+Console\+Session\+::protocol (\begin{DoxyParamCaption}\item[{std\+::string}]{data = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+Console\+Session\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input.
When data is received within the session two modes are available to pass the data through the protocol method\+: L\+I\+NE or B\+L\+O\+CK.
Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_ae90dc64e2d3c4b3239117923145edb3f}{core\+::\+T\+C\+P\+Session}}.
Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a4a2a34c9b1252664e93c576a27c30720}{core\+::\+T\+C\+P\+Session}}.
+5 -5
View File
@@ -43,7 +43,7 @@ int \mbox{\hyperlink{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}{get\+
\begin{DoxyCompactList}\small\item\em Return the descriptor for the e\+Poll socket. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}{event\+Received}} (struct epoll\+\_\+event event)
\begin{DoxyCompactList}\small\item\em Dispatch event to appropriate socket. \end{DoxyCompactList}\item
int \mbox{\hyperlink{classcore_1_1EPoll_a0c2d7fdaec43d0a15abab0399d5727df}{process\+Command}} (std\+::string command, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data) override
int \mbox{\hyperlink{classcore_1_1EPoll_a5cb8a89fb45922c8c88472ec3eae7858}{process\+Command}} (coreutils\+::\+Z\+String command, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data) override
\begin{DoxyCompactList}\small\item\em Output the threads array to the console. \end{DoxyCompactList}\item
\mbox{\Hypertarget{classcore_1_1EPoll_a033633714311f3edc4127ddd1c37f299}\label{classcore_1_1EPoll_a033633714311f3edc4127ddd1c37f299}}
void {\bfseries reset\+Socket} (\mbox{\hyperlink{classcore_1_1Socket}{Socket}} $\ast$socket)
@@ -114,17 +114,17 @@ Use this method to obtain the current descriptor socket number for the epoll fun
Returns a true if the stop command has been requested.
This method returns a true if the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method has been called and the epoll system is shutting. \mbox{\Hypertarget{classcore_1_1EPoll_a0c2d7fdaec43d0a15abab0399d5727df}\label{classcore_1_1EPoll_a0c2d7fdaec43d0a15abab0399d5727df}}
This method returns a true if the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method has been called and the epoll system is shutting. \mbox{\Hypertarget{classcore_1_1EPoll_a5cb8a89fb45922c8c88472ec3eae7858}\label{classcore_1_1EPoll_a5cb8a89fb45922c8c88472ec3eae7858}}
\index{core::EPoll@{core::EPoll}!processCommand@{processCommand}}
\index{processCommand@{processCommand}!core::EPoll@{core::EPoll}}
\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}}
{\footnotesize\ttfamily int core\+::\+E\+Poll\+::process\+Command (\begin{DoxyParamCaption}\item[{std\+::string}]{command, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily int core\+::\+E\+Poll\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{command, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Output the threads array to the console.
The \mbox{\hyperlink{classcore_1_1EPoll_a0c2d7fdaec43d0a15abab0399d5727df}{process\+Command()}} method displays the thread array to the requesting console via the session passed as parameter.
The \mbox{\hyperlink{classcore_1_1EPoll_a5cb8a89fb45922c8c88472ec3eae7858}{process\+Command()}} method displays the thread array to the requesting console via the session passed as parameter.
\begin{DoxyParams}{Parameters}
@@ -133,7 +133,7 @@ The \mbox{\hyperlink{classcore_1_1EPoll_a0c2d7fdaec43d0a15abab0399d5727df}{proce
\end{DoxyParams}
Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a068ebc22f7a067cf23ed2c17f95b06e9}{core\+::\+Command}}.
Reimplemented from \mbox{\hyperlink{classcore_1_1Command_ad8eecee5b179a0030d2f34bcfa30d4f4}{core\+::\+Command}}.
\mbox{\Hypertarget{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}\label{classcore_1_1EPoll_a3d813c7bbf0da70ebc8e3cb6aeeacfb4}}
\index{core::EPoll@{core::EPoll}!registerSocket@{registerSocket}}
+2 -2
View File
@@ -30,8 +30,8 @@ int {\bfseries add\+Watch} (std\+::string watch)
\mbox{\Hypertarget{classcore_1_1INotify_a5ce2a1bbfd69f5a88ef807f7ed439c06}\label{classcore_1_1INotify_a5ce2a1bbfd69f5a88ef807f7ed439c06}}
void {\bfseries remove\+Watch} (int wd)
\item
\mbox{\Hypertarget{classcore_1_1INotify_abb1608d7ee7fe3d96cea7f83078786eb}\label{classcore_1_1INotify_abb1608d7ee7fe3d96cea7f83078786eb}}
void {\bfseries on\+Data\+Received} (char $\ast$buffer, int len) override
\mbox{\Hypertarget{classcore_1_1INotify_a934781c449fbd9171f47c34db6cac4e9}\label{classcore_1_1INotify_a934781c449fbd9171f47c34db6cac4e9}}
void {\bfseries on\+Data\+Received} (coreutils\+::\+Z\+String data) override
\item
\mbox{\Hypertarget{classcore_1_1INotify_a172949023698fc486d690d3b6d3d6f17}\label{classcore_1_1INotify_a172949023698fc486d690d3b6d3d6f17}}
virtual void {\bfseries in\+Access} (std\+::string name)
+6 -6
View File
@@ -77,10 +77,10 @@ int {\bfseries get\+Buffer\+Size} ()
\item
virtual void \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{on\+Data\+Received}} (std\+::string data)
\begin{DoxyCompactList}\small\item\em Called when data is received from the socket. \end{DoxyCompactList}\item
\mbox{\Hypertarget{classcore_1_1Socket_af6c06db2441633ae9979affe72930abc}\label{classcore_1_1Socket_af6c06db2441633ae9979affe72930abc}}
virtual void {\bfseries on\+Data\+Received} (char $\ast$buffer, int len)
\mbox{\Hypertarget{classcore_1_1Socket_aa1b212533877a49c965a3aaa05f22d03}\label{classcore_1_1Socket_aa1b212533877a49c965a3aaa05f22d03}}
virtual void {\bfseries on\+Data\+Received} (coreutils\+::\+Z\+String data)
\item
virtual void \mbox{\hyperlink{classcore_1_1Socket_af455ec6f793473f529507af26aa54695}{receive\+Data}} (char $\ast$buffer, int buffer\+Length)
virtual void \mbox{\hyperlink{classcore_1_1Socket_a481b3b3874a6862f8d97030297cc6f32}{receive\+Data}} (coreutils\+::\+Z\+String buffer)
\end{DoxyCompactItemize}
\doxysubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
@@ -189,15 +189,15 @@ Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77
Called when the socket has finished unregistering for the epoll processing.
The on\+Unregistered method is called whenever the socket is unregistered with e\+Poll and socket communcation events will be stopped. The default method will close the socket and clean up the connection. If this is overridden by an extended object then the object should call this method to clean the socket up. \mbox{\Hypertarget{classcore_1_1Socket_af455ec6f793473f529507af26aa54695}\label{classcore_1_1Socket_af455ec6f793473f529507af26aa54695}}
The on\+Unregistered method is called whenever the socket is unregistered with e\+Poll and socket communcation events will be stopped. The default method will close the socket and clean up the connection. If this is overridden by an extended object then the object should call this method to clean the socket up. \mbox{\Hypertarget{classcore_1_1Socket_a481b3b3874a6862f8d97030297cc6f32}\label{classcore_1_1Socket_a481b3b3874a6862f8d97030297cc6f32}}
\index{core::Socket@{core::Socket}!receiveData@{receiveData}}
\index{receiveData@{receiveData}!core::Socket@{core::Socket}}
\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}}
{\footnotesize\ttfamily void core\+::\+Socket\+::receive\+Data (\begin{DoxyParamCaption}\item[{char $\ast$}]{buffer, }\item[{int}]{buffer\+Length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+Socket\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
receive\+Data will read the data from the socket and place it in the socket buffer. T\+LS layer overrides this to be able to read from S\+SL.
Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a1822cb21de545dc1a183ec0bac6cc4f0}{core\+::\+T\+L\+S\+Session}}.
Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a4b3c2d871d83150974bba48435eaf6cf}{core\+::\+T\+L\+S\+Session}}.
\mbox{\Hypertarget{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}\label{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}}
\index{core::Socket@{core::Socket}!setDescriptor@{setDescriptor}}
+4 -4
View File
@@ -56,7 +56,7 @@ std\+::vector$<$ \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\
\item
void \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{on\+Data\+Received}} (std\+::string data) override
\item
int \mbox{\hyperlink{classcore_1_1TCPServer_a93f64f81bc63f145799af91138a064dc}{process\+Command}} (std\+::string command, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data) override
int \mbox{\hyperlink{classcore_1_1TCPServer_ad08e04a2ff44c9c40419cdc6bd0e4b79}{process\+Command}} (coreutils\+::\+Z\+String command, \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$session, std\+::stringstream \&data) override
\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}
@@ -131,11 +131,11 @@ Override the virtual data\+Received since for the server these are requests to a
Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}.
\mbox{\Hypertarget{classcore_1_1TCPServer_a93f64f81bc63f145799af91138a064dc}\label{classcore_1_1TCPServer_a93f64f81bc63f145799af91138a064dc}}
\mbox{\Hypertarget{classcore_1_1TCPServer_ad08e04a2ff44c9c40419cdc6bd0e4b79}\label{classcore_1_1TCPServer_ad08e04a2ff44c9c40419cdc6bd0e4b79}}
\index{core::TCPServer@{core::TCPServer}!processCommand@{processCommand}}
\index{processCommand@{processCommand}!core::TCPServer@{core::TCPServer}}
\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}}
{\footnotesize\ttfamily int core\+::\+T\+C\+P\+Server\+::process\+Command (\begin{DoxyParamCaption}\item[{std\+::string}]{command, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily int core\+::\+T\+C\+P\+Server\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{command, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} $\ast$}]{session, }\item[{std\+::stringstream \&}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
This method is called when the \mbox{\hyperlink{classcore_1_1Command}{Command}} associated with this object is requested because a user has typed in the associated command name on a command entry line.
@@ -146,7 +146,7 @@ This method is called when the \mbox{\hyperlink{classcore_1_1Command}{Command}}
\end{DoxyParams}
Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a068ebc22f7a067cf23ed2c17f95b06e9}{core\+::\+Command}}.
Reimplemented from \mbox{\hyperlink{classcore_1_1Command_ad8eecee5b179a0030d2f34bcfa30d4f4}{core\+::\+Command}}.
+13 -13
View File
@@ -55,15 +55,15 @@ std\+::stringstream \mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc754
\mbox{\Hypertarget{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}\label{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}}
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_aed4ed499b978bcea57a8efefe929fc98}{on\+Registered}} () override
\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\item
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_ac2c3ffef9ded12a8867e3d27902b001a}{on\+Data\+Received}} (char $\ast$data, int len) override
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a6683cc5b39d3e47adc9ead3f3e3d7587}{on\+Data\+Received}} (coreutils\+::\+Z\+String data) override
\item
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a0f209620e9f11e70bfde54852b5c5460}{on\+Line\+Received}} (std\+::string line)
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a018d0458806811b98e4aa30da27a1a2d}{on\+Line\+Received}} (coreutils\+::\+Z\+String line)
\item
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a4403ef0a92b119dfa2e74667788e4ba1}{on\+Block\+Received}} (std\+::string block)
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_ada0eb595b5c506ae2f74851fd1588512}{on\+Block\+Received}} (coreutils\+::\+Z\+String block)
\item
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}{on\+Connected}} ()
\item
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_ae90dc64e2d3c4b3239117923145edb3f}{protocol}} (std\+::string data)
virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a4a2a34c9b1252664e93c576a27c30720}{protocol}} (coreutils\+::\+Z\+String data)
\item
void \mbox{\hyperlink{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}{set\+Block\+Size}} (int size=0)
\end{DoxyCompactItemize}
@@ -76,11 +76,11 @@ void \mbox{\hyperlink{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}
\mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} defines the nature of the interaction with the client and stores persistent data for a defined session. \mbox{\hyperlink{classcore_1_1TCPSession}{T\+C\+P\+Session}} objects are not sockets but instead provide a communications control mechanism. Protocol conversations are provided through extensions from this object.
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classcore_1_1TCPSession_a4403ef0a92b119dfa2e74667788e4ba1}\label{classcore_1_1TCPSession_a4403ef0a92b119dfa2e74667788e4ba1}}
\mbox{\Hypertarget{classcore_1_1TCPSession_ada0eb595b5c506ae2f74851fd1588512}\label{classcore_1_1TCPSession_ada0eb595b5c506ae2f74851fd1588512}}
\index{core::TCPSession@{core::TCPSession}!onBlockReceived@{onBlockReceived}}
\index{onBlockReceived@{onBlockReceived}!core::TCPSession@{core::TCPSession}}
\doxysubsubsection{\texorpdfstring{onBlockReceived()}{onBlockReceived()}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Block\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Block\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
Override the on\+Block\+Received method to receive a string of characters that represents a single block of data of length determined by the block length value. If on\+Data\+Received was overriden this method will not be called unless the on\+Data\+Received calls this method explicitly using the class and member name. \mbox{\Hypertarget{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}\label{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}}
\index{core::TCPSession@{core::TCPSession}!onConnected@{onConnected}}
@@ -88,21 +88,21 @@ Override the on\+Block\+Received method to receive a string of characters that r
\doxysubsubsection{\texorpdfstring{onConnected()}{onConnected()}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Connected (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
This method is called from within the protocol method when protocol is called on the initial connection where the data is an empty string. Use this method to deliver a message to the connection upon connection. \mbox{\Hypertarget{classcore_1_1TCPSession_ac2c3ffef9ded12a8867e3d27902b001a}\label{classcore_1_1TCPSession_ac2c3ffef9ded12a8867e3d27902b001a}}
This method is called from within the protocol method when protocol is called on the initial connection where the data is an empty string. Use this method to deliver a message to the connection upon connection. \mbox{\Hypertarget{classcore_1_1TCPSession_a6683cc5b39d3e47adc9ead3f3e3d7587}\label{classcore_1_1TCPSession_a6683cc5b39d3e47adc9ead3f3e3d7587}}
\index{core::TCPSession@{core::TCPSession}!onDataReceived@{onDataReceived}}
\index{onDataReceived@{onDataReceived}!core::TCPSession@{core::TCPSession}}
\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{char $\ast$}]{data, }\item[{int}]{len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
Override this method to receive data directly from the socket as data is received. If you need data split by line termination characters then override the on\+Line\+Received method instead.
Reimplemented from \mbox{\hyperlink{classcore_1_1Socket}{core\+::\+Socket}}.
\mbox{\Hypertarget{classcore_1_1TCPSession_a0f209620e9f11e70bfde54852b5c5460}\label{classcore_1_1TCPSession_a0f209620e9f11e70bfde54852b5c5460}}
\mbox{\Hypertarget{classcore_1_1TCPSession_a018d0458806811b98e4aa30da27a1a2d}\label{classcore_1_1TCPSession_a018d0458806811b98e4aa30da27a1a2d}}
\index{core::TCPSession@{core::TCPSession}!onLineReceived@{onLineReceived}}
\index{onLineReceived@{onLineReceived}!core::TCPSession@{core::TCPSession}}
\doxysubsubsection{\texorpdfstring{onLineReceived()}{onLineReceived()}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Line\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{line }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::on\+Line\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{line }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
Override the on\+Line\+Received method to receive a string of characters that represents a single line of data terminated by a LF or C\+R\+LF. If on\+Data\+Received was overriden this method will not be called unless the on\+Data\+Received calls this method explicitly using the class and member name. \mbox{\Hypertarget{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}\label{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}}
\index{core::TCPSession@{core::TCPSession}!output@{output}}
@@ -118,17 +118,17 @@ Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7
Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+T\+L\+S\+Session}}.
\mbox{\Hypertarget{classcore_1_1TCPSession_ae90dc64e2d3c4b3239117923145edb3f}\label{classcore_1_1TCPSession_ae90dc64e2d3c4b3239117923145edb3f}}
\mbox{\Hypertarget{classcore_1_1TCPSession_a4a2a34c9b1252664e93c576a27c30720}\label{classcore_1_1TCPSession_a4a2a34c9b1252664e93c576a27c30720}}
\index{core::TCPSession@{core::TCPSession}!protocol@{protocol}}
\index{protocol@{protocol}!core::TCPSession@{core::TCPSession}}
\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::protocol (\begin{DoxyParamCaption}\item[{std\+::string}]{data = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+T\+C\+P\+Session\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input.
When data is received within the session two modes are available to pass the data through the protocol method\+: L\+I\+NE or B\+L\+O\+CK.
Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a547c436ab69f75307f065eca8cfcd109}{core\+::\+T\+L\+S\+Session}}, and \mbox{\hyperlink{classcore_1_1ConsoleSession_a830cc1e1e0c3fe3b066f0a9f7f469490}{core\+::\+Console\+Session}}.
Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a2ff61cfcb3ffd3593b1bf7b39343ee56}{core\+::\+T\+L\+S\+Session}}, and \mbox{\hyperlink{classcore_1_1ConsoleSession_a72cd8a1ed55112b7245d889a9424fd64}{core\+::\+Console\+Session}}.
\mbox{\Hypertarget{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}\label{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}}
\index{core::TCPSession@{core::TCPSession}!send@{send}}
+8 -8
View File
@@ -30,12 +30,12 @@ Collaboration diagram for core\+::T\+L\+S\+Session\+:\nopagebreak
\item
virtual void \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{output}} (std\+::stringstream \&\mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}})
\item
virtual void \mbox{\hyperlink{classcore_1_1TLSSession_a547c436ab69f75307f065eca8cfcd109}{protocol}} (std\+::string data) override
virtual void \mbox{\hyperlink{classcore_1_1TLSSession_a2ff61cfcb3ffd3593b1bf7b39343ee56}{protocol}} (coreutils\+::\+Z\+String data) override
\end{DoxyCompactItemize}
\doxysubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item
void \mbox{\hyperlink{classcore_1_1TLSSession_a1822cb21de545dc1a183ec0bac6cc4f0}{receive\+Data}} (char $\ast$buffer, int buffer\+Length) override
void \mbox{\hyperlink{classcore_1_1TLSSession_a4b3c2d871d83150974bba48435eaf6cf}{receive\+Data}} (coreutils\+::\+Z\+String buffer) override
\item
void \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}{on\+Register}} ()
\begin{DoxyCompactList}\small\item\em Called before the socket has registered with the epoll processing. \end{DoxyCompactList}\item
@@ -77,27 +77,27 @@ The output method is called by a socket session (Session) and will output the de
Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+T\+C\+P\+Session}}.
\mbox{\Hypertarget{classcore_1_1TLSSession_a547c436ab69f75307f065eca8cfcd109}\label{classcore_1_1TLSSession_a547c436ab69f75307f065eca8cfcd109}}
\mbox{\Hypertarget{classcore_1_1TLSSession_a2ff61cfcb3ffd3593b1bf7b39343ee56}\label{classcore_1_1TLSSession_a2ff61cfcb3ffd3593b1bf7b39343ee56}}
\index{core::TLSSession@{core::TLSSession}!protocol@{protocol}}
\index{protocol@{protocol}!core::TLSSession@{core::TLSSession}}
\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}}
{\footnotesize\ttfamily void core\+::\+T\+L\+S\+Session\+::protocol (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+T\+L\+S\+Session\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Override the protocol method to manage and control the session communications in your inherited session. If you do not override this method then the Session default will process the \textquotesingle{}commands\textquotesingle{} added to the server object using the process\+Request method on the session input.
When data is received within the session two modes are available to pass the data through the protocol method\+: L\+I\+NE or B\+L\+O\+CK.
Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_ae90dc64e2d3c4b3239117923145edb3f}{core\+::\+T\+C\+P\+Session}}.
Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a4a2a34c9b1252664e93c576a27c30720}{core\+::\+T\+C\+P\+Session}}.
\mbox{\Hypertarget{classcore_1_1TLSSession_a1822cb21de545dc1a183ec0bac6cc4f0}\label{classcore_1_1TLSSession_a1822cb21de545dc1a183ec0bac6cc4f0}}
\mbox{\Hypertarget{classcore_1_1TLSSession_a4b3c2d871d83150974bba48435eaf6cf}\label{classcore_1_1TLSSession_a4b3c2d871d83150974bba48435eaf6cf}}
\index{core::TLSSession@{core::TLSSession}!receiveData@{receiveData}}
\index{receiveData@{receiveData}!core::TLSSession@{core::TLSSession}}
\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}}
{\footnotesize\ttfamily void core\+::\+T\+L\+S\+Session\+::receive\+Data (\begin{DoxyParamCaption}\item[{char $\ast$}]{buffer, }\item[{int}]{buffer\+Length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
{\footnotesize\ttfamily void core\+::\+T\+L\+S\+Session\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+Z\+String}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
receive\+Data will read the data from the socket and place it in the socket buffer. T\+LS layer overrides this to be able to read from S\+SL.
Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_af455ec6f793473f529507af26aa54695}{core\+::\+Socket}}.
Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a481b3b3874a6862f8d97030297cc6f32}{core\+::\+Socket}}.