diff --git a/latex/Makefile b/latex/Makefile deleted file mode 100644 index 877c9cc..0000000 --- a/latex/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -LATEX_CMD=pdflatex - -all: refman.pdf - -pdf: refman.pdf - -refman.pdf: clean refman.tex - $(LATEX_CMD) refman - makeindex refman.idx - $(LATEX_CMD) refman - latex_count=8 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - $(LATEX_CMD) refman ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - makeindex refman.idx - $(LATEX_CMD) refman - - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/latex/annotated.tex b/latex/annotated.tex deleted file mode 100644 index 10c3701..0000000 --- a/latex/annotated.tex +++ /dev/null @@ -1,30 +0,0 @@ -\doxysection{Class List} -Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Command}{core\+::\+Command}} }{\pageref{classcore_1_1Command}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1CommandList}{core\+::\+Command\+List}} }{\pageref{classcore_1_1CommandList}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ConsoleServer}{core\+::\+Console\+Server}} }{\pageref{classcore_1_1ConsoleServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ConsoleSession}{core\+::\+Console\+Session}} }{\pageref{classcore_1_1ConsoleSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1EPoll}{core\+::\+EPoll}} }{\pageref{classcore_1_1EPoll}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1INotify}{core\+::\+INotify}} }{\pageref{classcore_1_1INotify}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1IPAddress}{core\+::\+IPAddress}} }{\pageref{classcore_1_1IPAddress}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1IPAddressList}{core\+::\+IPAddress\+List}} }{\pageref{classcore_1_1IPAddressList}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Object}{core\+::\+Object}} }{\pageref{classcore_1_1Object}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SessionFilter}{core\+::\+Session\+Filter}} }{\pageref{classcore_1_1SessionFilter}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Socket}{core\+::\+Socket}} }{\pageref{classcore_1_1Socket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Subscription}{core\+::\+Subscription}} }{\pageref{classcore_1_1Subscription}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SubscriptionHandler}{core\+::\+Subscription\+Handler}} }{\pageref{classcore_1_1SubscriptionHandler}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SubscriptionHandlerFactory}{core\+::\+Subscription\+Handler\+Factory}} }{\pageref{classcore_1_1SubscriptionHandlerFactory}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1SubscriptionManager}{core\+::\+Subscription\+Manager}} }{\pageref{classcore_1_1SubscriptionManager}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPServer}{core\+::\+TCPServer}} }{\pageref{classcore_1_1TCPServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSession}{core\+::\+TCPSession}} }{\pageref{classcore_1_1TCPSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSession2}{core\+::\+TCPSession2}} }{\pageref{classcore_1_1TCPSession2}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TCPSocket}{core\+::\+TCPSocket}} }{\pageref{classcore_1_1TCPSocket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TerminalSession}{core\+::\+Terminal\+Session}} }{\pageref{classcore_1_1TerminalSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Thread}{core\+::\+Thread}} }{\pageref{classcore_1_1Thread}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1ThreadScope}{core\+::\+Thread\+Scope}} }{\pageref{classcore_1_1ThreadScope}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1Timer}{core\+::\+Timer}} }{\pageref{classcore_1_1Timer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TLSServer}{core\+::\+TLSServer}} }{\pageref{classcore_1_1TLSServer}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1TLSSession}{core\+::\+TLSSession}} }{\pageref{classcore_1_1TLSSession}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1UDPServerSocket}{core\+::\+UDPServer\+Socket}} }{\pageref{classcore_1_1UDPServerSocket}}{} -\item\contentsline{section}{\mbox{\hyperlink{classcore_1_1UDPSocket}{core\+::\+UDPSocket}} }{\pageref{classcore_1_1UDPSocket}}{} -\end{DoxyCompactList} diff --git a/latex/classcore_1_1Command.tex b/latex/classcore_1_1Command.tex deleted file mode 100644 index 13d8555..0000000 --- a/latex/classcore_1_1Command.tex +++ /dev/null @@ -1,75 +0,0 @@ -\hypertarget{classcore_1_1Command}{}\doxysection{core\+::Command Class Reference} -\label{classcore_1_1Command}\index{core::Command@{core::Command}} - - -{\ttfamily \#include $<$Command.\+h$>$} - - - -Inheritance diagram for core\+::Command\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Command__inherit__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -virtual int \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -virtual void \mbox{\hyperlink{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}{output}} (std\+::stringstream \&out) -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Command}{Command}} - -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_ab6352ce5650e70a5c76c3d6e4eefd292}\label{classcore_1_1Command_ab6352ce5650e70a5c76c3d6e4eefd292}} -\index{core::Command@{core::Command}!output@{output}} -\index{output@{output}!core::Command@{core::Command}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+Command\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -Specify the output that will occur to the specified session. - - -\begin{DoxyParams}{Parameters} -{\em session} & The session that will receive the output. \\ -\hline -\end{DoxyParams} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{core\+::\+TCPServer}}. - -\mbox{\Hypertarget{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}\label{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}} -\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[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\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 in \mbox{\hyperlink{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}{core\+::\+TCPServer}}, \mbox{\hyperlink{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}{core\+::\+Subscription\+Manager}}, \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{core\+::\+EPoll}}, and \mbox{\hyperlink{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}{core\+::\+Command\+List}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Command.\+h\item -Command.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1CommandList.tex b/latex/classcore_1_1CommandList.tex deleted file mode 100644 index 06d74cd..0000000 --- a/latex/classcore_1_1CommandList.tex +++ /dev/null @@ -1,123 +0,0 @@ -\hypertarget{classcore_1_1CommandList}{}\doxysection{core\+::Command\+List Class Reference} -\label{classcore_1_1CommandList}\index{core::CommandList@{core::CommandList}} - - -{\ttfamily \#include $<$Command\+List.\+h$>$} - - - -Inheritance diagram for core\+::Command\+List\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=191pt]{classcore_1_1CommandList__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Command\+List\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=191pt]{classcore_1_1CommandList__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_a04609187f7b55e881fc31ac3b51a18c4}\label{classcore_1_1CommandList_a04609187f7b55e881fc31ac3b51a18c4}} -{\bfseries Command\+List} (std\+::string delimiter=\char`\"{}\char`\"{}, int depth=0) -\item -void \mbox{\hyperlink{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}{add}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command, std\+::string name=\char`\"{}\char`\"{}) -\item -void \mbox{\hyperlink{classcore_1_1CommandList_aaac684effb9ecf5238d23ca60d3fffaa}{remove}} (\mbox{\hyperlink{classcore_1_1Command}{Command}} \&command) -\item -int \mbox{\hyperlink{classcore_1_1CommandList_abcfb26e37e1ee6ff5655ebc3d33b1818}{process\+Request}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -bool \mbox{\hyperlink{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}{grab\+Input}} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Command}{Command}} \&command) -\item -\mbox{\Hypertarget{classcore_1_1CommandList_a9214dc76dbcde1520277d044c00cc1fc}\label{classcore_1_1CommandList_a9214dc76dbcde1520277d044c00cc1fc}} -void {\bfseries clear\+Grab} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -int \mbox{\hyperlink{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -std\+::map$<$ std\+::string, \mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ $>$ \mbox{\hyperlink{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}{commands}} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_adfc9ae3f4473a3cd35d5d1ebb5d1b2eb}\label{classcore_1_1CommandList_adfc9ae3f4473a3cd35d5d1ebb5d1b2eb}} -std\+::string {\bfseries delimiter} -\item -\mbox{\Hypertarget{classcore_1_1CommandList_aa72e019cef882e68b917d87ad06cade8}\label{classcore_1_1CommandList_aa72e019cef882e68b917d87ad06cade8}} -int {\bfseries depth} -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} - -This object organizes \mbox{\hyperlink{classcore_1_1Command}{Command}} objects into a list that is used to parse an input and run the process associated with the selected command. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}\label{classcore_1_1CommandList_a7a45e75e3d21a25fd3f7e887acf395e9}} -\index{core::CommandList@{core::CommandList}!add@{add}} -\index{add@{add}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{add()}{add()}} -{\footnotesize\ttfamily void core\+::\+Command\+List\+::add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command, }\item[{std\+::string}]{name = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -Add a new command to the command list and assign a default search value. \mbox{\Hypertarget{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}\label{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}} -\index{core::CommandList@{core::CommandList}!grabInput@{grabInput}} -\index{grabInput@{grabInput}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{grabInput()}{grabInput()}} -{\footnotesize\ttfamily bool core\+::\+Command\+List\+::grab\+Input (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session, }\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})} - -Use \mbox{\hyperlink{classcore_1_1CommandList_a72aea93a650f148c639ba25a724da243}{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_a1819e1cb377b5d8e5e00b4777e2b4aba}\label{classcore_1_1CommandList_a1819e1cb377b5d8e5e00b4777e2b4aba}} -\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[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\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_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1CommandList_abcfb26e37e1ee6ff5655ebc3d33b1818}\label{classcore_1_1CommandList_abcfb26e37e1ee6ff5655ebc3d33b1818}} -\index{core::CommandList@{core::CommandList}!processRequest@{processRequest}} -\index{processRequest@{processRequest}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{processRequest()}{processRequest()}} -{\footnotesize\ttfamily int core\+::\+Command\+List\+::process\+Request (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})} - -Use this method to apply a parsed ZString to the command set and execute the matching parameter. The selected command will return a true on a call to 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()}} -{\footnotesize\ttfamily void core\+::\+Command\+List\+::remove (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1Command}{Command}} \&}]{command }\end{DoxyParamCaption})} - -Remove a command object from the command list. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}\label{classcore_1_1CommandList_ad0aedf95828fe743908d8423f171ff36}} -\index{core::CommandList@{core::CommandList}!commands@{commands}} -\index{commands@{commands}!core::CommandList@{core::CommandList}} -\doxysubsubsection{\texorpdfstring{commands}{commands}} -{\footnotesize\ttfamily std\+::map$<$std\+::string, \mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$$>$ core\+::\+Command\+List\+::commands\hspace{0.3cm}{\ttfamily [protected]}} - -The vector of all registered commands. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Command\+List.\+h\item -Command\+List.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1CommandList__coll__graph.md5 b/latex/classcore_1_1CommandList__coll__graph.md5 deleted file mode 100644 index 16cef61..0000000 --- a/latex/classcore_1_1CommandList__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a96f3e328f89a36f8c825e2406f69cfd \ No newline at end of file diff --git a/latex/classcore_1_1CommandList__coll__graph.pdf b/latex/classcore_1_1CommandList__coll__graph.pdf deleted file mode 100644 index 25117e3..0000000 Binary files a/latex/classcore_1_1CommandList__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1CommandList__inherit__graph.md5 b/latex/classcore_1_1CommandList__inherit__graph.md5 deleted file mode 100644 index 16cef61..0000000 --- a/latex/classcore_1_1CommandList__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a96f3e328f89a36f8c825e2406f69cfd \ No newline at end of file diff --git a/latex/classcore_1_1CommandList__inherit__graph.pdf b/latex/classcore_1_1CommandList__inherit__graph.pdf deleted file mode 100644 index c2e858c..0000000 Binary files a/latex/classcore_1_1CommandList__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Command__coll__graph.md5 b/latex/classcore_1_1Command__coll__graph.md5 deleted file mode 100644 index b1d441f..0000000 --- a/latex/classcore_1_1Command__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a6101fc959b5d2ef84a8a6db1830dc39 \ No newline at end of file diff --git a/latex/classcore_1_1Command__coll__graph.pdf b/latex/classcore_1_1Command__coll__graph.pdf deleted file mode 100644 index 489ed67..0000000 Binary files a/latex/classcore_1_1Command__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Command__inherit__graph.md5 b/latex/classcore_1_1Command__inherit__graph.md5 deleted file mode 100644 index 1e3eece..0000000 --- a/latex/classcore_1_1Command__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3526df9d00552d3dc2c0c203a1be8aaa \ No newline at end of file diff --git a/latex/classcore_1_1Command__inherit__graph.pdf b/latex/classcore_1_1Command__inherit__graph.pdf deleted file mode 100644 index 493f3eb..0000000 Binary files a/latex/classcore_1_1Command__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleServer.tex b/latex/classcore_1_1ConsoleServer.tex deleted file mode 100644 index f8db41a..0000000 --- a/latex/classcore_1_1ConsoleServer.tex +++ /dev/null @@ -1,51 +0,0 @@ -\hypertarget{classcore_1_1ConsoleServer}{}\doxysection{core\+::Console\+Server Class Reference} -\label{classcore_1_1ConsoleServer}\index{core::ConsoleServer@{core::ConsoleServer}} - - -Inheritance diagram for core\+::Console\+Server\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Console\+Server\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1ConsoleServer_a938c93207ced5bfa3e15e9f4a1cbf3f0}\label{classcore_1_1ConsoleServer_a938c93207ced5bfa3e15e9f4a1cbf3f0}} -{\bfseries Console\+Server} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address) -\item -\mbox{\Hypertarget{classcore_1_1ConsoleServer_ace482706881fd6cbec4e01534c091391}\label{classcore_1_1ConsoleServer_ace482706881fd6cbec4e01534c091391}} -void {\bfseries log\+Send} (std\+::string out) override -\item -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}{get\+Socket\+Accept}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}\label{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}} -\index{core::ConsoleServer@{core::ConsoleServer}!getSocketAccept@{getSocketAccept}} -\index{getSocketAccept@{getSocketAccept}!core::ConsoleServer@{core::ConsoleServer}} -\doxysubsubsection{\texorpdfstring{getSocketAccept()}{getSocketAccept()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+Console\+Server\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - -get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}{core\+::\+TCPServer}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Console\+Server.\+h\item -Console\+Server.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ConsoleServer__coll__graph.md5 b/latex/classcore_1_1ConsoleServer__coll__graph.md5 deleted file mode 100644 index e2862ce..0000000 --- a/latex/classcore_1_1ConsoleServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2b84fc428bb8e9797d274620f6a66c23 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleServer__coll__graph.pdf b/latex/classcore_1_1ConsoleServer__coll__graph.pdf deleted file mode 100644 index 5e60d75..0000000 Binary files a/latex/classcore_1_1ConsoleServer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleServer__inherit__graph.md5 b/latex/classcore_1_1ConsoleServer__inherit__graph.md5 deleted file mode 100644 index 5dbe872..0000000 --- a/latex/classcore_1_1ConsoleServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d8a7b139f69b81405af9117126175bb6 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleServer__inherit__graph.pdf b/latex/classcore_1_1ConsoleServer__inherit__graph.pdf deleted file mode 100644 index 2ef72b2..0000000 Binary files a/latex/classcore_1_1ConsoleServer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleSession.tex b/latex/classcore_1_1ConsoleSession.tex deleted file mode 100644 index 5f04dae..0000000 --- a/latex/classcore_1_1ConsoleSession.tex +++ /dev/null @@ -1,65 +0,0 @@ -\hypertarget{classcore_1_1ConsoleSession}{}\doxysection{core\+::Console\+Session Class Reference} -\label{classcore_1_1ConsoleSession}\index{core::ConsoleSession@{core::ConsoleSession}} - - -{\ttfamily \#include $<$Console\+Session.\+h$>$} - - - -Inheritance diagram for core\+::Console\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=203pt]{classcore_1_1ConsoleSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Console\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1ConsoleSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1ConsoleSession_ae735e9739fb4cfd2ef983cc56f9982c7}\label{classcore_1_1ConsoleSession_ae735e9739fb4cfd2ef983cc56f9982c7}} -{\bfseries Console\+Session} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -\mbox{\Hypertarget{classcore_1_1ConsoleSession_a6e6b56503966f1cae5bdff8b3814e2b9}\label{classcore_1_1ConsoleSession_a6e6b56503966f1cae5bdff8b3814e2b9}} -void {\bfseries write\+Log} (std\+::string data) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{protocol}} (coreutils\+::\+ZString \&data) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1ConsoleSession}{Console\+Session}} - -Extends the session parameters for this \mbox{\hyperlink{classcore_1_1TCPSocket}{TCPSocket}} derived object. Extend the \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{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_aa1818efcd33a4152d2089aa545f08833}\label{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}} -\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[{coreutils\+::\+ZString \&}]{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\+: LINE or BLOCK. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{core\+::\+TCPSession}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Console\+Session.\+h\item -Console\+Session.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ConsoleSession__coll__graph.md5 b/latex/classcore_1_1ConsoleSession__coll__graph.md5 deleted file mode 100644 index f0cb32e..0000000 --- a/latex/classcore_1_1ConsoleSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f3f48e062605018bc14a3be75ed1b838 \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleSession__coll__graph.pdf b/latex/classcore_1_1ConsoleSession__coll__graph.pdf deleted file mode 100644 index 431e854..0000000 Binary files a/latex/classcore_1_1ConsoleSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1ConsoleSession__inherit__graph.md5 b/latex/classcore_1_1ConsoleSession__inherit__graph.md5 deleted file mode 100644 index 20b0d97..0000000 --- a/latex/classcore_1_1ConsoleSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0f5e7e7912dc563e80e4ac78360dc9fe \ No newline at end of file diff --git a/latex/classcore_1_1ConsoleSession__inherit__graph.pdf b/latex/classcore_1_1ConsoleSession__inherit__graph.pdf deleted file mode 100644 index e7e4966..0000000 Binary files a/latex/classcore_1_1ConsoleSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1EPoll.tex b/latex/classcore_1_1EPoll.tex deleted file mode 100644 index e3d4646..0000000 --- a/latex/classcore_1_1EPoll.tex +++ /dev/null @@ -1,183 +0,0 @@ -\hypertarget{classcore_1_1EPoll}{}\doxysection{core\+::EPoll Class Reference} -\label{classcore_1_1EPoll}\index{core::EPoll@{core::EPoll}} - - -{\ttfamily \#include $<$EPoll.\+h$>$} - - - -Inheritance diagram for core\+::EPoll\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1EPoll__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::EPoll\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1EPoll__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}{EPoll}} () -\item -\mbox{\hyperlink{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}{$\sim$\+EPoll}} () -\item -bool \mbox{\hyperlink{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}{start}} (int number\+Of\+Threads, int \mbox{\hyperlink{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}{max\+Sockets}}) -\begin{DoxyCompactList}\small\item\em Start the BMAEPoll processing. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop}} () -\begin{DoxyCompactList}\small\item\em Stop and shut down the BMAEPoll processing. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}{is\+Stopping}} () -\begin{DoxyCompactList}\small\item\em Returns a true if the stop command has been requested. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}{get\+Descriptor}} () -\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_a22b5f1545aff3162040844be043abcce}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\begin{DoxyCompactList}\small\item\em Output the threads array to the console. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1EPoll_a61aa8c4c90733287fd497f860bf521ab}\label{classcore_1_1EPoll_a61aa8c4c90733287fd497f860bf521ab}} -volatile long long {\bfseries event\+Id} = 0 -\item -int \mbox{\hyperlink{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}{max\+Sockets}} -\begin{DoxyCompactList}\small\item\em The maximum number of socket allowed. \end{DoxyCompactList}\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} - -Manage socket events from the epoll system call. - -Use this object to establish a socket server using the epoll network structure of Linux. - -Use this object to establish the basis of working with multiple sockets of all sorts using the epoll capabilities of the Linux platform. \mbox{\hyperlink{classcore_1_1Socket}{Socket}} objects can register with \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} which will establish a communication mechanism with that socket. - -The maximum number of sockets to communicate with is specified on the start method. - -Threads are used to establish a read queue for epoll. The desired number of threads (or queues) is established by a parameter on the start method. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}\label{classcore_1_1EPoll_a2fd5cc4336b5f72990ecc0e7ea3d7641}} -\index{core::EPoll@{core::EPoll}!EPoll@{EPoll}} -\index{EPoll@{EPoll}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{EPoll()}{EPoll()}} -{\footnotesize\ttfamily core\+::\+EPoll\+::\+EPoll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The constructor for the BMAEPoll object. \mbox{\Hypertarget{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}\label{classcore_1_1EPoll_a8e7a2496d684b745a6410f9bd3e88534}} -\index{core::EPoll@{core::EPoll}!````~EPoll@{$\sim$EPoll}} -\index{````~EPoll@{$\sim$EPoll}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{$\sim$EPoll()}{~EPoll()}} -{\footnotesize\ttfamily core\+::\+EPoll\+::$\sim$\+EPoll (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The destructor for the BMAEPoll object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}\label{classcore_1_1EPoll_a3238b150b5d0a57eb2e1b17daa236d3b}} -\index{core::EPoll@{core::EPoll}!eventReceived@{eventReceived}} -\index{eventReceived@{eventReceived}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{eventReceived()}{eventReceived()}} -{\footnotesize\ttfamily void core\+::\+EPoll\+::event\+Received (\begin{DoxyParamCaption}\item[{struct epoll\+\_\+event}]{event }\end{DoxyParamCaption})} - - - -Dispatch event to appropriate socket. - -Receive the epoll events and dispatch the event to the socket making the request. \mbox{\Hypertarget{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}\label{classcore_1_1EPoll_a1e52017e1deae15c1c87c6b6a099e1ed}} -\index{core::EPoll@{core::EPoll}!getDescriptor@{getDescriptor}} -\index{getDescriptor@{getDescriptor}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{getDescriptor()}{getDescriptor()}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::get\+Descriptor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Return the descriptor for the e\+Poll socket. - -Use this method to obtain the current descriptor socket number for the epoll function call. \mbox{\Hypertarget{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}\label{classcore_1_1EPoll_a301b46b71ac7ac61a687ff723fe269b3}} -\index{core::EPoll@{core::EPoll}!isStopping@{isStopping}} -\index{isStopping@{isStopping}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{isStopping()}{isStopping()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::is\+Stopping (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -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_a22b5f1545aff3162040844be043abcce}\label{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}} -\index{core::EPoll@{core::EPoll}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}} - - - -Output the threads array to the console. - -The \mbox{\hyperlink{classcore_1_1EPoll_a22b5f1545aff3162040844be043abcce}{process\+Command()}} method displays the thread array to the requesting console via the session passed as parameter. - - -\begin{DoxyParams}{Parameters} -{\em session} & the session to write the requested data to. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}\label{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}} -\index{core::EPoll@{core::EPoll}!start@{start}} -\index{start@{start}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{start()}{start()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::start (\begin{DoxyParamCaption}\item[{int}]{number\+Of\+Threads, }\item[{int}]{max\+Sockets }\end{DoxyParamCaption})} - - - -Start the BMAEPoll processing. - -Use the \mbox{\hyperlink{classcore_1_1EPoll_aaefe2caef75eb538af90cb34682d277b}{start()}} method to initiate the threads and begin epoll queue processing. - - -\begin{DoxyParams}{Parameters} -{\em number\+Of\+Threads} & the number of threads to start for processing epoll entries. \\ -\hline -{\em max\+Sockets} & the maximum number of open sockets that epoll will manage. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}\label{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}} -\index{core::EPoll@{core::EPoll}!stop@{stop}} -\index{stop@{stop}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{stop()}{stop()}} -{\footnotesize\ttfamily bool core\+::\+EPoll\+::stop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - - - -Stop and shut down the BMAEPoll processing. - -Use the \mbox{\hyperlink{classcore_1_1EPoll_a0c2865acd31d14fbf19dbc42cc084ddc}{stop()}} method to initiate the shutdown process for the epoll socket management. - -A complete shutdown of all managed sockets will be initiated by this method call. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}\label{classcore_1_1EPoll_acfcef2513d94f7b9a191fed3dc744d90}} -\index{core::EPoll@{core::EPoll}!maxSockets@{maxSockets}} -\index{maxSockets@{maxSockets}!core::EPoll@{core::EPoll}} -\doxysubsubsection{\texorpdfstring{maxSockets}{maxSockets}} -{\footnotesize\ttfamily int core\+::\+EPoll\+::max\+Sockets} - - - -The maximum number of socket allowed. - -The maximum number of sockets that can be managed by the epoll system. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -EPoll.\+h\item -EPoll.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1EPoll__coll__graph.md5 b/latex/classcore_1_1EPoll__coll__graph.md5 deleted file mode 100644 index ed85b5d..0000000 --- a/latex/classcore_1_1EPoll__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -98b90bfe6ece875f9b9fa2075b6d694f \ No newline at end of file diff --git a/latex/classcore_1_1EPoll__coll__graph.pdf b/latex/classcore_1_1EPoll__coll__graph.pdf deleted file mode 100644 index d3f6ce2..0000000 Binary files a/latex/classcore_1_1EPoll__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1EPoll__inherit__graph.md5 b/latex/classcore_1_1EPoll__inherit__graph.md5 deleted file mode 100644 index ed85b5d..0000000 --- a/latex/classcore_1_1EPoll__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -98b90bfe6ece875f9b9fa2075b6d694f \ No newline at end of file diff --git a/latex/classcore_1_1EPoll__inherit__graph.pdf b/latex/classcore_1_1EPoll__inherit__graph.pdf deleted file mode 100644 index d3f6ce2..0000000 Binary files a/latex/classcore_1_1EPoll__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1INotify.tex b/latex/classcore_1_1INotify.tex deleted file mode 100644 index 89b5ad0..0000000 --- a/latex/classcore_1_1INotify.tex +++ /dev/null @@ -1,77 +0,0 @@ -\hypertarget{classcore_1_1INotify}{}\doxysection{core\+::INotify Class Reference} -\label{classcore_1_1INotify}\index{core::INotify@{core::INotify}} - - -Inheritance diagram for core\+::INotify\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1INotify__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::INotify\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1INotify__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1INotify_a777d8ab058639165974b7c0144564b26}\label{classcore_1_1INotify_a777d8ab058639165974b7c0144564b26}} -{\bfseries INotify} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a387caaa1bea6e6cba95054d5adf4ac55}\label{classcore_1_1INotify_a387caaa1bea6e6cba95054d5adf4ac55}} -int {\bfseries add\+Watch} (coreutils\+::\+ZString \&watch) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a5ce2a1bbfd69f5a88ef807f7ed439c06}\label{classcore_1_1INotify_a5ce2a1bbfd69f5a88ef807f7ed439c06}} -void {\bfseries remove\+Watch} (int wd) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a642e44e906da81ce8180beb2bc09d602}\label{classcore_1_1INotify_a642e44e906da81ce8180beb2bc09d602}} -void {\bfseries on\+Data\+Received} (coreutils\+::\+ZString \&data) override -\item -\mbox{\Hypertarget{classcore_1_1INotify_a551ffbcf700e287f0f8f3a1a8cbd0eec}\label{classcore_1_1INotify_a551ffbcf700e287f0f8f3a1a8cbd0eec}} -virtual void {\bfseries in\+Access} (coreutils\+::\+ZString name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ab11e39edc303c6f18250a6381ed225d8}\label{classcore_1_1INotify_ab11e39edc303c6f18250a6381ed225d8}} -virtual void {\bfseries in\+Attrib} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_aab4c420c6f1661c31f795e8222a24090}\label{classcore_1_1INotify_aab4c420c6f1661c31f795e8222a24090}} -virtual void {\bfseries in\+Close\+Write} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_adc4e710fd3a7fa4aa104814f4de47879}\label{classcore_1_1INotify_adc4e710fd3a7fa4aa104814f4de47879}} -virtual void {\bfseries in\+Close\+No\+Write} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_adb552aaac3a8c05e2a5588245c1b7269}\label{classcore_1_1INotify_adb552aaac3a8c05e2a5588245c1b7269}} -virtual void {\bfseries in\+Create} (coreutils\+::\+ZString \&name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a0f46651b97d2f081b8ef968e8328c827}\label{classcore_1_1INotify_a0f46651b97d2f081b8ef968e8328c827}} -virtual void {\bfseries in\+Delete} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ada67b3841d1bfb383c6374a7f8bb06a7}\label{classcore_1_1INotify_ada67b3841d1bfb383c6374a7f8bb06a7}} -virtual void {\bfseries in\+Delete\+Self} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a5d687a9fd3601a466d3e973bf4370431}\label{classcore_1_1INotify_a5d687a9fd3601a466d3e973bf4370431}} -virtual void {\bfseries in\+Modify} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a4fc6ec43473adfa3563cbf72617d4bba}\label{classcore_1_1INotify_a4fc6ec43473adfa3563cbf72617d4bba}} -virtual void {\bfseries in\+Move\+Self} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ae9e429c6ce68424d5b58153ace41c25b}\label{classcore_1_1INotify_ae9e429c6ce68424d5b58153ace41c25b}} -virtual void {\bfseries in\+Moved\+From} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_ad7e5079ffc805954fc4f0542555694a4}\label{classcore_1_1INotify_ad7e5079ffc805954fc4f0542555694a4}} -virtual void {\bfseries in\+Moved\+To} (std\+::string name) -\item -\mbox{\Hypertarget{classcore_1_1INotify_a96894ea43c6aa89e986303ef36bdbcc3}\label{classcore_1_1INotify_a96894ea43c6aa89e986303ef36bdbcc3}} -virtual void {\bfseries in\+Open} (std\+::string name) -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -INotify.\+h\item -INotify.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1INotify__coll__graph.md5 b/latex/classcore_1_1INotify__coll__graph.md5 deleted file mode 100644 index f199f03..0000000 --- a/latex/classcore_1_1INotify__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4ce64bfd98c2c85efcf959f9b2ce61d2 \ No newline at end of file diff --git a/latex/classcore_1_1INotify__coll__graph.pdf b/latex/classcore_1_1INotify__coll__graph.pdf deleted file mode 100644 index 461e919..0000000 Binary files a/latex/classcore_1_1INotify__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1INotify__inherit__graph.md5 b/latex/classcore_1_1INotify__inherit__graph.md5 deleted file mode 100644 index 1ea421b..0000000 --- a/latex/classcore_1_1INotify__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3f5ea77c62672e519022863919c4aea3 \ No newline at end of file diff --git a/latex/classcore_1_1INotify__inherit__graph.pdf b/latex/classcore_1_1INotify__inherit__graph.pdf deleted file mode 100644 index f4b4c53..0000000 Binary files a/latex/classcore_1_1INotify__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1IPAddress.tex b/latex/classcore_1_1IPAddress.tex deleted file mode 100644 index e3ae49b..0000000 --- a/latex/classcore_1_1IPAddress.tex +++ /dev/null @@ -1,56 +0,0 @@ -\hypertarget{classcore_1_1IPAddress}{}\doxysection{core\+::IPAddress Class Reference} -\label{classcore_1_1IPAddress}\index{core::IPAddress@{core::IPAddress}} - - -Inheritance diagram for core\+::IPAddress\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=172pt]{classcore_1_1IPAddress__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::IPAddress\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=172pt]{classcore_1_1IPAddress__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a31fb55b1b979f0e8a07446285f9a99f8}\label{classcore_1_1IPAddress_a31fb55b1b979f0e8a07446285f9a99f8}} -{\bfseries IPAddress} (std\+::string address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a37d942b8fae09010adbda33f714808c0}\label{classcore_1_1IPAddress_a37d942b8fae09010adbda33f714808c0}} -{\bfseries IPAddress} (std\+::string address, int port) -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a095a5ab48cc72161c1614ddfa89ac3ee}\label{classcore_1_1IPAddress_a095a5ab48cc72161c1614ddfa89ac3ee}} -struct sockaddr $\ast$ {\bfseries get\+Pointer} () -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}\label{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}} -std\+::string \mbox{\hyperlink{classcore_1_1IPAddress_ae5e7e28589d026bbbc6c3423d418b008}{get\+Client\+Address}} () -\begin{DoxyCompactList}\small\item\em Get the client network address as xxx.\+xxx.\+xxx.\+xxx. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}\label{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}} -std\+::string \mbox{\hyperlink{classcore_1_1IPAddress_abea870f1a048cb7bba1d2bad98558232}{get\+Client\+Address\+And\+Port}} () -\begin{DoxyCompactList}\small\item\em Get the client network address and port as xxx.\+xxx.\+xxx.\+xxx\+:ppppp. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}\label{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}} -int \mbox{\hyperlink{classcore_1_1IPAddress_a39f706f2d43d7d001296ecead4b587e8}{get\+Client\+Port}} () -\begin{DoxyCompactList}\small\item\em Get the client network port number. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_ac1291bdc515fc5b2c9ba177ddec06454}\label{classcore_1_1IPAddress_ac1291bdc515fc5b2c9ba177ddec06454}} -struct sockaddr\+\_\+in {\bfseries addr} -\item -\mbox{\Hypertarget{classcore_1_1IPAddress_a00856ef1b1deccd0341cd7ea6d1bc8e5}\label{classcore_1_1IPAddress_a00856ef1b1deccd0341cd7ea6d1bc8e5}} -socklen\+\_\+t {\bfseries address\+Length} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -IPAddress.\+h\item -IPAddress.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1IPAddressList.tex b/latex/classcore_1_1IPAddressList.tex deleted file mode 100644 index 654f1d8..0000000 --- a/latex/classcore_1_1IPAddressList.tex +++ /dev/null @@ -1,23 +0,0 @@ -\hypertarget{classcore_1_1IPAddressList}{}\doxysection{core\+::IPAddress\+List Class Reference} -\label{classcore_1_1IPAddressList}\index{core::IPAddressList@{core::IPAddressList}} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_a740cf5f7e2633836b7a741b9f048036f}\label{classcore_1_1IPAddressList_a740cf5f7e2633836b7a741b9f048036f}} -std\+::map$<$ std\+::string, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} $>$ {\bfseries get\+List} () -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_ab98c5a502d8f5cfb4e8c451c48dbc131}\label{classcore_1_1IPAddressList_ab98c5a502d8f5cfb4e8c451c48dbc131}} -void {\bfseries add} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} ip\+Address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_a86e9890e15e8e0d87e34f36b637d5c40}\label{classcore_1_1IPAddressList_a86e9890e15e8e0d87e34f36b637d5c40}} -bool {\bfseries remove} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} ip\+Address) -\item -\mbox{\Hypertarget{classcore_1_1IPAddressList_add254c996687fd8f9ada0b5335e477cd}\label{classcore_1_1IPAddressList_add254c996687fd8f9ada0b5335e477cd}} -bool {\bfseries contains} (std\+::string ip\+Address) -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -IPAddress\+List.\+h\item -IPAddress\+List.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1IPAddress__coll__graph.md5 b/latex/classcore_1_1IPAddress__coll__graph.md5 deleted file mode 100644 index 36b9e9f..0000000 --- a/latex/classcore_1_1IPAddress__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7f7ac9b55c8d17116ebd1c299b44c348 \ No newline at end of file diff --git a/latex/classcore_1_1IPAddress__coll__graph.pdf b/latex/classcore_1_1IPAddress__coll__graph.pdf deleted file mode 100644 index 7837edf..0000000 Binary files a/latex/classcore_1_1IPAddress__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1IPAddress__inherit__graph.md5 b/latex/classcore_1_1IPAddress__inherit__graph.md5 deleted file mode 100644 index 36b9e9f..0000000 --- a/latex/classcore_1_1IPAddress__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7f7ac9b55c8d17116ebd1c299b44c348 \ No newline at end of file diff --git a/latex/classcore_1_1IPAddress__inherit__graph.pdf b/latex/classcore_1_1IPAddress__inherit__graph.pdf deleted file mode 100644 index 7f03a26..0000000 Binary files a/latex/classcore_1_1IPAddress__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Object.tex b/latex/classcore_1_1Object.tex deleted file mode 100644 index 0893207..0000000 --- a/latex/classcore_1_1Object.tex +++ /dev/null @@ -1,25 +0,0 @@ -\hypertarget{classcore_1_1Object}{}\doxysection{core\+::Object Class Reference} -\label{classcore_1_1Object}\index{core::Object@{core::Object}} - - -Inheritance diagram for core\+::Object\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Object__inherit__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Object_aa096b2bab35f1019c91077ef3ec106ce}\label{classcore_1_1Object_aa096b2bab35f1019c91077ef3ec106ce}} -std\+::string {\bfseries name} -\item -\mbox{\Hypertarget{classcore_1_1Object_ad503c264c529c41c25528c34421c83df}\label{classcore_1_1Object_ad503c264c529c41c25528c34421c83df}} -std\+::string {\bfseries tag} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Object.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Object__inherit__graph.md5 b/latex/classcore_1_1Object__inherit__graph.md5 deleted file mode 100644 index f95bc31..0000000 --- a/latex/classcore_1_1Object__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -0072956b617b9e545ab65b3703c04beb \ No newline at end of file diff --git a/latex/classcore_1_1Object__inherit__graph.pdf b/latex/classcore_1_1Object__inherit__graph.pdf deleted file mode 100644 index 17df090..0000000 Binary files a/latex/classcore_1_1Object__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1SessionFilter.tex b/latex/classcore_1_1SessionFilter.tex deleted file mode 100644 index a6c9358..0000000 --- a/latex/classcore_1_1SessionFilter.tex +++ /dev/null @@ -1,32 +0,0 @@ -\hypertarget{classcore_1_1SessionFilter}{}\doxysection{core\+::Session\+Filter Class Reference} -\label{classcore_1_1SessionFilter}\index{core::SessionFilter@{core::SessionFilter}} - - -Inheritance diagram for core\+::Session\+Filter\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=185pt]{classcore_1_1SessionFilter__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Session\+Filter\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=185pt]{classcore_1_1SessionFilter__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SessionFilter_a9871d18a9f90c8028f879b0993b25b6f}\label{classcore_1_1SessionFilter_a9871d18a9f90c8028f879b0993b25b6f}} -virtual bool {\bfseries test} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Session\+Filter.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SessionFilter__coll__graph.md5 b/latex/classcore_1_1SessionFilter__coll__graph.md5 deleted file mode 100644 index f79d473..0000000 --- a/latex/classcore_1_1SessionFilter__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -18bd2019d4b8e217560cd8e7622ec59f \ No newline at end of file diff --git a/latex/classcore_1_1SessionFilter__coll__graph.pdf b/latex/classcore_1_1SessionFilter__coll__graph.pdf deleted file mode 100644 index 83a1cca..0000000 Binary files a/latex/classcore_1_1SessionFilter__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1SessionFilter__inherit__graph.md5 b/latex/classcore_1_1SessionFilter__inherit__graph.md5 deleted file mode 100644 index f79d473..0000000 --- a/latex/classcore_1_1SessionFilter__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -18bd2019d4b8e217560cd8e7622ec59f \ No newline at end of file diff --git a/latex/classcore_1_1SessionFilter__inherit__graph.pdf b/latex/classcore_1_1SessionFilter__inherit__graph.pdf deleted file mode 100644 index fdbb22f..0000000 Binary files a/latex/classcore_1_1SessionFilter__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Socket.tex b/latex/classcore_1_1Socket.tex deleted file mode 100644 index 683fa67..0000000 --- a/latex/classcore_1_1Socket.tex +++ /dev/null @@ -1,235 +0,0 @@ -\hypertarget{classcore_1_1Socket}{}\doxysection{core\+::Socket Class Reference} -\label{classcore_1_1Socket}\index{core::Socket@{core::Socket}} - - -{\ttfamily \#include $<$Socket.\+h$>$} - - - -Inheritance diagram for core\+::Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Socket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1Socket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}{Socket}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual \mbox{\hyperlink{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}{$\sim$\+Socket}} () -\item -void \mbox{\hyperlink{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}{shutdown}} (std\+::string text=\char`\"{}unknown\char`\"{}) -\item -void \mbox{\hyperlink{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}{set\+Descriptor}} (int descriptor) -\begin{DoxyCompactList}\small\item\em Set the descriptor for the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}\label{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}} -int \mbox{\hyperlink{classcore_1_1Socket_a06ba54744530439d4131e6aba4623d08}{get\+Descriptor}} () -\begin{DoxyCompactList}\small\item\em Get the descriptor for the socket. \end{DoxyCompactList}\item -bool \mbox{\hyperlink{classcore_1_1Socket_a1a045e15fb5851d666a21be05ac4c5d7}{event\+Received}} (struct epoll\+\_\+event event, long long event\+Id) -\begin{DoxyCompactList}\small\item\em Parse epoll event and call specified callbacks. \end{DoxyCompactList}\item -int \mbox{\hyperlink{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}{write}} (std\+::string data) -\item -\mbox{\Hypertarget{classcore_1_1Socket_a4855594af113428eacdaa7448d661121}\label{classcore_1_1Socket_a4855594af113428eacdaa7448d661121}} -void {\bfseries write} (char $\ast$buffer, int length) -\item -\mbox{\Hypertarget{classcore_1_1Socket_ad67b0f95127bd987b98323120f40f6ed}\label{classcore_1_1Socket_ad67b0f95127bd987b98323120f40f6ed}} -void {\bfseries output} (std\+::stringstream \&out) -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{on\+Register}} () -\begin{DoxyCompactList}\small\item\em Called before the socket has registered with the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}\label{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}} -virtual void \mbox{\hyperlink{classcore_1_1Socket_a23b9824653bbe4652a716acb828665b1}{on\+Registered}} () -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_aa1d380db54a5b2efbc859e3744bd898b}\label{classcore_1_1Socket_aa1d380db54a5b2efbc859e3744bd898b}} -virtual void {\bfseries on\+Unregister} () -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}{on\+Unregistered}} () -\begin{DoxyCompactList}\small\item\em Called when the socket has finished unregistering for the epoll processing. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1Socket_a43247bfe43c2be5ab3863d9057d46b7c}\label{classcore_1_1Socket_a43247bfe43c2be5ab3863d9057d46b7c}} -bool {\bfseries needs\+To\+Write} () -\item -\mbox{\Hypertarget{classcore_1_1Socket_a04a41baed2feb95cab02d6e61d4f33ce}\label{classcore_1_1Socket_a04a41baed2feb95cab02d6e61d4f33ce}} -void {\bfseries enable\+Socket} () -\item -\mbox{\Hypertarget{classcore_1_1Socket_a2ff4d1d1240f8a51cf19d620b4f51f20}\label{classcore_1_1Socket_a2ff4d1d1240f8a51cf19d620b4f51f20}} -void {\bfseries disable\+Socket} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a9f9a89f5caab42f77b3759ceb54a0a78}\label{classcore_1_1Socket_a9f9a89f5caab42f77b3759ceb54a0a78}} -bool {\bfseries reset} = false -\item -\mbox{\Hypertarget{classcore_1_1Socket_a6303734821a2979f7b19add6ce1367b9}\label{classcore_1_1Socket_a6303734821a2979f7b19add6ce1367b9}} -volatile bool {\bfseries shut\+Down} = false -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a71c77a162698b9c074a7497beab7b5d8}\label{classcore_1_1Socket_a71c77a162698b9c074a7497beab7b5d8}} -void {\bfseries set\+Buffer\+Size} (int length) -\item -\mbox{\Hypertarget{classcore_1_1Socket_aa9195676bb7ecbec167ecf5336921cbb}\label{classcore_1_1Socket_aa9195676bb7ecbec167ecf5336921cbb}} -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_ae048b57ac2c34381378f3da0e758b3c8}\label{classcore_1_1Socket_ae048b57ac2c34381378f3da0e758b3c8}} -virtual void {\bfseries on\+Data\+Received} (coreutils\+::\+ZString \&data) -\item -virtual void \mbox{\hyperlink{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}{receive\+Data}} (coreutils\+::\+ZString \&buffer) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Socket_a3b0b139ac7da581f0d969f6ae9a0c97c}\label{classcore_1_1Socket_a3b0b139ac7da581f0d969f6ae9a0c97c}} -\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \& {\bfseries e\+Poll} -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Socket}{Socket}} - -The core component to managing a socket. - -Hooks into the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} through the registration and unregistration process and provides a communication socket of the specified protocol type. This object provides for all receiving data threading through use of the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} object and also provides buffering for output data requests to the socket. - -A program using a socket object can request to open a socket (network or device) and communicate through the streambuffer interface of the socket object. - -The socket side of the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} accepts EPOLLIN event and will maintain the data in a buffer for the stream readers to read. A on\+Data\+Received event is then sent with the data received in the buffer that can be read through the stream. Only sockets that send events to epoll can be used with this object. - -When writing to the stream the data is written into a buffer and a EPOLLOUT is scheduled. Upon receiving the EPOLLOUT event then the buffer is written to the socket output. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}\label{classcore_1_1Socket_a4c3f87fd1de3c9eab4bf5efbb30ce87d}} -\index{core::Socket@{core::Socket}!Socket@{Socket}} -\index{Socket@{Socket}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{Socket()}{Socket()}} -{\footnotesize\ttfamily core\+::\+Socket\+::\+Socket (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{std\+::string}]{text = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -Constructor - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & The \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} socket descriptor. \\ -\hline -{\em text} & A title for this socket. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}\label{classcore_1_1Socket_aa5003845f8ae464ad2fa206176381be0}} -\index{core::Socket@{core::Socket}!````~Socket@{$\sim$Socket}} -\index{````~Socket@{$\sim$Socket}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{$\sim$Socket()}{~Socket()}} -{\footnotesize\ttfamily core\+::\+Socket\+::$\sim$\+Socket (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -Destructor - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Socket_a1a045e15fb5851d666a21be05ac4c5d7}\label{classcore_1_1Socket_a1a045e15fb5851d666a21be05ac4c5d7}} -\index{core::Socket@{core::Socket}!eventReceived@{eventReceived}} -\index{eventReceived@{eventReceived}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{eventReceived()}{eventReceived()}} -{\footnotesize\ttfamily bool core\+::\+Socket\+::event\+Received (\begin{DoxyParamCaption}\item[{struct epoll\+\_\+event}]{event, }\item[{long long}]{event\+Id }\end{DoxyParamCaption})} - - - -Parse epoll event and call specified callbacks. - -The event received from epoll is sent through the event\+Received method which will parse the event and call the read and write callbacks on the socket. - -This method is called by the BMAEPoll object and should not be called from any user extended classes unless an epoll event is being simulated. - -The return value of false will delete the socket object causing the destructors to run. The return value of true will enable the socket on e\+Poll to receive more events. \mbox{\Hypertarget{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}\label{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}} -\index{core::Socket@{core::Socket}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called when data is received from the socket. - -The on\+Connected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The on\+Data\+Received method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN - - -\begin{DoxyParams}{Parameters} -{\em data} & the data that has been received from the socket. \\ -\hline -\end{DoxyParams} - - -Reimplemented in \mbox{\hyperlink{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}{core\+::\+UDPServer\+Socket}}, and \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{core\+::\+TCPServer}}. - -\mbox{\Hypertarget{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}\label{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}} -\index{core::Socket@{core::Socket}!onRegister@{onRegister}} -\index{onRegister@{onRegister}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onRegister()}{onRegister()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Register (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - - - -Called before the socket has registered with the epoll processing. - -The on\+Register method is called before the socket is registered with e\+Poll so objects extending the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} definition can initialize the socket before receiving events. Evoked when the descriptor is set using set\+Descriptor for the socket. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}\label{classcore_1_1Socket_ae9be59697c2b2e5efb19aaae3ba943d2}} -\index{core::Socket@{core::Socket}!onUnregistered@{onUnregistered}} -\index{onUnregistered@{onUnregistered}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{onUnregistered()}{onUnregistered()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::on\+Unregistered (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - - - -Called when the socket has finished unregistering for the epoll processing. - -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_a46ed2e240852d3fa949979ebbc4ac875}\label{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}} -\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[{coreutils\+::\+ZString \&}]{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. TLS layer overrides this to be able to read from SSL. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}\label{classcore_1_1Socket_ac44f6ae3196a8a3e09a6a85fcf495762}} -\index{core::Socket@{core::Socket}!setDescriptor@{setDescriptor}} -\index{setDescriptor@{setDescriptor}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{setDescriptor()}{setDescriptor()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::set\+Descriptor (\begin{DoxyParamCaption}\item[{int}]{descriptor }\end{DoxyParamCaption})} - - - -Set the descriptor for the socket. - -set\+Descriptor establishes the file descriptor for the socket and registers the socket on the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} controller. set\+Descriptor will invoke the \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{on\+Register()}} event. \mbox{\Hypertarget{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}\label{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}} -\index{core::Socket@{core::Socket}!shutdown@{shutdown}} -\index{shutdown@{shutdown}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{shutdown()}{shutdown()}} -{\footnotesize\ttfamily void core\+::\+Socket\+::shutdown (\begin{DoxyParamCaption}\item[{std\+::string}]{text = {\ttfamily \char`\"{}unknown\char`\"{}} }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Socket_af2d1b6de7a64a9d446b0305b6ec47b31}{shutdown()}} method to terminate the socket connection and remove resources. This method is provided to ensure that all destructors are called for all inherited objects with a virtual destructor. \mbox{\Hypertarget{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}\label{classcore_1_1Socket_a1413c826307ef0f29d7457770af675e3}} -\index{core::Socket@{core::Socket}!write@{write}} -\index{write@{write}!core::Socket@{core::Socket}} -\doxysubsubsection{\texorpdfstring{write()}{write()}} -{\footnotesize\ttfamily int core\+::\+Socket\+::write (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})} - -Write data to the socket. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Socket.\+h\item -Socket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Socket__coll__graph.md5 b/latex/classcore_1_1Socket__coll__graph.md5 deleted file mode 100644 index 7ac220a..0000000 --- a/latex/classcore_1_1Socket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -601ffa7b2c2f8f190cefef69aff78b25 \ No newline at end of file diff --git a/latex/classcore_1_1Socket__coll__graph.pdf b/latex/classcore_1_1Socket__coll__graph.pdf deleted file mode 100644 index 3ac9b17..0000000 Binary files a/latex/classcore_1_1Socket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Socket__inherit__graph.md5 b/latex/classcore_1_1Socket__inherit__graph.md5 deleted file mode 100644 index a69ef28..0000000 --- a/latex/classcore_1_1Socket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -854355342b517c40faec978a7a4a8024 \ No newline at end of file diff --git a/latex/classcore_1_1Socket__inherit__graph.pdf b/latex/classcore_1_1Socket__inherit__graph.pdf deleted file mode 100644 index a791a83..0000000 Binary files a/latex/classcore_1_1Socket__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Subscription.tex b/latex/classcore_1_1Subscription.tex deleted file mode 100644 index e3e1426..0000000 --- a/latex/classcore_1_1Subscription.tex +++ /dev/null @@ -1,68 +0,0 @@ -\hypertarget{classcore_1_1Subscription}{}\doxysection{core\+::Subscription Class Reference} -\label{classcore_1_1Subscription}\index{core::Subscription@{core::Subscription}} - - -Collaboration diagram for core\+::Subscription\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1Subscription__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a348a4ec8232ada37f5be2b6f756f01f3}\label{classcore_1_1Subscription_a348a4ec8232ada37f5be2b6f756f01f3}} -{\bfseries Subscription} (std\+::string id, std\+::string mode=\char`\"{}$\ast$AUTHOR\char`\"{}) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a1b993509cd113d8ed564d710955c94a0}\label{classcore_1_1Subscription_a1b993509cd113d8ed564d710955c94a0}} -{\bfseries Subscription} (std\+::string id, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, std\+::string mode) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_ae21b7a4a1084da8959cd8022fa138c0e}\label{classcore_1_1Subscription_ae21b7a4a1084da8959cd8022fa138c0e}} -{\bfseries Subscription} (std\+::string id, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, std\+::string mode, \mbox{\hyperlink{classcore_1_1SubscriptionHandler}{Subscription\+Handler}} $\ast$handler) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a57c23d7c49328eecf8358f84b485f7cb}\label{classcore_1_1Subscription_a57c23d7c49328eecf8358f84b485f7cb}} -int {\bfseries subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a4b6d9f10c605f20c7e27c308577ab8d4}\label{classcore_1_1Subscription_a4b6d9f10c605f20c7e27c308577ab8d4}} -int {\bfseries unsubscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_afe97bd6c3c714df84381fdd6d66e5037}\label{classcore_1_1Subscription_afe97bd6c3c714df84381fdd6d66e5037}} -virtual int {\bfseries process} (coreutils\+::\+ZString \&request, std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_aa4f32bfd024a3609ad795876860088d9}\label{classcore_1_1Subscription_aa4f32bfd024a3609ad795876860088d9}} -virtual int {\bfseries on\+Subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} $\ast$subscription) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_adfd211503f5eccfda620995de58c73f9}\label{classcore_1_1Subscription_adfd211503f5eccfda620995de58c73f9}} -int {\bfseries event} (std\+::stringstream \&out) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_addf187a8e97c2be1ac0cce9c21da5a28}\label{classcore_1_1Subscription_addf187a8e97c2be1ac0cce9c21da5a28}} -bool {\bfseries if\+Subscriber} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -\mbox{\Hypertarget{classcore_1_1Subscription_aae12af263ca5355c7217d1bf015bba5f}\label{classcore_1_1Subscription_aae12af263ca5355c7217d1bf015bba5f}} -bool {\bfseries sub\+Invite} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a6a952ecf3d9d4a2c69c6b09c3c5c6cb2}\label{classcore_1_1Subscription_a6a952ecf3d9d4a2c69c6b09c3c5c6cb2}} -std\+::string {\bfseries id} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a5f7d38b845a674d860fd78aa7cdd5858}\label{classcore_1_1Subscription_a5f7d38b845a674d860fd78aa7cdd5858}} -std\+::string {\bfseries mode} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_a5526427600aa4a5b180f76f201e85f58}\label{classcore_1_1Subscription_a5526427600aa4a5b180f76f201e85f58}} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ {\bfseries owner} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_ab4f020e6bdee846121f508fcdb6f7aeb}\label{classcore_1_1Subscription_ab4f020e6bdee846121f508fcdb6f7aeb}} -\mbox{\hyperlink{classcore_1_1SubscriptionHandler}{Subscription\+Handler}} $\ast$ {\bfseries handler} -\item -\mbox{\Hypertarget{classcore_1_1Subscription_ad1a5c1a3e5a6e253eb34795f43d4f9be}\label{classcore_1_1Subscription_ad1a5c1a3e5a6e253eb34795f43d4f9be}} -std\+::vector$<$ \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ $>$ {\bfseries subscribers} -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Subscription.\+h\item -Subscription.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionHandler.tex b/latex/classcore_1_1SubscriptionHandler.tex deleted file mode 100644 index 5d4cb0f..0000000 --- a/latex/classcore_1_1SubscriptionHandler.tex +++ /dev/null @@ -1,16 +0,0 @@ -\hypertarget{classcore_1_1SubscriptionHandler}{}\doxysection{core\+::Subscription\+Handler Class Reference} -\label{classcore_1_1SubscriptionHandler}\index{core::SubscriptionHandler@{core::SubscriptionHandler}} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionHandler_afbf8d787ed2242122b0a63f45a668922}\label{classcore_1_1SubscriptionHandler_afbf8d787ed2242122b0a63f45a668922}} -virtual int {\bfseries process} (coreutils\+::\+ZString \&request, std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} $\ast$subscription) -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionHandler_a8e436ab79fa2c612e4e395c9efd9ddc2}\label{classcore_1_1SubscriptionHandler_a8e436ab79fa2c612e4e395c9efd9ddc2}} -virtual int {\bfseries on\+Subscribe} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session, \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} $\ast$subscription) -\end{DoxyCompactItemize} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Subscription\+Handler.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionManager.tex b/latex/classcore_1_1SubscriptionManager.tex deleted file mode 100644 index fa2e996..0000000 --- a/latex/classcore_1_1SubscriptionManager.tex +++ /dev/null @@ -1,68 +0,0 @@ -\hypertarget{classcore_1_1SubscriptionManager}{}\doxysection{core\+::Subscription\+Manager Class Reference} -\label{classcore_1_1SubscriptionManager}\index{core::SubscriptionManager@{core::SubscriptionManager}} - - -Inheritance diagram for core\+::Subscription\+Manager\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=226pt]{classcore_1_1SubscriptionManager__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Subscription\+Manager\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=334pt]{classcore_1_1SubscriptionManager__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_ad1a021be5d55d1e9f0944c97f79ae9e2}\label{classcore_1_1SubscriptionManager_ad1a021be5d55d1e9f0944c97f79ae9e2}} -int {\bfseries add} (\mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} \&subscription) -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_aed407c183c390f4459bb6527b30c8198}\label{classcore_1_1SubscriptionManager_aed407c183c390f4459bb6527b30c8198}} -int {\bfseries remove\+Session\+Subscriptions} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) -\item -int \mbox{\hyperlink{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_a1cc00944a562efe1937b70ad5a6f3834}\label{classcore_1_1SubscriptionManager_a1cc00944a562efe1937b70ad5a6f3834}} -\mbox{\hyperlink{classcore_1_1SubscriptionHandlerFactory}{Subscription\+Handler\+Factory}} $\ast$ {\bfseries factory} -\end{DoxyCompactItemize} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}\label{classcore_1_1SubscriptionManager_aaa30bf772ad72b3f319a790662e4f8ae}} -\index{core::SubscriptionManager@{core::SubscriptionManager}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::SubscriptionManager@{core::SubscriptionManager}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+Subscription\+Manager\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\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_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Subscription\+Manager.\+h\item -Subscription\+Manager.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1SubscriptionManager__coll__graph.md5 b/latex/classcore_1_1SubscriptionManager__coll__graph.md5 deleted file mode 100644 index 877986c..0000000 --- a/latex/classcore_1_1SubscriptionManager__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8f1014bb269c79bae8d723d03546ef93 \ No newline at end of file diff --git a/latex/classcore_1_1SubscriptionManager__coll__graph.pdf b/latex/classcore_1_1SubscriptionManager__coll__graph.pdf deleted file mode 100644 index 096a26a..0000000 Binary files a/latex/classcore_1_1SubscriptionManager__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 b/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 deleted file mode 100644 index 254c729..0000000 --- a/latex/classcore_1_1SubscriptionManager__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -64505415bff46906df08a028a1ac62cb \ No newline at end of file diff --git a/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf b/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf deleted file mode 100644 index b549175..0000000 Binary files a/latex/classcore_1_1SubscriptionManager__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Subscription__coll__graph.md5 b/latex/classcore_1_1Subscription__coll__graph.md5 deleted file mode 100644 index d5d1083..0000000 --- a/latex/classcore_1_1Subscription__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4b94cf6b50b0335caab4fdd7767b852a \ No newline at end of file diff --git a/latex/classcore_1_1Subscription__coll__graph.pdf b/latex/classcore_1_1Subscription__coll__graph.pdf deleted file mode 100644 index 16fece1..0000000 Binary files a/latex/classcore_1_1Subscription__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Subscription__inherit__graph.md5 b/latex/classcore_1_1Subscription__inherit__graph.md5 deleted file mode 100644 index 9010bc2..0000000 --- a/latex/classcore_1_1Subscription__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -71754a92b8eb564627eaab7051245720 \ No newline at end of file diff --git a/latex/classcore_1_1Subscription__inherit__graph.pdf b/latex/classcore_1_1Subscription__inherit__graph.pdf deleted file mode 100644 index fa545db..0000000 Binary files a/latex/classcore_1_1Subscription__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPServer.tex b/latex/classcore_1_1TCPServer.tex deleted file mode 100644 index ac8536e..0000000 --- a/latex/classcore_1_1TCPServer.tex +++ /dev/null @@ -1,215 +0,0 @@ -\hypertarget{classcore_1_1TCPServer}{}\doxysection{core\+::TCPServer Class Reference} -\label{classcore_1_1TCPServer}\index{core::TCPServer@{core::TCPServer}} - - -{\ttfamily \#include $<$TCPServer.\+h$>$} - - - -Inheritance diagram for core\+::TCPServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=304pt]{classcore_1_1TCPServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}{TCPServer}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address, std\+::string delimiter=\char`\"{} \char`\"{}, int depth=10, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual \mbox{\hyperlink{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}{$\sim$\+TCPServer}} () -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a554ec6e67d368e7bb545d95635c0a0df}\label{classcore_1_1TCPServer_a554ec6e67d368e7bb545d95635c0a0df}} -virtual void {\bfseries session\+Error\+Handler} (std\+::string error\+String, std\+::stringstream \&out) -\item -virtual \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}{get\+Socket\+Accept}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&epoll) -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a88c603cd5df9dbc1632fd4b5e164d75b}\label{classcore_1_1TCPServer_a88c603cd5df9dbc1632fd4b5e164d75b}} -void {\bfseries remove\+From\+Session\+List} (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$session) -\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}\label{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}} -void \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{output}} (std\+::stringstream \&out) -\begin{DoxyCompactList}\small\item\em Output the consoles array to the console. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1TCPServer_a9cfcf2984ddc7e1d8f157c9f07ad03e1}\label{classcore_1_1TCPServer_a9cfcf2984ddc7e1d8f157c9f07ad03e1}} -void {\bfseries send\+To\+All} (std\+::stringstream \&out) -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}{send\+To\+All}} (std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&sender, \mbox{\hyperlink{classcore_1_1SessionFilter}{Session\+Filter}} filter) -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}{send\+To\+All}} (std\+::stringstream \&out, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&sender) -\item -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a9042281193e227a6cd8dab3ff8b46a40}{get\+Session\+By\+Alias}} (void $\ast$alias) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -std\+::vector$<$ \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ $>$ \mbox{\hyperlink{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}{sessions}} -\item -\mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} \mbox{\hyperlink{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}{commands}} -\item -\mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}{black\+List}} -\item -\mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}} $\ast$ \mbox{\hyperlink{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}{white\+List}} -\item -\mbox{\hyperlink{classcore_1_1SubscriptionManager}{Subscription\+Manager}} \mbox{\hyperlink{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}{subscriptions}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}{on\+Data\+Received}} (std\+::string data) override -\item -int \mbox{\hyperlink{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}{process\+Command}} (coreutils\+::\+ZString \&request, \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&session) override -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} - -Manage a socket connection as a TCP server type. Connections to the socket are processed through the accept functionality. - -A list of connections is maintained in a vector object. - -This object extends the BMACommand object as well so it can be added to a Console object and process commands to display status information. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}\label{classcore_1_1TCPServer_abaecb97c336b757d1029d45277f9fc5b}} -\index{core::TCPServer@{core::TCPServer}!TCPServer@{TCPServer}} -\index{TCPServer@{TCPServer}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{TCPServer()}{TCPServer()}} -{\footnotesize\ttfamily core\+::\+TCPServer\+::\+TCPServer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}}}]{address, }\item[{std\+::string}]{delimiter = {\ttfamily \char`\"{}~\char`\"{}}, }\item[{int}]{depth = {\ttfamily 10}, }\item[{std\+::string}]{text = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})} - -The constructor for the \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} object. - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} instance that manages the socket. \\ -\hline -{\em url} & the IP address for the socket to receive connection requests. \\ -\hline -{\em port} & the port number that the socket will listen on. \\ -\hline -{\em command\+Name} & the name of the command used to invoke the status display for this object. \\ -\hline -\end{DoxyParams} -\mbox{\Hypertarget{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}\label{classcore_1_1TCPServer_a7ccdc057c9eee8504fce796301f82088}} -\index{core::TCPServer@{core::TCPServer}!````~TCPServer@{$\sim$TCPServer}} -\index{````~TCPServer@{$\sim$TCPServer}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{$\sim$TCPServer()}{~TCPServer()}} -{\footnotesize\ttfamily core\+::\+TCPServer\+::$\sim$\+TCPServer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The destructor for this object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_a9042281193e227a6cd8dab3ff8b46a40}\label{classcore_1_1TCPServer_a9042281193e227a6cd8dab3ff8b46a40}} -\index{core::TCPServer@{core::TCPServer}!getSessionByAlias@{getSessionByAlias}} -\index{getSessionByAlias@{getSessionByAlias}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{getSessionByAlias()}{getSessionByAlias()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+TCPServer\+::get\+Session\+By\+Alias (\begin{DoxyParamCaption}\item[{void $\ast$}]{alias }\end{DoxyParamCaption})} - -Use the get\+Session\+By\+Alias to retrieve a session pointer by the value of the alias pointer. \mbox{\Hypertarget{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}\label{classcore_1_1TCPServer_a841f02799ad8529aad7cea132f4de8a9}} -\index{core::TCPServer@{core::TCPServer}!getSocketAccept@{getSocketAccept}} -\index{getSocketAccept@{getSocketAccept}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{getSocketAccept()}{getSocketAccept()}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ core\+::\+TCPServer\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. - -Reimplemented in \mbox{\hyperlink{classcore_1_1ConsoleServer_a80d9ea7f3fc5e07c50d5b9e0d4943ca8}{core\+::\+Console\+Server}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}\label{classcore_1_1TCPServer_a276ccbc8cb9b4380ebd78807b97f0159}} -\index{core::TCPServer@{core::TCPServer}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - -Override the virtual data\+Received since for the server these are requests to accept the new connection socket. No data is to be read or written when this method is called. It is the response to the fact that a new connection is coming into the system - - -\begin{DoxyParams}{Parameters} -{\em data} & the pointer to the buffer containing the received data. \\ -\hline -{\em length} & the length of the associated data buffer. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}\label{classcore_1_1TCPServer_a6b7a7e1ac4132942fcaf418ed41c1437}} -\index{core::TCPServer@{core::TCPServer}!processCommand@{processCommand}} -\index{processCommand@{processCommand}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{processCommand()}{processCommand()}} -{\footnotesize\ttfamily int core\+::\+TCPServer\+::process\+Command (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{request, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{session }\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. - - -\begin{DoxyParams}{Parameters} -{\em the} & session object to write the output to. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Command_a95176f2532c38ee14e3fee40ee28b1bd}{core\+::\+Command}}. - -\mbox{\Hypertarget{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}\label{classcore_1_1TCPServer_af708df59e1bc60077c16db97f9cc8ff0}} -\index{core::TCPServer@{core::TCPServer}!sendToAll@{sendToAll}} -\index{sendToAll@{sendToAll}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sendToAll()}{sendToAll()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::send\+To\+All (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{sender }\end{DoxyParamCaption})} - -Use this send\+To\+All method to output the contents of the out stream to all the connections on the server excluding the sender session and the entries identified by the passed in filter object. \mbox{\Hypertarget{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}\label{classcore_1_1TCPServer_a7080f7d45e734087e81b83c5e1f8e676}} -\index{core::TCPServer@{core::TCPServer}!sendToAll@{sendToAll}} -\index{sendToAll@{sendToAll}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sendToAll()}{sendToAll()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} -{\footnotesize\ttfamily void core\+::\+TCPServer\+::send\+To\+All (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out, }\item[{\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} \&}]{sender, }\item[{\mbox{\hyperlink{classcore_1_1SessionFilter}{Session\+Filter}}}]{filter }\end{DoxyParamCaption})} - -Use this send\+To\+All method to output the contents of the out stream to all the connections on the server excluding the sender session. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}\label{classcore_1_1TCPServer_a82f6bf16e4ab20d8b30da09e034fffff}} -\index{core::TCPServer@{core::TCPServer}!blackList@{blackList}} -\index{blackList@{blackList}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{blackList}{blackList}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}}$\ast$ core\+::\+TCPServer\+::black\+List} - -If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted. \mbox{\Hypertarget{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}\label{classcore_1_1TCPServer_afcc44802b988e2f4292504e804dccf8b}} -\index{core::TCPServer@{core::TCPServer}!commands@{commands}} -\index{commands@{commands}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{commands}{commands}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} core\+::\+TCPServer\+::commands} - -The commands object is a \mbox{\hyperlink{classcore_1_1CommandList}{Command\+List}} and is used to store \mbox{\hyperlink{classcore_1_1Command}{Command}} objects to be parsed and run as data comes into the session. \mbox{\Hypertarget{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}\label{classcore_1_1TCPServer_aeed1bc55d099667ccda51cd682bfc633}} -\index{core::TCPServer@{core::TCPServer}!sessions@{sessions}} -\index{sessions@{sessions}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{sessions}{sessions}} -{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$$>$ core\+::\+TCPServer\+::sessions} - -The list of sessions that are currently open and being maintained by this object. \mbox{\Hypertarget{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}\label{classcore_1_1TCPServer_a28302dd844cfc971ee41de2000d24aa0}} -\index{core::TCPServer@{core::TCPServer}!subscriptions@{subscriptions}} -\index{subscriptions@{subscriptions}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{subscriptions}{subscriptions}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1SubscriptionManager}{Subscription\+Manager}} core\+::\+TCPServer\+::subscriptions} - -The \mbox{\hyperlink{classcore_1_1Subscription}{Subscription}} Manager tracks all subscriptions on the server. \mbox{\Hypertarget{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}\label{classcore_1_1TCPServer_abad6300b6234ca8b69cef9128755342e}} -\index{core::TCPServer@{core::TCPServer}!whiteList@{whiteList}} -\index{whiteList@{whiteList}!core::TCPServer@{core::TCPServer}} -\doxysubsubsection{\texorpdfstring{whiteList}{whiteList}} -{\footnotesize\ttfamily \mbox{\hyperlink{classcore_1_1IPAddressList}{IPAddress\+List}}$\ast$ core\+::\+TCPServer\+::white\+List} - -If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPServer.\+h\item -TCPServer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPServer__coll__graph.md5 b/latex/classcore_1_1TCPServer__coll__graph.md5 deleted file mode 100644 index c73cd68..0000000 --- a/latex/classcore_1_1TCPServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f8b3d4be2480728fd43fb3b09ec15871 \ No newline at end of file diff --git a/latex/classcore_1_1TCPServer__coll__graph.pdf b/latex/classcore_1_1TCPServer__coll__graph.pdf deleted file mode 100644 index f620286..0000000 Binary files a/latex/classcore_1_1TCPServer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPServer__inherit__graph.md5 b/latex/classcore_1_1TCPServer__inherit__graph.md5 deleted file mode 100644 index aaf0df0..0000000 --- a/latex/classcore_1_1TCPServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -b99be97b5935f58c2a5f55c17513c720 \ No newline at end of file diff --git a/latex/classcore_1_1TCPServer__inherit__graph.pdf b/latex/classcore_1_1TCPServer__inherit__graph.pdf deleted file mode 100644 index 3c2e06f..0000000 Binary files a/latex/classcore_1_1TCPServer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSession.tex b/latex/classcore_1_1TCPSession.tex deleted file mode 100644 index 4353db7..0000000 --- a/latex/classcore_1_1TCPSession.tex +++ /dev/null @@ -1,183 +0,0 @@ -\hypertarget{classcore_1_1TCPSession}{}\doxysection{core\+::TCPSession Class Reference} -\label{classcore_1_1TCPSession}\index{core::TCPSession@{core::TCPSession}} - - -{\ttfamily \#include $<$TCPSession.\+h$>$} - - - -Inheritance diagram for core\+::TCPSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=320pt]{classcore_1_1TCPSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a7e1192babcdeb688f463d3e9e85d0979}\label{classcore_1_1TCPSession_a7e1192babcdeb688f463d3e9e85d0979}} -{\bfseries TCPSession} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{output}} (std\+::stringstream \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}{send}} () -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}{terminate}} () -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a31d95c498870e67c218d952ded5e9894}\label{classcore_1_1TCPSession_a31d95c498870e67c218d952ded5e9894}} -virtual bool {\bfseries compare\+Alias} (void $\ast$\mbox{\hyperlink{classcore_1_1TCPSession_a014ae6b1465bf36606763703aa8a930d}{alias}}) -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a36ce8685c7af4ea7545721d65c26caec}\label{classcore_1_1TCPSession_a36ce8685c7af4ea7545721d65c26caec}} -virtual void {\bfseries output\+Alias} (std\+::stringstream \&\mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}}) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a2c39191d695d79891989ea628f42c0a8}\label{classcore_1_1TCPSession_a2c39191d695d79891989ea628f42c0a8}} -\mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ {\bfseries grab} = NULL -\item -\mbox{\Hypertarget{classcore_1_1TCPSession_a265d9493fa544e601b5ad5fb1663340c}\label{classcore_1_1TCPSession_a265d9493fa544e601b5ad5fb1663340c}} -\mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \& {\bfseries server} -\item -std\+::stringstream \mbox{\hyperlink{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}{out}} -\item -char \mbox{\hyperlink{classcore_1_1TCPSession_a2ccd4968f5c53d1c16a57e04081db692}{uuid}} \mbox{[}37\mbox{]} -\item -void $\ast$ \mbox{\hyperlink{classcore_1_1TCPSession_a014ae6b1465bf36606763703aa8a930d}{alias}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\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_afc2d2a92bc65e1e5122a93d120253a1d}{on\+Data\+Received}} (coreutils\+::\+ZString \&data) override -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}{on\+Line\+Received}} (coreutils\+::\+ZString \&line) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}{on\+Block\+Received}} (coreutils\+::\+ZString \&block) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a8719952f7bb00bf7239ec40aa2868626}{on\+Connected}} () -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{protocol}} (coreutils\+::\+ZString \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}{set\+Block\+Size}} (int size=0) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} - -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} defines the nature of the interaction with the client and stores persistent data for a defined session. \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} 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_a9c996cbbfa2e592c23cf67ed8b15a32a}\label{classcore_1_1TCPSession_a9c996cbbfa2e592c23cf67ed8b15a32a}} -\index{core::TCPSession@{core::TCPSession}!onBlockReceived@{onBlockReceived}} -\index{onBlockReceived@{onBlockReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onBlockReceived()}{onBlockReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Block\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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}} -\index{onConnected@{onConnected}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onConnected()}{onConnected()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::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_afc2d2a92bc65e1e5122a93d120253a1d}\label{classcore_1_1TCPSession_afc2d2a92bc65e1e5122a93d120253a1d}} -\index{core::TCPSession@{core::TCPSession}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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_a3d9e0f14e7d24357fd1950b3f9b4eaff}\label{classcore_1_1TCPSession_a3d9e0f14e7d24357fd1950b3f9b4eaff}} -\index{core::TCPSession@{core::TCPSession}!onLineReceived@{onLineReceived}} -\index{onLineReceived@{onLineReceived}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{onLineReceived()}{onLineReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::on\+Line\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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 CRLF. 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}} -\index{output@{output}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{core\+::\+TCPSocket}}. - - - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+TLSSession}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}\label{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}} -\index{core::TCPSession@{core::TCPSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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\+: LINE or BLOCK. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}{core\+::\+TLSSession}}, and \mbox{\hyperlink{classcore_1_1ConsoleSession_aa1818efcd33a4152d2089aa545f08833}{core\+::\+Console\+Session}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}\label{classcore_1_1TCPSession_a2b09eeafef5e44009a77d9da43e3b889}} -\index{core::TCPSession@{core::TCPSession}!send@{send}} -\index{send@{send}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{send()}{send()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::send (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The send method is used to output the contents of the out stream to the session containing the stream. \mbox{\Hypertarget{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}\label{classcore_1_1TCPSession_a836fb3fd5ee543ebc93262a980ae88b5}} -\index{core::TCPSession@{core::TCPSession}!setBlockSize@{setBlockSize}} -\index{setBlockSize@{setBlockSize}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{setBlockSize()}{setBlockSize()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::set\+Block\+Size (\begin{DoxyParamCaption}\item[{int}]{size = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} - -Use set\+Block\+Size to set the amount of data that should be read at once from the session data buffer. If this value is set to 0 then the data will be retrieved \mbox{\Hypertarget{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}\label{classcore_1_1TCPSession_a34936745e8d7669d5400e78d353a56d3}} -\index{core::TCPSession@{core::TCPSession}!terminate@{terminate}} -\index{terminate@{terminate}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{terminate()}{terminate()}} -{\footnotesize\ttfamily void core\+::\+TCPSession\+::terminate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use this method to terminate this \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession_a014ae6b1465bf36606763703aa8a930d}\label{classcore_1_1TCPSession_a014ae6b1465bf36606763703aa8a930d}} -\index{core::TCPSession@{core::TCPSession}!alias@{alias}} -\index{alias@{alias}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{alias}{alias}} -{\footnotesize\ttfamily void$\ast$ core\+::\+TCPSession\+::alias} - -alias is a void pointer that can be set to point to any object that identifies this session uniquely. Using this approach, inheriting objects can determine how it knows the contacts that this server manages. \mbox{\Hypertarget{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}\label{classcore_1_1TCPSession_abb302bbb3d7e7bc75490c736364f0d4d}} -\index{core::TCPSession@{core::TCPSession}!out@{out}} -\index{out@{out}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{out}{out}} -{\footnotesize\ttfamily std\+::stringstream core\+::\+TCPSession\+::out} - -Use out to send data to the session socket or other session sockets. \mbox{\Hypertarget{classcore_1_1TCPSession_a2ccd4968f5c53d1c16a57e04081db692}\label{classcore_1_1TCPSession_a2ccd4968f5c53d1c16a57e04081db692}} -\index{core::TCPSession@{core::TCPSession}!uuid@{uuid}} -\index{uuid@{uuid}!core::TCPSession@{core::TCPSession}} -\doxysubsubsection{\texorpdfstring{uuid}{uuid}} -{\footnotesize\ttfamily char core\+::\+TCPSession\+::uuid\mbox{[}37\mbox{]}} - -uuid is generated automatically when the session object is instantiated. This value can be used to uniquely identify a session and is the default value pointed to by the alias pointer. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSession.\+h\item -TCPSession.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSession2.tex b/latex/classcore_1_1TCPSession2.tex deleted file mode 100644 index ce27413..0000000 --- a/latex/classcore_1_1TCPSession2.tex +++ /dev/null @@ -1,152 +0,0 @@ -\hypertarget{classcore_1_1TCPSession2}{}\doxysection{core\+::TCPSession2 Class Reference} -\label{classcore_1_1TCPSession2}\index{core::TCPSession2@{core::TCPSession2}} - - -{\ttfamily \#include $<$TCPSession2.\+h$>$} - - - -Inheritance diagram for core\+::TCPSession2\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=186pt]{classcore_1_1TCPSession2__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSession2\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=344pt]{classcore_1_1TCPSession2__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession2_a1802e408a99b1a821b6cfc3fb64e083a}\label{classcore_1_1TCPSession2_a1802e408a99b1a821b6cfc3fb64e083a}} -{\bfseries TCPSession2} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text=\char`\"{}\char`\"{}) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession2_ae7648a7759570a00d3d4a8c169183291}{output}} (std\+::stringstream \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession2_aca2f7127b4081fa0e2d2d128083fb0f7}{send}} () -\item -void \mbox{\hyperlink{classcore_1_1TCPSession2_a6b999e7ea6551a1b513ee057afaa9e4a}{terminate}} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession2_a1d0170cac9acda04f66971b843660676}\label{classcore_1_1TCPSession2_a1d0170cac9acda04f66971b843660676}} -\mbox{\hyperlink{classcore_1_1Command}{Command}} $\ast$ {\bfseries grab} = NULL -\item -std\+::stringstream \mbox{\hyperlink{classcore_1_1TCPSession2_a6b8005e611b6007a00ad3288973a522d}{out}} -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSession2_a76096659b82c5dcbf6eac1d916511e60}\label{classcore_1_1TCPSession2_a76096659b82c5dcbf6eac1d916511e60}} -virtual void \mbox{\hyperlink{classcore_1_1TCPSession2_a76096659b82c5dcbf6eac1d916511e60}{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_1TCPSession2_a67c473e1a22b10fc100ae54206f7471b}{on\+Data\+Received}} (coreutils\+::\+ZString \&data) override -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession2_a6cd36b444d9548d1024190c6ba747e18}{on\+Line\+Received}} (coreutils\+::\+ZString \&line) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession2_a6c88775e81dc0074ef0832146be9f4b9}{on\+Block\+Received}} (coreutils\+::\+ZString \&block) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession2_af1913cb444a9e07c0f31a2cd8d934a62}{on\+Connected}} () -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSession2_a45df5db21355bf7d3585d68789b371ce}{protocol}} (coreutils\+::\+ZString \&data) -\item -void \mbox{\hyperlink{classcore_1_1TCPSession2_a6f4ed04cd2848e5b903b8331b2e951c8}{set\+Block\+Size}} (int size=0) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSession2}{TCPSession2}} - -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} defines the nature of the interaction with the client and stores persistent data for a defined session. \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} objects are not sockets but instead provide a communications control mechanism. Protocol conversations are provided through extensions from this object. - -\mbox{\hyperlink{classcore_1_1TCPSession2}{TCPSession2}} is designed to be \textquotesingle{}connected\textquotesingle{} instead of being served by a server. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession2_a6c88775e81dc0074ef0832146be9f4b9}\label{classcore_1_1TCPSession2_a6c88775e81dc0074ef0832146be9f4b9}} -\index{core::TCPSession2@{core::TCPSession2}!onBlockReceived@{onBlockReceived}} -\index{onBlockReceived@{onBlockReceived}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{onBlockReceived()}{onBlockReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::on\+Block\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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_1TCPSession2_af1913cb444a9e07c0f31a2cd8d934a62}\label{classcore_1_1TCPSession2_af1913cb444a9e07c0f31a2cd8d934a62}} -\index{core::TCPSession2@{core::TCPSession2}!onConnected@{onConnected}} -\index{onConnected@{onConnected}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{onConnected()}{onConnected()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::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_1TCPSession2_a67c473e1a22b10fc100ae54206f7471b}\label{classcore_1_1TCPSession2_a67c473e1a22b10fc100ae54206f7471b}} -\index{core::TCPSession2@{core::TCPSession2}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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_1TCPSession2_a6cd36b444d9548d1024190c6ba747e18}\label{classcore_1_1TCPSession2_a6cd36b444d9548d1024190c6ba747e18}} -\index{core::TCPSession2@{core::TCPSession2}!onLineReceived@{onLineReceived}} -\index{onLineReceived@{onLineReceived}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{onLineReceived()}{onLineReceived()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::on\+Line\+Received (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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 CRLF. 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_1TCPSession2_ae7648a7759570a00d3d4a8c169183291}\label{classcore_1_1TCPSession2_ae7648a7759570a00d3d4a8c169183291}} -\index{core::TCPSession2@{core::TCPSession2}!output@{output}} -\index{output@{output}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{core\+::\+TCPSocket}}. - -\mbox{\Hypertarget{classcore_1_1TCPSession2_a45df5db21355bf7d3585d68789b371ce}\label{classcore_1_1TCPSession2_a45df5db21355bf7d3585d68789b371ce}} -\index{core::TCPSession2@{core::TCPSession2}!protocol@{protocol}} -\index{protocol@{protocol}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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\+: LINE or BLOCK. \mbox{\Hypertarget{classcore_1_1TCPSession2_aca2f7127b4081fa0e2d2d128083fb0f7}\label{classcore_1_1TCPSession2_aca2f7127b4081fa0e2d2d128083fb0f7}} -\index{core::TCPSession2@{core::TCPSession2}!send@{send}} -\index{send@{send}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{send()}{send()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::send (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The send method is used to output the contents of the out stream to the session containing the stream. \mbox{\Hypertarget{classcore_1_1TCPSession2_a6f4ed04cd2848e5b903b8331b2e951c8}\label{classcore_1_1TCPSession2_a6f4ed04cd2848e5b903b8331b2e951c8}} -\index{core::TCPSession2@{core::TCPSession2}!setBlockSize@{setBlockSize}} -\index{setBlockSize@{setBlockSize}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{setBlockSize()}{setBlockSize()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::set\+Block\+Size (\begin{DoxyParamCaption}\item[{int}]{size = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}} - -Use set\+Block\+Size to set the amount of data that should be read at once from the session data buffer. If this value is set to 0 then the data will be retrieved \mbox{\Hypertarget{classcore_1_1TCPSession2_a6b999e7ea6551a1b513ee057afaa9e4a}\label{classcore_1_1TCPSession2_a6b999e7ea6551a1b513ee057afaa9e4a}} -\index{core::TCPSession2@{core::TCPSession2}!terminate@{terminate}} -\index{terminate@{terminate}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{terminate()}{terminate()}} -{\footnotesize\ttfamily void core\+::\+TCPSession2\+::terminate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use this method to terminate this \mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}. - -\doxysubsection{Member Data Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSession2_a6b8005e611b6007a00ad3288973a522d}\label{classcore_1_1TCPSession2_a6b8005e611b6007a00ad3288973a522d}} -\index{core::TCPSession2@{core::TCPSession2}!out@{out}} -\index{out@{out}!core::TCPSession2@{core::TCPSession2}} -\doxysubsubsection{\texorpdfstring{out}{out}} -{\footnotesize\ttfamily std\+::stringstream core\+::\+TCPSession2\+::out} - -Use out to send data to the session socket or other session sockets. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSession2.\+h\item -TCPSession2.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSession2__coll__graph.md5 b/latex/classcore_1_1TCPSession2__coll__graph.md5 deleted file mode 100644 index f3b3641..0000000 --- a/latex/classcore_1_1TCPSession2__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -fe64599d41e7ccac39d8893112bb841e \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession2__coll__graph.pdf b/latex/classcore_1_1TCPSession2__coll__graph.pdf deleted file mode 100644 index 9ef5633..0000000 Binary files a/latex/classcore_1_1TCPSession2__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSession2__inherit__graph.md5 b/latex/classcore_1_1TCPSession2__inherit__graph.md5 deleted file mode 100644 index 1f8ba54..0000000 --- a/latex/classcore_1_1TCPSession2__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -de71d95381b2d963b0009617c90d96b4 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession2__inherit__graph.pdf b/latex/classcore_1_1TCPSession2__inherit__graph.pdf deleted file mode 100644 index 8b2e3fa..0000000 Binary files a/latex/classcore_1_1TCPSession2__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSession__coll__graph.md5 b/latex/classcore_1_1TCPSession__coll__graph.md5 deleted file mode 100644 index faebfd6..0000000 --- a/latex/classcore_1_1TCPSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d87972b51f072a08ebf9b9fcdc680564 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession__coll__graph.pdf b/latex/classcore_1_1TCPSession__coll__graph.pdf deleted file mode 100644 index c8d8b5a..0000000 Binary files a/latex/classcore_1_1TCPSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSession__inherit__graph.md5 b/latex/classcore_1_1TCPSession__inherit__graph.md5 deleted file mode 100644 index fc624b8..0000000 --- a/latex/classcore_1_1TCPSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -01b803dfb26ef948867565d97c1cc8c4 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSession__inherit__graph.pdf b/latex/classcore_1_1TCPSession__inherit__graph.pdf deleted file mode 100644 index 68fd7f4..0000000 Binary files a/latex/classcore_1_1TCPSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSocket.tex b/latex/classcore_1_1TCPSocket.tex deleted file mode 100644 index 5208dba..0000000 --- a/latex/classcore_1_1TCPSocket.tex +++ /dev/null @@ -1,71 +0,0 @@ -\hypertarget{classcore_1_1TCPSocket}{}\doxysection{core\+::TCPSocket Class Reference} -\label{classcore_1_1TCPSocket}\index{core::TCPSocket@{core::TCPSocket}} - - -{\ttfamily \#include $<$TCPSocket.\+h$>$} - - - -Inheritance diagram for core\+::TCPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TCPSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TCPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=275pt]{classcore_1_1TCPSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_a09089f0bc701edcf6c148958fd29d374}\label{classcore_1_1TCPSocket_a09089f0bc701edcf6c148958fd29d374}} -{\bfseries TCPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_aa7ffbbd17827ffe769684fa8345862d6}\label{classcore_1_1TCPSocket_aa7ffbbd17827ffe769684fa8345862d6}} -{\bfseries TCPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string text) -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_a22dae8f5b7989d206fab918297e0df94}\label{classcore_1_1TCPSocket_a22dae8f5b7989d206fab918297e0df94}} -void {\bfseries connect} (\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} \&address) -\item -virtual void \mbox{\hyperlink{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}{output}} (std\+::stringstream \&out) -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TCPSocket_abe7d0a740dc0c19c058661270a6fb630}\label{classcore_1_1TCPSocket_abe7d0a740dc0c19c058661270a6fb630}} -\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} {\bfseries ip\+Address} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TCPSocket}{TCPSocket}} - -Provides a network TCP socket. - -For accessing TCP network functions use this object. The connection oriented nature of TCP provides a single client persistent connection with data error correction and a durable synchronous data connection. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}\label{classcore_1_1TCPSocket_afacf7528ff3c9ac077d7b5a49e2116fd}} -\index{core::TCPSocket@{core::TCPSocket}!output@{output}} -\index{output@{output}!core::TCPSocket@{core::TCPSocket}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TCPSocket\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}}) and will output the detail information for the client socket. When extending BMATCPSocket or BMASession you can override the method to add attributes to the list. - -Reimplemented in \mbox{\hyperlink{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}{core\+::\+TLSSession}}, \mbox{\hyperlink{classcore_1_1TCPServer_a49e3ead1bf4e7830685780e73c4db5db}{core\+::\+TCPServer}}, \mbox{\hyperlink{classcore_1_1TCPSession2_ae7648a7759570a00d3d4a8c169183291}{core\+::\+TCPSession2}}, and \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+TCPSession}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TCPSocket.\+h\item -TCPSocket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TCPSocket__coll__graph.md5 b/latex/classcore_1_1TCPSocket__coll__graph.md5 deleted file mode 100644 index 1a3f265..0000000 --- a/latex/classcore_1_1TCPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a33fab216720a2263f2d7805928efbed \ No newline at end of file diff --git a/latex/classcore_1_1TCPSocket__coll__graph.pdf b/latex/classcore_1_1TCPSocket__coll__graph.pdf deleted file mode 100644 index 2c6e5c7..0000000 Binary files a/latex/classcore_1_1TCPSocket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TCPSocket__inherit__graph.md5 b/latex/classcore_1_1TCPSocket__inherit__graph.md5 deleted file mode 100644 index 1e8f37c..0000000 --- a/latex/classcore_1_1TCPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -ac090ff3a3eea09b52baeca9fefa5670 \ No newline at end of file diff --git a/latex/classcore_1_1TCPSocket__inherit__graph.pdf b/latex/classcore_1_1TCPSocket__inherit__graph.pdf deleted file mode 100644 index 6785ae0..0000000 Binary files a/latex/classcore_1_1TCPSocket__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSServer.tex b/latex/classcore_1_1TLSServer.tex deleted file mode 100644 index 1fdc6a2..0000000 --- a/latex/classcore_1_1TLSServer.tex +++ /dev/null @@ -1,83 +0,0 @@ -\hypertarget{classcore_1_1TLSServer}{}\doxysection{core\+::TLSServer Class Reference} -\label{classcore_1_1TLSServer}\index{core::TLSServer@{core::TLSServer}} - - -{\ttfamily \#include $<$TLSServer.\+h$>$} - - - -Inheritance diagram for core\+::TLSServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=288pt]{classcore_1_1TLSServer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TLSServer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TLSServer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\hyperlink{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}{TLSServer}} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}} address) -\item -\mbox{\hyperlink{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}{$\sim$\+TLSServer}} () -\item -\mbox{\Hypertarget{classcore_1_1TLSServer_a984dfd9faaa792e29f905e860d2e4a9e}\label{classcore_1_1TLSServer_a984dfd9faaa792e29f905e860d2e4a9e}} -\mbox{\hyperlink{classcore_1_1TCPSession}{TCPSession}} $\ast$ {\bfseries get\+Socket\+Accept} () -\end{DoxyCompactItemize} -\doxysubsection*{Public Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TLSServer_ab4e788350bda508fa44604d146e7537f}\label{classcore_1_1TLSServer_ab4e788350bda508fa44604d146e7537f}} -SSL\+\_\+\+CTX $\ast$ {\bfseries ctx} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TLSServer}{TLSServer}} - -Manage a socket connection as a TLS server type. Connections to the socket are processed through the accept functionality. - -\doxysubsection{Constructor \& Destructor Documentation} -\mbox{\Hypertarget{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}\label{classcore_1_1TLSServer_a6460f9872936015efdfd0b8de04aa2fe}} -\index{core::TLSServer@{core::TLSServer}!TLSServer@{TLSServer}} -\index{TLSServer@{TLSServer}!core::TLSServer@{core::TLSServer}} -\doxysubsubsection{\texorpdfstring{TLSServer()}{TLSServer()}} -{\footnotesize\ttfamily core\+::\+TLSServer\+::\+TLSServer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&}]{e\+Poll, }\item[{\mbox{\hyperlink{classcore_1_1IPAddress}{IPAddress}}}]{address }\end{DoxyParamCaption})} - -The constructor. - - -\begin{DoxyParams}{Parameters} -{\em e\+Poll} & the BMAEPoll instance that manages the socket. \\ -\hline -{\em url} & the IP address for the socket to receive connection requests. \\ -\hline -{\em port} & the port number that the socket will listen on. \\ -\hline -{\em command\+Name} & the name of the command used to invoke the status display for this object. \\ -\hline -\end{DoxyParams} -\begin{DoxyReturn}{Returns} -the instance of the BMATLSServer\+Socket. -\end{DoxyReturn} -\mbox{\Hypertarget{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}\label{classcore_1_1TLSServer_ac71db77c796a1bf65357409cb96054c7}} -\index{core::TLSServer@{core::TLSServer}!````~TLSServer@{$\sim$TLSServer}} -\index{````~TLSServer@{$\sim$TLSServer}!core::TLSServer@{core::TLSServer}} -\doxysubsubsection{\texorpdfstring{$\sim$TLSServer()}{~TLSServer()}} -{\footnotesize\ttfamily core\+::\+TLSServer\+::$\sim$\+TLSServer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -The destructor for this object. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TLSServer.\+h\item -TLSServer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TLSServer__coll__graph.md5 b/latex/classcore_1_1TLSServer__coll__graph.md5 deleted file mode 100644 index 07c1780..0000000 --- a/latex/classcore_1_1TLSServer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -570f4c102411fb289b8d1a36fa8859e6 \ No newline at end of file diff --git a/latex/classcore_1_1TLSServer__coll__graph.pdf b/latex/classcore_1_1TLSServer__coll__graph.pdf deleted file mode 100644 index d7daac4..0000000 Binary files a/latex/classcore_1_1TLSServer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSServer__inherit__graph.md5 b/latex/classcore_1_1TLSServer__inherit__graph.md5 deleted file mode 100644 index b9a1b2b..0000000 --- a/latex/classcore_1_1TLSServer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d627f85b92b90c661bf33ed669aca2d6 \ No newline at end of file diff --git a/latex/classcore_1_1TLSServer__inherit__graph.pdf b/latex/classcore_1_1TLSServer__inherit__graph.pdf deleted file mode 100644 index 539710f..0000000 Binary files a/latex/classcore_1_1TLSServer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSSession.tex b/latex/classcore_1_1TLSSession.tex deleted file mode 100644 index a835161..0000000 --- a/latex/classcore_1_1TLSSession.tex +++ /dev/null @@ -1,107 +0,0 @@ -\hypertarget{classcore_1_1TLSSession}{}\doxysection{core\+::TLSSession Class Reference} -\label{classcore_1_1TLSSession}\index{core::TLSSession@{core::TLSSession}} - - -{\ttfamily \#include $<$TLSSession.\+h$>$} - - - -Inheritance diagram for core\+::TLSSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=180pt]{classcore_1_1TLSSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::TLSSession\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TLSSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TLSSession_ac2bd48a18a46a3b6827cd689775e3552}\label{classcore_1_1TLSSession_ac2bd48a18a46a3b6827cd689775e3552}} -{\bfseries TLSSession} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\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_a208145cc1fcdc14054602aacc2c51d91}{protocol}} (coreutils\+::\+ZString \&data) override -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}{receive\+Data}} (coreutils\+::\+ZString \&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 -\mbox{\Hypertarget{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}\label{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}} -void \mbox{\hyperlink{classcore_1_1TLSSession_a8e26fdc9e8a6c573b5a504a1f1b137a9}{on\+Registered}} () -\begin{DoxyCompactList}\small\item\em Called after the socket has been registered with epoll processing. \end{DoxyCompactList}\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1TLSSession}{TLSSession}} - -Provides a network TLS socket. - -For accessing TLS network functions use this object. The connection oriented nature of TLS provides a single client persistent connection with data error correction and a durable synchronous data connection. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}\label{classcore_1_1TLSSession_a76cec7cf4851eb27abe77a2339344c6d}} -\index{core::TLSSession@{core::TLSSession}!onRegister@{onRegister}} -\index{onRegister@{onRegister}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{onRegister()}{onRegister()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::on\+Register (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called before the socket has registered with the epoll processing. - -The on\+Register method is called before the socket is registered with e\+Poll so objects extending the \mbox{\hyperlink{classcore_1_1Socket}{Socket}} definition can initialize the socket before receiving events. Evoked when the descriptor is set using set\+Descriptor for the socket. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a81e5ee3e17834166d97c6e8b7dfe0da0}{core\+::\+Socket}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}\label{classcore_1_1TLSSession_ae55de8a035d1ddc560cf619b2030af43}} -\index{core::TLSSession@{core::TLSSession}!output@{output}} -\index{output@{output}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{output()}{output()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::output (\begin{DoxyParamCaption}\item[{std\+::stringstream \&}]{out }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}} - -The output method is called by a socket session (Session) and will output the detail information for the client socket. When extending TLSSocket or Session you can override the method to add attributes to the list. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a50037cbfc515650e04054e5481785981}{core\+::\+TCPSession}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}\label{classcore_1_1TLSSession_a208145cc1fcdc14054602aacc2c51d91}} -\index{core::TLSSession@{core::TLSSession}!protocol@{protocol}} -\index{protocol@{protocol}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{protocol()}{protocol()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::protocol (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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\+: LINE or BLOCK. - -Reimplemented from \mbox{\hyperlink{classcore_1_1TCPSession_a98a65da2346b79bee659fca6902e94c7}{core\+::\+TCPSession}}. - -\mbox{\Hypertarget{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}\label{classcore_1_1TLSSession_a8507cdcd23ac4b340ce6f6d5f0b26a52}} -\index{core::TLSSession@{core::TLSSession}!receiveData@{receiveData}} -\index{receiveData@{receiveData}!core::TLSSession@{core::TLSSession}} -\doxysubsubsection{\texorpdfstring{receiveData()}{receiveData()}} -{\footnotesize\ttfamily void core\+::\+TLSSession\+::receive\+Data (\begin{DoxyParamCaption}\item[{coreutils\+::\+ZString \&}]{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. TLS layer overrides this to be able to read from SSL. - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_a46ed2e240852d3fa949979ebbc4ac875}{core\+::\+Socket}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -TLSSession.\+h\item -TLSSession.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TLSSession__coll__graph.md5 b/latex/classcore_1_1TLSSession__coll__graph.md5 deleted file mode 100644 index e5392be..0000000 --- a/latex/classcore_1_1TLSSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3a1c4c43a650ff535e4abe8ddf98bc47 \ No newline at end of file diff --git a/latex/classcore_1_1TLSSession__coll__graph.pdf b/latex/classcore_1_1TLSSession__coll__graph.pdf deleted file mode 100644 index 6e86c9a..0000000 Binary files a/latex/classcore_1_1TLSSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TLSSession__inherit__graph.md5 b/latex/classcore_1_1TLSSession__inherit__graph.md5 deleted file mode 100644 index 39319e9..0000000 --- a/latex/classcore_1_1TLSSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -547702fb1dc57c45ed4be5e1a8eb0583 \ No newline at end of file diff --git a/latex/classcore_1_1TLSSession__inherit__graph.pdf b/latex/classcore_1_1TLSSession__inherit__graph.pdf deleted file mode 100644 index 28b7d08..0000000 Binary files a/latex/classcore_1_1TLSSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TerminalSession.tex b/latex/classcore_1_1TerminalSession.tex deleted file mode 100644 index 7790409..0000000 --- a/latex/classcore_1_1TerminalSession.tex +++ /dev/null @@ -1,84 +0,0 @@ -\hypertarget{classcore_1_1TerminalSession}{}\doxysection{core\+::Terminal\+Session Class Reference} -\label{classcore_1_1TerminalSession}\index{core::TerminalSession@{core::TerminalSession}} - - -Inheritance diagram for core\+::Terminal\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=203pt]{classcore_1_1TerminalSession__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Terminal\+Session\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=350pt]{classcore_1_1TerminalSession__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a6773b1897d2e417ab573b28fa127230c}\label{classcore_1_1TerminalSession_a6773b1897d2e417ab573b28fa127230c}} -{\bfseries Terminal\+Session} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1TCPServer}{TCPServer}} \&server) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a0df0106164a7f213acf2e814e725c576}\label{classcore_1_1TerminalSession_a0df0106164a7f213acf2e814e725c576}} -int {\bfseries get\+Lines} () -\item -void \mbox{\hyperlink{classcore_1_1TerminalSession_a42bb06857891220a831da04248233935}{clear}} () -\item -void \mbox{\hyperlink{classcore_1_1TerminalSession_aa660768eed03b0b996a749e8a146446c}{clear\+EOL}} () -\item -void \mbox{\hyperlink{classcore_1_1TerminalSession_aa9939cbe36c08e1a0b8413a96ca251fa}{set\+Cursor\+Location}} (int x, int y) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_abb104a3743f52c8237afc25c9abd3815}\label{classcore_1_1TerminalSession_abb104a3743f52c8237afc25c9abd3815}} -void {\bfseries set\+Color} (int color) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a96c909e28a87f2e5b64fe2ca7ab79ca7}\label{classcore_1_1TerminalSession_a96c909e28a87f2e5b64fe2ca7ab79ca7}} -void {\bfseries set\+Back\+Color} (int color) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a930de98aea34eca4723a1efbc0272223}\label{classcore_1_1TerminalSession_a930de98aea34eca4723a1efbc0272223}} -void {\bfseries save\+Cursor} () -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_afc89dc99e1b104bee7717b0cda2f9b37}\label{classcore_1_1TerminalSession_afc89dc99e1b104bee7717b0cda2f9b37}} -void {\bfseries restore\+Cursor} () -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a21f8ec433bcb4c7f55807cdcbc929134}\label{classcore_1_1TerminalSession_a21f8ec433bcb4c7f55807cdcbc929134}} -void {\bfseries Next\+Line} (int lines) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_aea2f243e65074cb174ddf8844c9126ff}\label{classcore_1_1TerminalSession_aea2f243e65074cb174ddf8844c9126ff}} -void {\bfseries Previous\+Line} (int lines) -\item -\mbox{\Hypertarget{classcore_1_1TerminalSession_a2305ddd73d1ccb8a303abd718cd6e7b0}\label{classcore_1_1TerminalSession_a2305ddd73d1ccb8a303abd718cd6e7b0}} -void {\bfseries scroll\+Area} (int start, int end) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1TerminalSession_a42bb06857891220a831da04248233935}\label{classcore_1_1TerminalSession_a42bb06857891220a831da04248233935}} -\index{core::TerminalSession@{core::TerminalSession}!clear@{clear}} -\index{clear@{clear}!core::TerminalSession@{core::TerminalSession}} -\doxysubsubsection{\texorpdfstring{clear()}{clear()}} -{\footnotesize\ttfamily void core\+::\+Terminal\+Session\+::clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Clear the display. \mbox{\Hypertarget{classcore_1_1TerminalSession_aa660768eed03b0b996a749e8a146446c}\label{classcore_1_1TerminalSession_aa660768eed03b0b996a749e8a146446c}} -\index{core::TerminalSession@{core::TerminalSession}!clearEOL@{clearEOL}} -\index{clearEOL@{clearEOL}!core::TerminalSession@{core::TerminalSession}} -\doxysubsubsection{\texorpdfstring{clearEOL()}{clearEOL()}} -{\footnotesize\ttfamily void core\+::\+Terminal\+Session\+::clear\+EOL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Clear the display from the cursor to the end of line. \mbox{\Hypertarget{classcore_1_1TerminalSession_aa9939cbe36c08e1a0b8413a96ca251fa}\label{classcore_1_1TerminalSession_aa9939cbe36c08e1a0b8413a96ca251fa}} -\index{core::TerminalSession@{core::TerminalSession}!setCursorLocation@{setCursorLocation}} -\index{setCursorLocation@{setCursorLocation}!core::TerminalSession@{core::TerminalSession}} -\doxysubsubsection{\texorpdfstring{setCursorLocation()}{setCursorLocation()}} -{\footnotesize\ttfamily void core\+::\+Terminal\+Session\+::set\+Cursor\+Location (\begin{DoxyParamCaption}\item[{int}]{x, }\item[{int}]{y }\end{DoxyParamCaption})} - -Set the location of the cursor on the display. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Terminal\+Session.\+h\item -Terminal\+Session.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1TerminalSession__coll__graph.md5 b/latex/classcore_1_1TerminalSession__coll__graph.md5 deleted file mode 100644 index 615195b..0000000 --- a/latex/classcore_1_1TerminalSession__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -00641485784139c701aa818005d8d704 \ No newline at end of file diff --git a/latex/classcore_1_1TerminalSession__coll__graph.pdf b/latex/classcore_1_1TerminalSession__coll__graph.pdf deleted file mode 100644 index 2755edc..0000000 Binary files a/latex/classcore_1_1TerminalSession__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1TerminalSession__inherit__graph.md5 b/latex/classcore_1_1TerminalSession__inherit__graph.md5 deleted file mode 100644 index 68484f9..0000000 --- a/latex/classcore_1_1TerminalSession__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3e581dfae79d3970f63743d4be890c78 \ No newline at end of file diff --git a/latex/classcore_1_1TerminalSession__inherit__graph.pdf b/latex/classcore_1_1TerminalSession__inherit__graph.pdf deleted file mode 100644 index 9a0ef5f..0000000 Binary files a/latex/classcore_1_1TerminalSession__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Thread.tex b/latex/classcore_1_1Thread.tex deleted file mode 100644 index 0abdb62..0000000 --- a/latex/classcore_1_1Thread.tex +++ /dev/null @@ -1,71 +0,0 @@ -\hypertarget{classcore_1_1Thread}{}\doxysection{core\+::Thread Class Reference} -\label{classcore_1_1Thread}\index{core::Thread@{core::Thread}} - - -{\ttfamily \#include $<$Thread.\+h$>$} - - - -Inheritance diagram for core\+::Thread\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1Thread__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Thread\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=157pt]{classcore_1_1Thread__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Thread_acf8e7e682431fa6a4a3a77ce9b33aefc}\label{classcore_1_1Thread_acf8e7e682431fa6a4a3a77ce9b33aefc}} -{\bfseries Thread} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1Thread_a88638bbc82ac8d05fc4400db90a89451}\label{classcore_1_1Thread_a88638bbc82ac8d05fc4400db90a89451}} -{\bfseries Thread} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, \mbox{\hyperlink{classcore_1_1ThreadScope}{Thread\+Scope}} $\ast$thread) -\item -void \mbox{\hyperlink{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}{start}} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_a9ba3b9a5127dcfa0ee2c5f315d6a648d}\label{classcore_1_1Thread_a9ba3b9a5127dcfa0ee2c5f315d6a648d}} -void {\bfseries join} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_a0b5d8efe9bf913e06a7768cb5ef75c8a}\label{classcore_1_1Thread_a0b5d8efe9bf913e06a7768cb5ef75c8a}} -std\+::string {\bfseries get\+Status} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_adddf5bccd9189cbd81eeadf0311dbdd6}\label{classcore_1_1Thread_adddf5bccd9189cbd81eeadf0311dbdd6}} -pid\+\_\+t {\bfseries get\+Thread\+Id} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_aca6a18a5aba7e87fe91a828f4896d654}\label{classcore_1_1Thread_aca6a18a5aba7e87fe91a828f4896d654}} -int {\bfseries get\+Count} () -\item -\mbox{\Hypertarget{classcore_1_1Thread_aa5b676aa441735c2ac60d05fd3ab02b5}\label{classcore_1_1Thread_aa5b676aa441735c2ac60d05fd3ab02b5}} -void {\bfseries output} (std\+::stringstream \&data) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Thread}{Thread}} - -This thread object is designed to be the thread processor for the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} object. It wraps the thread object to allow maintaining a status value for monitoring the thread activity. \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} will instantiate a \mbox{\hyperlink{classcore_1_1Thread}{Thread}} object for each thread specified in the \mbox{\hyperlink{classcore_1_1EPoll}{EPoll}}\textquotesingle{}s start method. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}\label{classcore_1_1Thread_ae6885df9a9b9503669e5776518b19054}} -\index{core::Thread@{core::Thread}!start@{start}} -\index{start@{start}!core::Thread@{core::Thread}} -\doxysubsubsection{\texorpdfstring{start()}{start()}} -{\footnotesize\ttfamily void core\+::\+Thread\+::start (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Start the thread object. This will cause the epoll scheduler to commence reading the epoll queue. - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Thread.\+h\item -Thread.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1ThreadScope.tex b/latex/classcore_1_1ThreadScope.tex deleted file mode 100644 index 975b049..0000000 --- a/latex/classcore_1_1ThreadScope.tex +++ /dev/null @@ -1,7 +0,0 @@ -\hypertarget{classcore_1_1ThreadScope}{}\doxysection{core\+::Thread\+Scope Class Reference} -\label{classcore_1_1ThreadScope}\index{core::ThreadScope@{core::ThreadScope}} - - -The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} -\item -Thread\+Scope.\+h\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Thread__coll__graph.md5 b/latex/classcore_1_1Thread__coll__graph.md5 deleted file mode 100644 index bbc1377..0000000 --- a/latex/classcore_1_1Thread__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6c8d331b9f919c769d46392c930a2b0 \ No newline at end of file diff --git a/latex/classcore_1_1Thread__coll__graph.pdf b/latex/classcore_1_1Thread__coll__graph.pdf deleted file mode 100644 index b83ce2c..0000000 Binary files a/latex/classcore_1_1Thread__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Thread__inherit__graph.md5 b/latex/classcore_1_1Thread__inherit__graph.md5 deleted file mode 100644 index bbc1377..0000000 --- a/latex/classcore_1_1Thread__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6c8d331b9f919c769d46392c930a2b0 \ No newline at end of file diff --git a/latex/classcore_1_1Thread__inherit__graph.pdf b/latex/classcore_1_1Thread__inherit__graph.pdf deleted file mode 100644 index b83ce2c..0000000 Binary files a/latex/classcore_1_1Thread__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Timer.tex b/latex/classcore_1_1Timer.tex deleted file mode 100644 index 3126db9..0000000 --- a/latex/classcore_1_1Timer.tex +++ /dev/null @@ -1,94 +0,0 @@ -\hypertarget{classcore_1_1Timer}{}\doxysection{core\+::Timer Class Reference} -\label{classcore_1_1Timer}\index{core::Timer@{core::Timer}} - - -{\ttfamily \#include $<$Timer.\+h$>$} - - - -Inheritance diagram for core\+::Timer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=156pt]{classcore_1_1Timer__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::Timer\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=174pt]{classcore_1_1Timer__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1Timer_aa12f319bab9c7a350244c4d47fe59de9}\label{classcore_1_1Timer_aa12f319bab9c7a350244c4d47fe59de9}} -{\bfseries Timer} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\item -\mbox{\Hypertarget{classcore_1_1Timer_a6ba8de81f8e3b26fd132e29230646024}\label{classcore_1_1Timer_a6ba8de81f8e3b26fd132e29230646024}} -{\bfseries Timer} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, double delay) -\item -void \mbox{\hyperlink{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}{set\+Timer}} (double delay) -\item -void \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer}} () -\item -double \mbox{\hyperlink{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}{get\+Elapsed}} () -\item -\mbox{\Hypertarget{classcore_1_1Timer_afee1c871ce74e6b594bd6e64ad3cb576}\label{classcore_1_1Timer_afee1c871ce74e6b594bd6e64ad3cb576}} -double {\bfseries get\+Epoch} () -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -virtual void \mbox{\hyperlink{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}{on\+Timeout}} ()=0 -\end{DoxyCompactItemize} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1Timer}{Timer}} - -Set and trigger callback upon specified timeout. - -The \mbox{\hyperlink{classcore_1_1Timer}{Timer}} is used to establish a timer using the timer socket interface. It cannot be instantiated directly but must be extended. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}\label{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}} -\index{core::Timer@{core::Timer}!clearTimer@{clearTimer}} -\index{clearTimer@{clearTimer}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{clearTimer()}{clearTimer()}} -{\footnotesize\ttfamily void core\+::\+Timer\+::clear\+Timer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer()}} to unset the timer and return the timer to an idle state. \mbox{\Hypertarget{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}\label{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}} -\index{core::Timer@{core::Timer}!getElapsed@{getElapsed}} -\index{getElapsed@{getElapsed}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{getElapsed()}{getElapsed()}} -{\footnotesize\ttfamily double core\+::\+Timer\+::get\+Elapsed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_a0df7f1ffc05529b45d6e13713bbc0209}{get\+Elapsed()}} method to obtain the amount of time that has elapsed since the timer was set. \mbox{\Hypertarget{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}\label{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}} -\index{core::Timer@{core::Timer}!onTimeout@{onTimeout}} -\index{onTimeout@{onTimeout}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{onTimeout()}{onTimeout()}} -{\footnotesize\ttfamily virtual void core\+::\+Timer\+::on\+Timeout (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}} - -This method is called when the time out occurs. \mbox{\Hypertarget{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}\label{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}} -\index{core::Timer@{core::Timer}!setTimer@{setTimer}} -\index{setTimer@{setTimer}!core::Timer@{core::Timer}} -\doxysubsubsection{\texorpdfstring{setTimer()}{setTimer()}} -{\footnotesize\ttfamily void core\+::\+Timer\+::set\+Timer (\begin{DoxyParamCaption}\item[{double}]{delay }\end{DoxyParamCaption})} - -Use the \mbox{\hyperlink{classcore_1_1Timer_ac0a642cdcb76b7f995137162050d3d0b}{set\+Timer()}} method to set the time out value for timer. Setting the timer also starts the timer countdown. The \mbox{\hyperlink{classcore_1_1Timer_a8e063f46e89dac04364871e909ab940a}{clear\+Timer()}} method can be used to reset the timer without triggering the \mbox{\hyperlink{classcore_1_1Timer_ae51704ff08d985bbc30e3ff4c9b3c6ca}{on\+Timeout()}} callback. - - -\begin{DoxyParams}{Parameters} -{\em delay} & the amount of time in seconds to wait before trigering the on\+Timeout function. \\ -\hline -\end{DoxyParams} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -Timer.\+h\item -Timer.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1Timer__coll__graph.md5 b/latex/classcore_1_1Timer__coll__graph.md5 deleted file mode 100644 index b287f16..0000000 --- a/latex/classcore_1_1Timer__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -7797114d50492239a6a8ab7ebcacad0b \ No newline at end of file diff --git a/latex/classcore_1_1Timer__coll__graph.pdf b/latex/classcore_1_1Timer__coll__graph.pdf deleted file mode 100644 index 4bf9272..0000000 Binary files a/latex/classcore_1_1Timer__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1Timer__inherit__graph.md5 b/latex/classcore_1_1Timer__inherit__graph.md5 deleted file mode 100644 index fe84e18..0000000 --- a/latex/classcore_1_1Timer__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -ab2b38172e6372d1ef31defa9e6f6b5e \ No newline at end of file diff --git a/latex/classcore_1_1Timer__inherit__graph.pdf b/latex/classcore_1_1Timer__inherit__graph.pdf deleted file mode 100644 index 21cc23a..0000000 Binary files a/latex/classcore_1_1Timer__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPServerSocket.tex b/latex/classcore_1_1UDPServerSocket.tex deleted file mode 100644 index 039ecb6..0000000 --- a/latex/classcore_1_1UDPServerSocket.tex +++ /dev/null @@ -1,80 +0,0 @@ -\hypertarget{classcore_1_1UDPServerSocket}{}\doxysection{core\+::UDPServer\+Socket Class Reference} -\label{classcore_1_1UDPServerSocket}\index{core::UDPServerSocket@{core::UDPServerSocket}} - - -{\ttfamily \#include $<$UDPServer\+Socket.\+h$>$} - - - -Inheritance diagram for core\+::UDPServer\+Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=290pt]{classcore_1_1UDPServerSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::UDPServer\+Socket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=245pt]{classcore_1_1UDPServerSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a6fee7bc6dc2f94d48734c07cbc918734}\label{classcore_1_1UDPServerSocket_a6fee7bc6dc2f94d48734c07cbc918734}} -{\bfseries UDPServer\+Socket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll, std\+::string url, short int port, std\+::string command\+Name) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Member Functions} -\begin{DoxyCompactItemize} -\item -void \mbox{\hyperlink{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}{on\+Data\+Received}} (std\+::string data) override -\begin{DoxyCompactList}\small\item\em Called when data is received from the socket. \end{DoxyCompactList}\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_aef32dee99a40a8951a708e99776539d4}\label{classcore_1_1UDPServerSocket_aef32dee99a40a8951a708e99776539d4}} -int {\bfseries process\+Command} (std\+::string request, std\+::stringstream \&data) -\end{DoxyCompactItemize} -\doxysubsection*{Protected Attributes} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a83362532c66271699c4e60d1da2a41bc}\label{classcore_1_1UDPServerSocket_a83362532c66271699c4e60d1da2a41bc}} -std\+::vector$<$ Session $\ast$ $>$ {\bfseries sessions} -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -\doxysubsection{Detailed Description} -\mbox{\hyperlink{classcore_1_1UDPSocket}{UDPSocket}} - -Manage a socket connection as a UDP server type. Connections to the socket are processed through the session list functionality. A list of sessions is maintained in a vector object. - -\doxysubsection{Member Function Documentation} -\mbox{\Hypertarget{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}\label{classcore_1_1UDPServerSocket_a41933ca153c854a800e3d047ab18313e}} -\index{core::UDPServerSocket@{core::UDPServerSocket}!onDataReceived@{onDataReceived}} -\index{onDataReceived@{onDataReceived}!core::UDPServerSocket@{core::UDPServerSocket}} -\doxysubsubsection{\texorpdfstring{onDataReceived()}{onDataReceived()}} -{\footnotesize\ttfamily void core\+::\+UDPServer\+Socket\+::on\+Data\+Received (\begin{DoxyParamCaption}\item[{std\+::string}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}} - - - -Called when data is received from the socket. - -The on\+Connected method is called when the socket is ready to communicate. Writing to the socket can begin on this call to initiate a contact with the remote device. The on\+Data\+Received method is called when the socket has received an event from epoll and there is data ready to be read from the socket. The default handler will pull the data and put it into the streambuf for the socket. EPOLLIN - - -\begin{DoxyParams}{Parameters} -{\em data} & the data that has been received from the socket. \\ -\hline -\end{DoxyParams} - - -Reimplemented from \mbox{\hyperlink{classcore_1_1Socket_ac8d6a2c54696eb6fc2024cf6bcf6b4e5}{core\+::\+Socket}}. - - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -UDPServer\+Socket.\+h\item -UDPServer\+Socket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1UDPServerSocket__coll__graph.md5 b/latex/classcore_1_1UDPServerSocket__coll__graph.md5 deleted file mode 100644 index eb429e0..0000000 --- a/latex/classcore_1_1UDPServerSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5fe54968761d04dd96b6878affeacc10 \ No newline at end of file diff --git a/latex/classcore_1_1UDPServerSocket__coll__graph.pdf b/latex/classcore_1_1UDPServerSocket__coll__graph.pdf deleted file mode 100644 index adb25b5..0000000 Binary files a/latex/classcore_1_1UDPServerSocket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPServerSocket__inherit__graph.md5 b/latex/classcore_1_1UDPServerSocket__inherit__graph.md5 deleted file mode 100644 index 9320910..0000000 --- a/latex/classcore_1_1UDPServerSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -460ca49f78cf9de9f37d9f3ea2fa6542 \ No newline at end of file diff --git a/latex/classcore_1_1UDPServerSocket__inherit__graph.pdf b/latex/classcore_1_1UDPServerSocket__inherit__graph.pdf deleted file mode 100644 index 66360ef..0000000 Binary files a/latex/classcore_1_1UDPServerSocket__inherit__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPSocket.tex b/latex/classcore_1_1UDPSocket.tex deleted file mode 100644 index c36c711..0000000 --- a/latex/classcore_1_1UDPSocket.tex +++ /dev/null @@ -1,33 +0,0 @@ -\hypertarget{classcore_1_1UDPSocket}{}\doxysection{core\+::UDPSocket Class Reference} -\label{classcore_1_1UDPSocket}\index{core::UDPSocket@{core::UDPSocket}} - - -Inheritance diagram for core\+::UDPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=208pt]{classcore_1_1UDPSocket__inherit__graph} -\end{center} -\end{figure} - - -Collaboration diagram for core\+::UDPSocket\+:\nopagebreak -\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[width=177pt]{classcore_1_1UDPSocket__coll__graph} -\end{center} -\end{figure} -\doxysubsection*{Public Member Functions} -\begin{DoxyCompactItemize} -\item -\mbox{\Hypertarget{classcore_1_1UDPSocket_a9dcbe1203fea9c25400a391d3430e976}\label{classcore_1_1UDPSocket_a9dcbe1203fea9c25400a391d3430e976}} -{\bfseries UDPSocket} (\mbox{\hyperlink{classcore_1_1EPoll}{EPoll}} \&e\+Poll) -\end{DoxyCompactItemize} -\doxysubsection*{Additional Inherited Members} - - -The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} -\item -UDPSocket.\+h\item -UDPSocket.\+cpp\end{DoxyCompactItemize} diff --git a/latex/classcore_1_1UDPSocket__coll__graph.md5 b/latex/classcore_1_1UDPSocket__coll__graph.md5 deleted file mode 100644 index fe68460..0000000 --- a/latex/classcore_1_1UDPSocket__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e118447cd2727ab7cf67c7f37abad058 \ No newline at end of file diff --git a/latex/classcore_1_1UDPSocket__coll__graph.pdf b/latex/classcore_1_1UDPSocket__coll__graph.pdf deleted file mode 100644 index b9aedb7..0000000 Binary files a/latex/classcore_1_1UDPSocket__coll__graph.pdf and /dev/null differ diff --git a/latex/classcore_1_1UDPSocket__inherit__graph.md5 b/latex/classcore_1_1UDPSocket__inherit__graph.md5 deleted file mode 100644 index 2f748f4..0000000 --- a/latex/classcore_1_1UDPSocket__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e21e5069bcc5ad5911e1036f19eb0699 \ No newline at end of file diff --git a/latex/classcore_1_1UDPSocket__inherit__graph.pdf b/latex/classcore_1_1UDPSocket__inherit__graph.pdf deleted file mode 100644 index fa38bf9..0000000 Binary files a/latex/classcore_1_1UDPSocket__inherit__graph.pdf and /dev/null differ diff --git a/latex/doxygen.sty b/latex/doxygen.sty deleted file mode 100644 index 8f59bcc..0000000 --- a/latex/doxygen.sty +++ /dev/null @@ -1,576 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{doxygen} - -% Packages used by this style file -\RequirePackage{alltt} -%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{calc} -\RequirePackage{float} -%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package -\RequirePackage{verbatim} -\RequirePackage[table]{xcolor} -\RequirePackage{longtable_doxygen} -\RequirePackage{tabu_doxygen} -\RequirePackage{fancyvrb} -\RequirePackage{tabularx} -\RequirePackage{multicol} -\RequirePackage{multirow} -\RequirePackage{hanging} -\RequirePackage{ifpdf} -\RequirePackage{adjustbox} -\RequirePackage{amssymb} -\RequirePackage{stackengine} -\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis - -%---------- Internal commands used in this style file ---------------- - -\newcommand{\ensurespace}[1]{% - \begingroup% - \setlength{\dimen@}{#1}% - \vskip\z@\@plus\dimen@% - \penalty -100\vskip\z@\@plus -\dimen@% - \vskip\dimen@% - \penalty 9999% - \vskip -\dimen@% - \vskip\z@skip% hide the previous |\vskip| from |\addvspace| - \endgroup% -} - -\newcommand{\DoxyHorRuler}[1]{% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{#1=0}% - {% - \hrule% - }% - {% - \hrulefilll% - }% -} -\newcommand{\DoxyLabelFont}{} -\newcommand{\entrylabel}[1]{% - {% - \parbox[b]{\labelwidth-4pt}{% - \makebox[0pt][l]{\DoxyLabelFont#1}% - \vspace{1.5\baselineskip}% - }% - }% -} - -\newenvironment{DoxyDesc}[1]{% - \ensurespace{4\baselineskip}% - \begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - %\setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - }% - \item[#1]% -}{% - \end{list}% -} - -\newsavebox{\xrefbox} -\newlength{\xreflength} -\newcommand{\xreflabel}[1]{% - \sbox{\xrefbox}{#1}% - \setlength{\xreflength}{\wd\xrefbox}% - \ifthenelse{\xreflength>\labelwidth}{% - \begin{minipage}{\textwidth}% - \setlength{\parindent}{0pt}% - \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% - \end{minipage}% - }{% - \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% - }% -} - -%---------- Commands used by doxygen LaTeX output generator ---------- - -% Used by
 ... 
-\newenvironment{DoxyPre}{% - \small% - \begin{alltt}% -}{% - \end{alltt}% - \normalsize% -} -% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. -\newlength{\CodeWidthChar} -\newlength{\CodeHeightChar} -\settowidth{\CodeWidthChar}{?} -\settoheight{\CodeHeightChar}{?} -% Necessary for hanging indent -\newlength{\DoxyCodeWidth} - -\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} - -\newcommand\NiceSpace{% - \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% -} - -% Used by @code ... @endcode -\newenvironment{DoxyCode}[1]{% - \par% - \scriptsize% - \normalfont\ttfamily% - \rightskip0pt plus 1fil% - \settowidth{\DoxyCodeWidth}{000000}% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{\equal{#1}{0}} - { - {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% - } - { - {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% - } - -}{% - \normalfont% - \normalsize% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% -} - -% Redefining not defined characters, i.e. "Replacement Character" in tex output. -\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% - \textcolor{white}{\sffamily\bfseries\small ?}}{% - \rotatebox{45}{$\blacksquare$}}}} - -% Used by @example, @include, @includelineno and @dontinclude -\newenvironment{DoxyCodeInclude}[1]{% - \DoxyCode{#1}% -}{% - \endDoxyCode% -} - -% Used by @verbatim ... @endverbatim -\newenvironment{DoxyVerb}{% - \footnotesize% - \verbatim% -}{% - \endverbatim% - \normalsize% -} - -% Used by @verbinclude -\newenvironment{DoxyVerbInclude}{% - \DoxyVerb% -}{% - \endDoxyVerb% -} - -% Used by numbered lists (using '-#' or
    ...
) -\newenvironment{DoxyEnumerate}{% - \enumerate% -}{% - \endenumerate% -} - -% Used by bullet lists (using '-', @li, @arg, or ) -\newenvironment{DoxyItemize}{% - \itemize% -}{% - \enditemize% -} - -% Used by description lists (using
...
) -\newenvironment{DoxyDescription}{% - \description% -}{% - \enddescription% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if caption is specified) -\newenvironment{DoxyImage}{% - \begin{figure}[H]% - \centering% -}{% - \end{figure}% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if no caption is specified) -\newenvironment{DoxyImageNoCaption}{% - \begin{center}% -}{% - \end{center}% -} - -% Used by @image -% (only if inline is specified) -\newenvironment{DoxyInlineImage}{% -}{% -} - -% Used by @attention -\newenvironment{DoxyAttention}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @author and @authors -\newenvironment{DoxyAuthor}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @date -\newenvironment{DoxyDate}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @invariant -\newenvironment{DoxyInvariant}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @note -\newenvironment{DoxyNote}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @post -\newenvironment{DoxyPostcond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @pre -\newenvironment{DoxyPrecond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @copyright -\newenvironment{DoxyCopyright}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @remark -\newenvironment{DoxyRemark}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @return and @returns -\newenvironment{DoxyReturn}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @since -\newenvironment{DoxySince}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @see -\newenvironment{DoxySeeAlso}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @version -\newenvironment{DoxyVersion}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @warning -\newenvironment{DoxyWarning}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @internal -\newenvironment{DoxyInternal}[1]{% - \paragraph*{#1}% -}{% -} - -% Used by @par and @paragraph -\newenvironment{DoxyParagraph}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by parameter lists -\newenvironment{DoxyParams}[2][]{% - \tabulinesep=1mm% - \par% - \ifthenelse{\equal{#1}{}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description - {\ifthenelse{\equal{#1}{1}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc - } - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields of simple structs -\newenvironment{DoxyFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields simple class style enums -\newenvironment{DoxyEnumFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for parameters within a detailed function description -\newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% -}{% -} - -% Used by return value lists -\newenvironment{DoxyRetVals}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by exception lists -\newenvironment{DoxyExceptions}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by template parameter lists -\newenvironment{DoxyTemplParams}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for member lists -\newenvironment{DoxyCompactItemize}{% - \begin{itemize}% - \setlength{\itemsep}{-3pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \setlength{\partopsep}{0pt}% -}{% - \end{itemize}% -} - -% Used for member descriptions -\newenvironment{DoxyCompactList}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - \setlength{\itemsep}{0pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \renewcommand{\makelabel}{\hfill}% - }% -}{% - \end{list}% -} - -% Used for reference lists (@bug, @deprecated, @todo, etc.) -\newenvironment{DoxyRefList}{% - \begin{list}{}{% - \setlength{\labelwidth}{10pt}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \renewcommand{\makelabel}{\xreflabel}% - }% -}{% - \end{list}% -} - -% Used by @bug, @deprecated, @todo, etc. -\newenvironment{DoxyRefDesc}[1]{% - \begin{list}{}{% - \renewcommand\makelabel[1]{\textbf{##1}}% - \settowidth\labelwidth{\makelabel{#1}}% - \setlength\leftmargin{\labelwidth+\labelsep}% - }% -}{% - \end{list}% -} - -% Used by parameter lists and simple sections -\newenvironment{Desc} -{\begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - \setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - } -}{% - \end{list}% -} - -% Used by tables -\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% -\newenvironment{TabularC}[1]% -{\tabulinesep=1mm -\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% -{\end{longtabu*}\par}% - -\newenvironment{TabularNC}[1]% -{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% -{\end{tabu}\par}% - -% Used for member group headers -\newenvironment{Indent}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - }% - \item[]\ignorespaces% -}{% - \unskip% - \end{list}% -} - -% Used when hyperlinks are turned off -\newcommand{\doxyref}[3]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% -} - -% Used to link to a table when hyperlinks are turned on -\newcommand{\doxytablelink}[2]{% - \ref{#1}% -} - -% Used to link to a table when hyperlinks are turned off -\newcommand{\doxytableref}[3]{% - \ref{#3}% -} - -% Used by @addindex -\newcommand{\lcurly}{\{} -\newcommand{\rcurly}{\}} - -% Colors used for syntax highlighting -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} - -% Color used for table heading -\newcommand{\tableheadbgcolor}{lightgray}% - -% Version of hypertarget with correct landing location -\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} - -% possibility to have sections etc. be within the margins -% unfortunately had to copy part of book.cls and add \raggedright -\makeatletter -\newcommand\doxysection{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\raggedright\normalfont\Large\bfseries}} -\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\large\bfseries}} -\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {-1em}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\raggedright\normalfont\normalsize\bfseries}} -\makeatother -% Define caption that is also suitable in a table -\makeatletter -\def\doxyfigcaption{% -\H@refstepcounter{figure}% -\@dblarg{\@caption{figure}}} -\makeatother diff --git a/latex/hierarchy.tex b/latex/hierarchy.tex deleted file mode 100644 index 7d69437..0000000 --- a/latex/hierarchy.tex +++ /dev/null @@ -1,51 +0,0 @@ -\doxysection{Class Hierarchy} -This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Command}{\pageref{classcore_1_1Command}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Command\+List}{\pageref{classcore_1_1CommandList}}{} -\item \contentsline{section}{core\+::EPoll}{\pageref{classcore_1_1EPoll}}{} -\item \contentsline{section}{core\+::Subscription\+Manager}{\pageref{classcore_1_1SubscriptionManager}}{} -\item \contentsline{section}{core\+::TCPServer}{\pageref{classcore_1_1TCPServer}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Server}{\pageref{classcore_1_1ConsoleServer}}{} -\item \contentsline{section}{core\+::TLSServer}{\pageref{classcore_1_1TLSServer}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::UDPServer\+Socket}{\pageref{classcore_1_1UDPServerSocket}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::IPAddress\+List}{\pageref{classcore_1_1IPAddressList}}{} -\item coreutils\+::Log\+Listener\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Server}{\pageref{classcore_1_1ConsoleServer}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Object}{\pageref{classcore_1_1Object}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::IPAddress}{\pageref{classcore_1_1IPAddress}}{} -\item \contentsline{section}{core\+::Session\+Filter}{\pageref{classcore_1_1SessionFilter}}{} -\item \contentsline{section}{core\+::Thread}{\pageref{classcore_1_1Thread}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Socket}{\pageref{classcore_1_1Socket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::INotify}{\pageref{classcore_1_1INotify}}{} -\item \contentsline{section}{core\+::TCPSocket}{\pageref{classcore_1_1TCPSocket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::TCPServer}{\pageref{classcore_1_1TCPServer}}{} -\item \contentsline{section}{core\+::TCPSession}{\pageref{classcore_1_1TCPSession}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::TLSSession}{\pageref{classcore_1_1TLSSession}}{} -\item \contentsline{section}{core\+::Terminal\+Session}{\pageref{classcore_1_1TerminalSession}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::Console\+Session}{\pageref{classcore_1_1ConsoleSession}}{} -\end{DoxyCompactList} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::TCPSession2}{\pageref{classcore_1_1TCPSession2}}{} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Timer}{\pageref{classcore_1_1Timer}}{} -\item \contentsline{section}{core\+::UDPSocket}{\pageref{classcore_1_1UDPSocket}}{} -\begin{DoxyCompactList} -\item \contentsline{section}{core\+::UDPServer\+Socket}{\pageref{classcore_1_1UDPServerSocket}}{} -\end{DoxyCompactList} -\end{DoxyCompactList} -\item \contentsline{section}{core\+::Subscription}{\pageref{classcore_1_1Subscription}}{} -\item \contentsline{section}{core\+::Subscription\+Handler}{\pageref{classcore_1_1SubscriptionHandler}}{} -\item \contentsline{section}{core\+::Subscription\+Handler\+Factory}{\pageref{classcore_1_1SubscriptionHandlerFactory}}{} -\item \contentsline{section}{core\+::Thread\+Scope}{\pageref{classcore_1_1ThreadScope}}{} -\end{DoxyCompactList} diff --git a/latex/longtable_doxygen.sty b/latex/longtable_doxygen.sty deleted file mode 100644 index a0eb314..0000000 --- a/latex/longtable_doxygen.sty +++ /dev/null @@ -1,448 +0,0 @@ -%% -%% This is file `longtable.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% longtable.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at http://latex-project.org/bugs.html -%% (but please observe conditions on bug reports sent to that address!) -%% -%% Copyright 1993-2016 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. -%% -------------------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file may only be distributed together with a copy of the LaTeX -%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' -%% without such generated files. -%% -%% The list of all files belonging to the LaTeX `Tools Bundle' is -%% given in the file `manifest.txt'. -%% -%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle -\NeedsTeXFormat{LaTeX2e}[1995/06/01] -\ProvidesPackage{longtable_doxygen} - [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] -\def\LT@err{\PackageError{longtable}} -\def\LT@warn{\PackageWarning{longtable}} -\def\LT@final@warn{% - \AtEndDocument{% - \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% - \global\let\LT@final@warn\relax} -\DeclareOption{errorshow}{% - \def\LT@warn{\PackageInfo{longtable}}} -\DeclareOption{pausing}{% - \def\LT@warn#1{% - \LT@err{#1}{This is not really an error}}} -\DeclareOption{set}{} -\DeclareOption{final}{} -\ProcessOptions -\newskip\LTleft \LTleft=\fill -\newskip\LTright \LTright=\fill -\newskip\LTpre \LTpre=\bigskipamount -\newskip\LTpost \LTpost=\bigskipamount -\newcount\LTchunksize \LTchunksize=20 -\let\c@LTchunksize\LTchunksize -\newdimen\LTcapwidth \LTcapwidth=4in -\newbox\LT@head -\newbox\LT@firsthead -\newbox\LT@foot -\newbox\LT@lastfoot -\newcount\LT@cols -\newcount\LT@rows -\newcounter{LT@tables} -\newcounter{LT@chunks}[LT@tables] -\ifx\c@table\undefined - \newcounter{table} - \def\fnum@table{\tablename~\thetable} -\fi -\ifx\tablename\undefined - \def\tablename{Table} -\fi -\newtoks\LT@p@ftn -\mathchardef\LT@end@pen=30000 -\def\longtable{% - \par - \ifx\multicols\@undefined - \else - \ifnum\col@number>\@ne - \@twocolumntrue - \fi - \fi - \if@twocolumn - \LT@err{longtable not in 1-column mode}\@ehc - \fi - \begingroup - \@ifnextchar[\LT@array{\LT@array[x]}} -\def\LT@array[#1]#2{% - \refstepcounter{table}\stepcounter{LT@tables}% - \if l#1% - \LTleft\z@ \LTright\fill - \else\if r#1% - \LTleft\fill \LTright\z@ - \else\if c#1% - \LTleft\fill \LTright\fill - \fi\fi\fi - \let\LT@mcol\multicolumn - \let\LT@@tabarray\@tabarray - \let\LT@@hl\hline - \def\@tabarray{% - \let\hline\LT@@hl - \LT@@tabarray}% - \let\\\LT@tabularcr\let\tabularnewline\\% - \def\newpage{\noalign{\break}}% - \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% - \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% - \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption - \@tempdima\ht\strutbox - \let\@endpbox\LT@endpbox - \ifx\extrarowheight\@undefined - \let\@acol\@tabacol - \let\@classz\@tabclassz \let\@classiv\@tabclassiv - \def\@startpbox{\vtop\LT@startpbox}% - \let\@@startpbox\@startpbox - \let\@@endpbox\@endpbox - \let\LT@LL@FM@cr\@tabularcr - \else - \advance\@tempdima\extrarowheight - \col@sep\tabcolsep - \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr - \fi - \setbox\@arstrutbox\hbox{\vrule - \@height \arraystretch \@tempdima - \@depth \arraystretch \dp \strutbox - \@width \z@}% - \let\@sharp##\let\protect\relax - \begingroup - \@mkpream{#2}% - \xdef\LT@bchunk{% - \global\advance\c@LT@chunks\@ne - \global\LT@rows\z@\setbox\z@\vbox\bgroup - \LT@setprevdepth - \tabskip\LTleft \noexpand\halign to\hsize\bgroup - \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% - \endgroup - \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols - \LT@make@row - \m@th\let\par\@empty - \everycr{}\lineskip\z@\baselineskip\z@ - \LT@bchunk} -\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} -\def\LT@start{% - \let\LT@start\endgraf - \endgraf\penalty\z@\vskip\LTpre - \dimen@\pagetotal - \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \ht\LT@foot - \dimen@ii\vfuzz - \vfuzz\maxdimen - \setbox\tw@\copy\z@ - \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox - \setbox\tw@\vbox{\unvbox\tw@}% - \vfuzz\dimen@ii - \advance\dimen@ \ht - \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@\dp - \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@ -\pagegoal - \ifdim \dimen@>\z@\vfil\break\fi - \global\@colroom\@colht - \ifvoid\LT@foot\else - \advance\vsize-\ht\LT@foot - \global\advance\@colroom-\ht\LT@foot - \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ - \maxdepth\z@ - \fi - \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak - \output{\LT@output}} -\def\endlongtable{% - \crcr - \noalign{% - \let\LT@entry\LT@entry@chop - \xdef\LT@save@row{\LT@save@row}}% - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \if@filesw - {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% - \gdef\expandafter\noexpand - \csname LT@\romannumeral\c@LT@tables\endcsname - {\LT@save@row}}}% - \fi - \ifx\LT@save@row\LT@@save@row - \else - \LT@warn{Column \@width s have changed\MessageBreak - in table \thetable}% - \LT@final@warn - \fi - \endgraf\penalty -\LT@end@pen - \endgroup - \global\@mparbottom\z@ - \pagegoal\vsize - \endgraf\penalty\z@\addvspace\LTpost - \ifvoid\footins\else\insert\footins{}\fi} -\def\LT@nofcols#1&{% - \futurelet\@let@token\LT@n@fcols} -\def\LT@n@fcols{% - \advance\LT@cols\@ne - \ifx\@let@token\LT@nofcols - \expandafter\@gobble - \else - \expandafter\LT@nofcols - \fi} -\def\LT@tabularcr{% - \relax\iffalse{\fi\ifnum0=`}\fi - \@ifstar - {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr - \LT@t@bularcr}% - {\LT@t@bularcr}} -\let\LT@crcr\crcr -\let\LT@setprevdepth\relax -\def\LT@t@bularcr{% - \global\advance\LT@rows\@ne - \ifnum\LT@rows=\LTchunksize - \gdef\LT@setprevdepth{% - \prevdepth\z@\global - \global\let\LT@setprevdepth\relax}% - \expandafter\LT@xtabularcr - \else - \ifnum0=`{}\fi - \expandafter\LT@LL@FM@cr - \fi} -\def\LT@xtabularcr{% - \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} -\def\LT@ntabularcr{% - \ifnum0=`{}\fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@argtabularcr[#1]{% - \ifnum0=`{}\fi - \ifdim #1>\z@ - \unskip\@xargarraycr{#1}% - \else - \@yargarraycr{#1}% - \fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@echunk{% - \crcr\LT@save@row\cr\egroup - \global\setbox\@ne\lastbox - \unskip - \egroup} -\def\LT@entry#1#2{% - \ifhmode\@firstofone{&}\fi\omit - \ifnum#1=\c@LT@chunks - \else - \kern#2\relax - \fi} -\def\LT@entry@chop#1#2{% - \noexpand\LT@entry - {\ifnum#1>\c@LT@chunks - 1}{0pt% - \else - #1}{#2% - \fi}} -\def\LT@entry@write{% - \noexpand\LT@entry^^J% - \@spaces} -\def\LT@kill{% - \LT@echunk - \LT@get@widths - \expandafter\LT@rebox\LT@bchunk} -\def\LT@rebox#1\bgroup{% - #1\bgroup - \unvbox\z@ - \unskip - \setbox\z@\lastbox} -\def\LT@blank@row{% - \xdef\LT@save@row{\expandafter\LT@build@blank - \romannumeral\number\LT@cols 001 }} -\def\LT@build@blank#1{% - \if#1m% - \noexpand\LT@entry{1}{0pt}% - \expandafter\LT@build@blank - \fi} -\def\LT@make@row{% - \global\expandafter\let\expandafter\LT@save@row - \csname LT@\romannumeral\c@LT@tables\endcsname - \ifx\LT@save@row\relax - \LT@blank@row - \else - {\let\LT@entry\or - \if!% - \ifcase\expandafter\expandafter\expandafter\LT@cols - \expandafter\@gobble\LT@save@row - \or - \else - \relax - \fi - !% - \else - \aftergroup\LT@blank@row - \fi}% - \fi} -\let\setlongtables\relax -\def\LT@get@widths{% - \setbox\tw@\hbox{% - \unhbox\@ne - \let\LT@old@row\LT@save@row - \global\let\LT@save@row\@empty - \count@\LT@cols - \loop - \unskip - \setbox\tw@\lastbox - \ifhbox\tw@ - \LT@def@row - \advance\count@\m@ne - \repeat}% - \ifx\LT@@save@row\@undefined - \let\LT@@save@row\LT@save@row - \fi} -\def\LT@def@row{% - \let\LT@entry\or - \edef\@tempa{% - \ifcase\expandafter\count@\LT@old@row - \else - {1}{0pt}% - \fi}% - \let\LT@entry\relax - \xdef\LT@save@row{% - \LT@entry - \expandafter\LT@max@sel\@tempa - \LT@save@row}} -\def\LT@max@sel#1#2{% - {\ifdim#2=\wd\tw@ - #1% - \else - \number\c@LT@chunks - \fi}% - {\the\wd\tw@}} -\def\LT@hline{% - \noalign{\ifnum0=`}\fi - \penalty\@M - \futurelet\@let@token\LT@@hline} -\def\LT@@hline{% - \ifx\@let@token\hline - \global\let\@gtempa\@gobble - \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% - \else - \global\let\@gtempa\@empty - \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\LT@sep}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\penalty\@M}% - \@gtempa} -\def\LT@caption{% - \noalign\bgroup - \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} -\def\LT@c@ption#1[#2]#3{% - \LT@makecaption#1\fnum@table{#3}% - \def\@tempa{#2}% - \ifx\@tempa\@empty\else - {\let\\\space - \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% - \fi} -\def\LT@capti@n{% - \@ifstar - {\egroup\LT@c@ption\@gobble[]}% - {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} -\def\LT@makecaption#1#2#3{% - \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% - \sbox\@tempboxa{#1{#2: }#3}% - \ifdim\wd\@tempboxa>\hsize - #1{#2: }#3% - \else - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \endgraf\vskip\baselineskip}% - \hss}}} -\def\LT@output{% - \ifnum\outputpenalty <-\@Mi - \ifnum\outputpenalty > -\LT@end@pen - \LT@err{floats and marginpars not allowed in a longtable}\@ehc - \else - \setbox\z@\vbox{\unvbox\@cclv}% - \ifdim \ht\LT@lastfoot>\ht\LT@foot - \dimen@\pagegoal - \advance\dimen@-\ht\LT@lastfoot - \ifdim\dimen@<\ht\z@ - \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% - \@makecol - \@outputpage - \setbox\z@\vbox{\box\LT@head}% - \fi - \fi - \global\@colroom\@colht - \global\vsize\@colht - \vbox - {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% - \fi - \else - \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% - \@makecol - \@outputpage - \global\vsize\@colroom - \copy\LT@head\nobreak - \fi} -\def\LT@end@hd@ft#1{% - \LT@echunk - \ifx\LT@start\endgraf - \LT@err - {Longtable head or foot not at start of table}% - {Increase LTchunksize}% - \fi - \setbox#1\box\z@ - \LT@get@widths - \LT@bchunk} -\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} -\def\endhead{\LT@end@hd@ft\LT@head} -\def\endfoot{\LT@end@hd@ft\LT@foot} -\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} -\def\LT@startpbox#1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \vrule \@height \ht\@arstrutbox \@width \z@} -\def\LT@endpbox{% - \@finalstrut\@arstrutbox - \egroup - \the\LT@p@ftn - \global\LT@p@ftn{}% - \hfil} -\def\LT@p@ftntext#1{% - \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% - \global\LT@p@ftn\expandafter{\@tempa{#1}}}% - -\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} -\endinput -%% -%% End of file `longtable.sty'. diff --git a/latex/refman.tex b/latex/refman.tex deleted file mode 100644 index bc75e69..0000000 --- a/latex/refman.tex +++ /dev/null @@ -1,216 +0,0 @@ -\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book} - -%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package -\usepackage{ifthen} -\ifx\requestedLaTeXdate\undefined -\usepackage{array} -\else -\usepackage{array}[=2016-10-06] -\fi -%% -% Packages required by doxygen -\usepackage{fixltx2e} -\usepackage{doxygen} -\usepackage{graphicx} -\usepackage[utf8]{inputenc} -\usepackage{makeidx} -\PassOptionsToPackage{warn}{textcomp} -\usepackage{textcomp} -\usepackage[nointegrals]{wasysym} -\usepackage{ifxetex} - -% Font selection -\usepackage[T1]{fontenc} -\usepackage[scaled=.90]{helvet} -\usepackage{courier} -\renewcommand{\familydefault}{\sfdefault} -\usepackage{sectsty} -\allsectionsfont{% - \fontseries{bc}\selectfont% - \color{darkgray}% -} -\renewcommand{\DoxyLabelFont}{% - \fontseries{bc}\selectfont% - \color{darkgray}% -} -\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} - -% Arguments of doxygenemoji: -% 1) '::' form of the emoji, already "LaTeX"-escaped -% 2) file with the name of the emoji without the .png extension -% in case image exist use this otherwise use the '::' form -\newcommand{\doxygenemoji}[2]{% - \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% -} -% Page & text layout -\usepackage{geometry} -\geometry{% - a4paper,% - top=2.5cm,% - bottom=2.5cm,% - left=2.5cm,% - right=2.5cm% -} -\tolerance=750 -\hfuzz=15pt -\hbadness=750 -\setlength{\emergencystretch}{15pt} -\setlength{\parindent}{0cm} -\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} -\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} -\doxynormalparskip -\makeatletter -\renewcommand{\paragraph}{% - \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@parafont% - }% -} -\renewcommand{\subparagraph}{% - \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@subparafont% - }% -} -\makeatother - -\makeatletter -\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} -\makeatother - -% Headers & footers -\usepackage{fancyhdr} -\pagestyle{fancyplain} -\renewcommand{\footrulewidth}{0.4pt} -% -\fancypagestyle{fancyplain}{ -\fancyhf{} -\fancyhead[LE, RO]{\bfseries\thepage} -\fancyhead[LO]{\bfseries\rightmark} -\fancyhead[RE]{\bfseries\leftmark} -\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } -} -% -\fancypagestyle{plain}{ -\fancyhf{} -\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } -\renewcommand{\headrulewidth}{0pt}} -% -\pagestyle{fancyplain} -% -\renewcommand{\chaptermark}[1]{% - \markboth{#1}{}% -} -\renewcommand{\sectionmark}[1]{% - \markright{\thesection\ #1}% -} - -% Indices & bibliography -\usepackage{natbib} -\usepackage[titles]{tocloft} -\setcounter{tocdepth}{3} -\setcounter{secnumdepth}{5} -\makeindex - -\usepackage{newunicodechar} - \newunicodechar{⁻}{${}^{-}$}% Superscript minus - \newunicodechar{²}{${}^{2}$}% Superscript two - \newunicodechar{³}{${}^{3}$}% Superscript three - -% Hyperlinks (required, but should be loaded last) -\ifpdf - \usepackage[pdftex,pagebackref=true]{hyperref} -\else - \ifxetex - \usepackage[pagebackref=true]{hyperref} - \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} - \fi -\fi - -\hypersetup{% - colorlinks=true,% - linkcolor=blue,% - citecolor=blue,% - unicode% -} - -% Custom commands -\newcommand{\clearemptydoublepage}{% - \newpage{\pagestyle{empty}\cleardoublepage}% -} - -\usepackage{caption} -\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} - -\usepackage{etoc} -\etocsettocstyle{\doxytocparskip}{\doxynormalparskip} -\renewcommand{\numberline}[1]{#1~} -%===== C O N T E N T S ===== - -\begin{document} -\raggedbottom - -% Titlepage & ToC -\hypersetup{pageanchor=false, - bookmarksnumbered=true, - pdfencoding=unicode - } -\pagenumbering{alph} -\begin{titlepage} -\vspace*{7cm} -\begin{center}% -{\Large My Project }\\ -\vspace*{1cm} -{\large Generated by Doxygen 1.9.1}\\ -\end{center} -\end{titlepage} -\clearemptydoublepage -\pagenumbering{roman} -\tableofcontents -\clearemptydoublepage -\pagenumbering{arabic} -\hypersetup{pageanchor=true} - -%--- Begin generated contents --- -\chapter{Hierarchical Index} -\input{hierarchy} -\chapter{Class Index} -\input{annotated} -\chapter{Class Documentation} -\input{classcore_1_1Command} -\input{classcore_1_1CommandList} -\input{classcore_1_1ConsoleServer} -\input{classcore_1_1ConsoleSession} -\input{classcore_1_1EPoll} -\input{classcore_1_1INotify} -\input{classcore_1_1IPAddress} -\input{classcore_1_1IPAddressList} -\input{classcore_1_1Object} -\input{classcore_1_1SessionFilter} -\input{classcore_1_1Socket} -\input{classcore_1_1Subscription} -\input{classcore_1_1SubscriptionHandler} -\input{classcore_1_1SubscriptionHandlerFactory} -\input{classcore_1_1SubscriptionManager} -\input{classcore_1_1TCPServer} -\input{classcore_1_1TCPSession} -\input{classcore_1_1TCPSession2} -\input{classcore_1_1TCPSocket} -\input{classcore_1_1TerminalSession} -\input{classcore_1_1Thread} -\input{classcore_1_1ThreadScope} -\input{classcore_1_1Timer} -\input{classcore_1_1TLSServer} -\input{classcore_1_1TLSSession} -\input{classcore_1_1UDPServerSocket} -\input{classcore_1_1UDPSocket} -%--- End generated contents --- - -% Index -\backmatter -\newpage -\phantomsection -\clearemptydoublepage -\addcontentsline{toc}{chapter}{\indexname} -\printindex - -\end{document} diff --git a/latex/tabu_doxygen.sty b/latex/tabu_doxygen.sty deleted file mode 100644 index 60fd7e8..0000000 --- a/latex/tabu_doxygen.sty +++ /dev/null @@ -1,2557 +0,0 @@ -%% -%% This is file `tabu.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tabu.dtx (with options: `package') -%% -%% This is a generated file. -%% Copyright (FC) 2010-2011 - lppl -%% -%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars -%% -%% ********************************************************************************************** -%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal -%% \begin{tabu} to { preamble } => target specified -%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' -%% -%% tabu works in text and in math modes. -%% -%% X columns: automatic width adjustment + horizontal and vertical alignment -%% \begin{tabu} { X[4c] X[1c] X[-2ml] } -%% -%% Horizontal lines and / or leaders: -%% \hline\hline => double horizontal line -%% \firsthline\hline => for nested tabulars -%% \lasthline\hline => for nested tabulars -%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) -%% Automatic lines / leaders : -%% \everyrow{\hline\hline} -%% -%% Vertical lines and / or leaders: -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } -%% -%% Fixed vertical spacing adjustment: -%% \extrarowheight= \extrarowdepth= -%% or: \extrarowsep= => may be prefixed by \global -%% -%% Dynamic vertical spacing adjustment: -%% \abovetabulinesep= \belowtabulinesep= -%% or: \tabulinesep= => may be prefixed by \global -%% -%% delarray.sty shortcuts: in math and text modes -%% \begin{tabu} .... \({ preamble }\) -%% -%% Algorithms reports: -%% \tracingtabu=1 \tracingtabu=2 -%% -%% ********************************************************************************************** -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% -%% This work consists of the main source file tabu.dtx -%% and the derived files -%% tabu.sty, tabu.pdf, tabu.ins -%% -%% tabu : Flexible LaTeX tabulars -%% lppl copyright 2010-2011 by FC -%% - -\NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] -\RequirePackage{array}[2008/09/09] -\RequirePackage{varwidth}[2009/03/30] -\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} -\let\tabu@AtEnd\@empty -\def\TMP@EnsureCode#1={% - \edef\tabu@AtEnd{\tabu@AtEnd - \catcode#1 \the\catcode#1}% - \catcode#1=% -}% \TMP@EnsureCode -\TMP@EnsureCode 33 = 12 % ! -\TMP@EnsureCode 58 = 12 % : (for siunitx) -\TMP@EnsureCode124 = 12 % | -\TMP@EnsureCode 36 = 3 % $ = math shift -\TMP@EnsureCode 38 = 4 % & = tab alignment character -\TMP@EnsureCode 32 = 10 % space -\TMP@EnsureCode 94 = 7 % ^ -\TMP@EnsureCode 95 = 8 % _ -%% Constants -------------------------------------------------------- -\newcount \c@taburow \def\thetaburow {\number\c@taburow} -\newcount \tabu@nbcols -\newcount \tabu@cnt -\newcount \tabu@Xcol -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcount \tabu@alloc \tabu@alloc=\m@ne -\newcount \tabu@nested -\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} -\newdimen \tabu@target -\newdimen \tabu@spreadtarget -\newdimen \tabu@naturalX -\newdimen \tabucolX -\let\tabu@DELTA \@tempdimc -\let\tabu@thick \@tempdima -\let\tabu@on \@tempdimb -\let\tabu@off \@tempdimc -\newdimen \tabu@Xsum -\newdimen \extrarowdepth -\newdimen \abovetabulinesep -\newdimen \belowtabulinesep -\newdimen \tabustrutrule \tabustrutrule \z@ -\newtoks \tabu@thebody -\newtoks \tabu@footnotes -\newsavebox \tabu@box -\newsavebox \tabu@arstrutbox -\newsavebox \tabu@hleads -\newsavebox \tabu@vleads -\newif \iftabu@colortbl -\newif \iftabu@siunitx -\newif \iftabu@measuring -\newif \iftabu@spread -\newif \iftabu@negcoef -\newif \iftabu@everyrow -\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} -\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} -\newif \iftabu@long -\newif \iftabuscantokens -\def\tabu@rescan {\tabu@verbatim \scantokens } -%% Utilities (for internal usage) ----------------------------------- -\def\tabu@gobblespace #1 {#1} -\def\tabu@gobbletoken #1#2{#1} -\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} -\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble - \else\ifx \@sptoken\@let@token - \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX - \fi\fi -}% \tabu@gobblex -\def\tabu@X{^^J} -{\obeyspaces -\global\let\tabu@spxiii= % saves an active space (for \ifx) -\gdef\tabu@@spxiii{ }} -\def\tabu@ifenvir {% only for \multicolumn - \expandafter\tabu@if@nvir\csname\@currenvir\endcsname -}% \tabu@ifenvir -\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else - \ifx\longtabu#1first\else - second\fi\fi oftwo\endcsname -}% \tabu@ifenvir -\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} -{\catcode`\&=3 -\gdef\tabu@strtrim #1{% #1 = control sequence to trim - \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi - \let\tabu@c@l@r \@empty \let#1\@empty - \else \expandafter \tabu@trimspaces #1\@nnil - \fi -}% \tabu@strtrim -\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% -\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} -\gdef\tabu@lastspace #1{\def #3{#1}% - \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi - \tabu@trimspaces #1\@nnil} -}% \catcode -\def\tabu@sanitizearg #1#2{{% - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% - \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% -}% \tabu@sanitizearg -\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% - \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! -}% \tabu@textbar -\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} -\def\tabu@everyrow@egroup{% - \iftabu@everyrow \expandafter \endgroup \the\toks@ - \else \ifnum0=`{\fi}% - \fi -}% \tabu@everyrow@egroup -\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \z@}% -}% \tabu@arstrut -\def\tabu@rearstrut {% - \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax - \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax - \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima - \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi - \tabu@mkarstrut - \fi -}% \tabu@rearstrut -\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} -\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox - \hbox to\z@{\hbox to\z@{\hss - {\tabu@DBG{cyan}\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \z@ - width \tabustrutrule}\kern-\tabustrutrule - {\tabu@DBG{pink}\vrule - height \z@ - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \tabustrutrule}}}% -}% \tabu@DBG@arstrut -\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ - \@nextchar}}% -\def\tabu@savedecl{\ifcat$\d@llarend\else - \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode -}% \tabu@savedecl -\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} -\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } -\let\tabu@trialh@@k \@empty -\def\tabu@nowrite #1#{{\afterassignment}\toks@} -\let\tabu@write\write -\let\tabu@immediate\immediate -\def\tabu@WRITE{\begingroup - \def\immediate\write{\aftergroup\endgroup - \tabu@immediate\tabu@write}% -}% \tabu@WRITE -\expandafter\def\expandafter\tabu@GenericError\expandafter{% - \expandafter\tabu@WRITE\GenericError} -\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} -\def\tabu@noxfootnote [#1]{\@gobble} -\def\tabu@nocolor #1#{\@gobble} -\newcommand*\tabu@norowcolor[2][]{} -\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% - \futurelet\@let@token \tabu@m@ybesiunitx} -\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% - \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi - \tabu@temp}% \tabu@m@ybesiunitx -}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname -\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% -%% Fixed vertical spacing adjustment: \extrarowsep ------------------ -\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% - \iftabu@everyrow \aftergroup\tabu@Gextra - \else \aftergroup\tabu@n@Gextra - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra -}% \extrarowsep -\def\tabu@extra {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setextrasep \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extra -\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} -\def\tabu@extr@ #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extr@ -\def\tabu@setextrasep {\extrarowheight=\extrarowdepth - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth -}% \tabu@setextrasep -\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} -\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} -\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} -\let\tabu@C@extra \z@ -\let\tabu@G@extra \@empty -%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- -\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% - \iftabu@everyrow \aftergroup\tabu@Glinesep - \else \aftergroup\tabu@n@Glinesep - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep -}% \tabulinesep -\def\tabu@linesep {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setlinesep \abovetabulinesep - \fi \tabu@temp}% -}% \tabu@linesep -\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} -\def\tabu@sets@p #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep - \fi \tabu@temp}% -}% \tabu@sets@p -\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep -}% \tabu@setlinesep -\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} -\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} -\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} -\let\tabu@C@linesep \z@ -\let\tabu@G@linesep \@empty -%% \global\extrarowsep and \global\tabulinesep ------------------- -\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% - \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% -}% \tabu@Gsave -\def\tabu@Grestore#1#2{% - \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax - \ifcat$\the\toks\currentgrouplevel$\else - \global\let#1\@empty \global\let#2\z@ - \the\toks\currentgrouplevel - \fi -}% \tabu@Grestore -%% Setting code for every row --------------------------------------- -\newcommand*\everyrow{\tabu@everyrow@bgroup - \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop -}% \everyrow -\def\tabu@evrstartstop {\@ifnextchar^% - {\afterassignment \tabu@evrstartstop \tabu@stop=}% - {\ifx ^\@let@token - \afterassignment\tabu@evrstartstop \tabu@start=% - \else \afterassignment\tabu@everyr@w \toks@ - \fi}% -}% \tabu@evrstartstop -\def\tabu@everyr@w {% - \xdef\tabu@everyrow{% - \noexpand\tabu@everyrowfalse - \let\noalign \relax - \noexpand\tabu@rowfontreset - \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors - \let\noexpand\tabu@docline \noexpand\tabu@docline@evr - \the\toks@ - \noexpand\tabu@evrh@@k - \noexpand\tabu@rearstrut - \global\advance\c@taburow \@ne}% - \iftabu@everyrow \toks@\expandafter - {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% - \else \xdef\tabu@evr@G{\the\toks@}% - \fi - \tabu@everyrow@egroup -}% \tabu@everyr@w -\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only -\tabu@evr{} -%% line style and leaders ------------------------------------------- -\newcommand*\newtabulinestyle [1]{% - {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% -}% \newtabulinestyle -\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% - \tabu@sanitizearg {#1}\@tempa - \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi - \global\expandafter\let - \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi -}% \tabu@newlinestyle -\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% - \iftabu@everyrow - \toks@\expandafter{\expandafter \def \expandafter - \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% - \gdef\tabu@ls@{\tabu@ls@L}% - \else - \global\let\tabu@ls@G \tabu@thestyle - \gdef\tabu@ls@{\tabu@ls@G}% - \fi - \tabu@everyrow@egroup -}% \tabulinestyle -\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} -\def\tabu@rulecolor #1{\toks@{}% - \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% - \tabu@temp - \tabu@rulearc -}% \tabu@rulecolor -\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp - \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% - \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% - \fi - \tabu@temp -}% \tabu@ruledrsc@ -\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} -\def\tabu@rule@drsc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% - \else \toks@{\def\CT@drsc@{\color #1{#2}}}% - \fi - \else - \ifx \\#1#2\\\global\let\CT@drsc@ \relax - \else \gdef\CT@drsc@{\color #1{#2}}% - \fi - \fi - \tabu@rulearc -}% \tabu@rule@drsc@ -\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} -\def\tabu@rule@arc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% - \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% - \fi - \toks@\expandafter{\the\toks@ - \let\tabu@arc@L \CT@arc@ - \let\tabu@drsc@L \CT@drsc@ - \ignorespaces}% - \else - \ifx \\#1#2\\\gdef\CT@arc@{}% - \else \gdef\CT@arc@{\color #1{#2}}% - \fi - \global\let\tabu@arc@G \CT@arc@ - \global\let\tabu@drsc@G \CT@drsc@ - \fi - \tabu@everyrow@egroup -}% \tabu@rule@arc@ -\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} -\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} -\def\tabu@rowc@lors #1#2#3{% - \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil - \@defaultunits \tabu@start =\number0#1\relax \@nnil - \ifnum \count@<\tw@ \count@=\tw@ \fi - \advance\tabu@start \m@ne - \ifnum \tabu@start<\z@ \tabu@start \z@ \fi - \tabu@rowcolorseries #3\in@..\in@ \@nnil -}% \tabu@rowcolors -\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% - \ifx \in@#1\relax - \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% - \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ - \fi - \else - \ifx \\#2\\\tabu@rowcolorserieserror \fi - \tabu@sanitizearg{#1}\tabu@temp - \tabu@sanitizearg{#2}\@tempa - \advance\count@ \m@ne - \iftabu@everyrow - \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% - \ifnum ##2=\c@taburow - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi - \ifnum \c@taburow<##2 \else - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}\fi}% - }\edef\x{\noexpand\tabu@rc@ {\the\count@} - {\the\tabu@start} - {\tabu@temp} - {\@tempa}% - }\x - \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% - \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% - \else % inside \noalign - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% - \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% - \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}}% - }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x - \global\let\tabu@rc@G \tabu@rc@ - \fi - \fi - \tabu@everyrow@egroup -}% \tabu@rowcolorseries -\tabuDisableCommands {\let\tabu@rc@ \@empty } -\def\tabu@rowcolorserieserror {\PackageError{tabu} - {Invalid syntax for \string\taburowcolors - \MessageBreak Please look at the documentation!}\@ehd -}% \tabu@rowcolorserieserror -\newcommand*\tabureset {% - \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ - \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% -}% \tabureset -%% Parsing the line styles ------------------------------------------ -\def\tabu@getline #1{\begingroup - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa - \let\tabu@thestyle \relax - \ifcsname tabu@linestyle@\@tempa \endcsname - \edef\tabu@thestyle{\endgroup - \def\tabu@thestyle{\expandafter\noexpand - \csname tabu@linestyle@\@tempa\endcsname}% - }\tabu@thestyle - \else \expandafter\tabu@definestyle \tabu@temp \@nil - \fi -}% \tabu@getline -\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter - \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen - \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined - \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs - \def\tabu@temp{\tabu@getparam{thick}}% - \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% - \fi - {% - \let\tabu@ \relax - \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) - \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% - \expandafter}\expandafter - \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) - \def\;{\def\:}% - \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) - \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) - \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi - \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi - \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi - \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen - \tabu@on \tabulineon \fi\fi - \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen - \tabu@off \tabulineoff \fi\fi - \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi - \in@true % - \else \in@false % - \fi - \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% - \else \edef\tabu@thick{\the\tabu@thick}% - \fi - \edef \tabu@thestyle ##1##2{\endgroup - \def\tabu@thestyle{% - \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} - {\the\tabu@on}{##1} - {\the\tabu@off}{##2}% - \else \noexpand\tabu@rulesstyle - {##1\vrule width \tabu@thick}% - {##1\leaders \hrule height \tabu@thick \hfil}% - \fi}% - }\expandafter \expandafter - \expandafter \tabu@thestyle \expandafter - \expandafter \expandafter - {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% -}% \tabu@definestyle -{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active - \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} - \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} -}% \catcode -\def\tabu@oxiii #1{% - \ifcase \ifx n#1\z@ \else - \ifx f#1\@ne\else - \tw@ \fi\fi - \expandafter\tabu@onxiii - \or \expandafter\tabu@ofxiii - \else o% - \fi#1}% -\def\tabu@onxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx \tabu@spxiii#2\@ne\else - \tw@ \fi\fi\fi - \tabu@getparam{on}#2\expandafter\@gobble - \or \expandafter\tabu@onxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}}% -\def\tabu@ofxiii #1#2{% - \ifx #2f\expandafter\tabu@offxiii - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@offxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx\tabu@spxiii#2\@ne \else - \tw@ \fi\fi\fi - \tabu@getparam{off}#2\expandafter\@gobble - \or \expandafter\tabu@offxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} -\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef - \ifx \tabu@#1\else % no more spec - \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi -}% \tabu@getcolor -\def\tabu@getc@l@r #1\tabu@ {% - \def\tabu@temp{#1}\tabu@strtrim \tabu@temp - \ifx \tabu@temp\@empty - \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists - \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r - \else \let\tabu@c@lon \tabu@c@l@r - \fi - %\else \tabu@warncolour{\tabu@temp}% - \fi%\fi - \tabu@ % next spec -}% \tabu@getc@l@r -\def\tabu@warncolour #1{\PackageWarning{tabu} - {Color #1 is not defined. Default color used}% -}% \tabu@warncolour -\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% - \ifx \tabu@leaders\tabu@leaders@G \else - \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi -}% \tabu@leadersstyle -\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined - \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% -}% \tabu@rulesstyle -%% The leaders boxes ------------------------------------------------ -\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color - {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor - {% % but the leaders boxes should have colors ! - \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% - \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% - \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thehleaders \tabu@theleaders - }% - {% - \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% - \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% - \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thevleaders \tabu@theleaders - }% - \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% - }% -}% \tabu@LEADERS -\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} -\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color - \global\setbox \tabu@leads=\@box{% - {#3\tabu@therule{#1}{#2}}% - \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi - {#3\tabu@therule{#1}{#2}}}% - \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss - {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% - \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% - {##1\tabu@therule{#1}{#2}}% - \xleaders \copy\tabu@leads \@ss - \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% - }\tabu@theleaders{#3}% -}% \tabu@l@@d@rs -%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- -\newcommand*\tabu {\tabu@longfalse - \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% - \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endtabu*\endcsname{\endtabu}% - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {tabu} -\let\tabu@tabular \tabular % -\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} -\newcommand*\longtabu {\tabu@longtrue - \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi - \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% - \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% - \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {longtabu} -\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} -\def\tabu@nolongtabu{\PackageError{tabu} - {longtabu requires the longtable package}\@ehd} -%% Read the target and then : \tabular or \@array ------------------ -\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } -\def\tabu@sett@rget {\tabu@target \z@ - \ifcase \ifx \bgroup\@let@token \z@ \else - \ifx \@sptoken\@let@token \@ne \else - \if t\@let@token \tw@ \else - \if s\@let@token \thr@@\else - \z@\fi\fi\fi\fi - \expandafter\tabu@begin - \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget - \or \expandafter\tabu@to - \or \expandafter\tabu@spread - \fi -}% \tabu@sett@rget -\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} -\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} -\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } -\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } -\def\tabu@linegoalt@rget {% - \ifx \tabu@temp\LNGL@setlinegoal - \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal - \tabu@begin -}% \tabu@linegoalt@rget -\def\tabu@begin #1#{% - \iftabu@measuring \expandafter\tabu@nestedmeasure \fi - \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty - \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% - \fi - \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil -}% \tabu@begin -\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup - \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% - \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% -}% \tabu@tabu@ -\def\tabu@nestedmeasure {% - \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax - \tabu@spreadtrue - \else \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}% - \expandafter\tabu@collectbody\expandafter\tabu@quickrule - \expandafter\endgroup - \fi -}% \tabu@nestedmeasure -\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} -%% \tabu@setup \tabu@init \tabu@indent -\def\tabu@setup{\tabu@alloc@ - \ifcase \tabu@nested - \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ - \let\tabu@afterendpar \par - \fi\fi\fi - \def\tabu@aligndefault{c}\tabu@init \tabu@indent - \else % - \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth - \fi - \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined - \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% - \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... - \let\@endpbox \tabu@endpbox % idem " " " " " " - \let\@tabarray \tabu@tabarray % idem " " " " " " - \tabu@setcleanup \tabu@setreset -}% \tabu@setup -\def\tabu@init{\tabu@starttimer \tabu@measuringfalse - \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% - \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline - \let\firstline \tabu@firstline \let\lastline \tabu@lastline - \let\hline \tabu@hline \let\@xhline \tabu@xhline - \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox - \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi - \tabu@trivlist % - \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext - \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering - \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft - \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering - \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft - \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont - \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x - \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar - \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok - \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn - \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! - \let\tabu@endpbox \@endpbox % idem " " " " " " " - \let\tabu@tabarray \@tabarray % idem " " " " " " " - \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) - \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi -}% \tabu@init -\def\tabu@indent{% correction for indentation - \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget - \everypar\expandafter{% - \the\everypar\everypar\expandafter{\the\everypar}% - \setbox\z@=\lastbox - \ifdim\wd\z@>\z@ \edef\tabu@thetarget - {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi - \box\z@}% - \fi\fi -}% \tabu@indent -\def\tabu@setcleanup {% saves last global assignments - \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax - \def\tabu@aftergroupcleanup{% - \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% - \else - \def\tabu@aftergroupcleanup{% - \aftergroup\aftergroup\aftergroup\tabu@cleanup - \let\tabu@aftergroupcleanup \relax}% - \fi - \let\tabu@arc@Gsave \tabu@arc@G - \let\tabu@arc@G \tabu@arc@L % - \let\tabu@drsc@Gsave \tabu@drsc@G - \let\tabu@drsc@G \tabu@drsc@L % - \let\tabu@ls@Gsave \tabu@ls@G - \let\tabu@ls@G \tabu@ls@L % - \let\tabu@rc@Gsave \tabu@rc@G - \let\tabu@rc@G \tabu@rc@L % - \let\tabu@evr@Gsave \tabu@evr@G - \let\tabu@evr@G \tabu@evr@L % - \let\tabu@celllalign@save \tabu@celllalign - \let\tabu@cellralign@save \tabu@cellralign - \let\tabu@cellleft@save \tabu@cellleft - \let\tabu@cellright@save \tabu@cellright - \let\tabu@@celllalign@save \tabu@@celllalign - \let\tabu@@cellralign@save \tabu@@cellralign - \let\tabu@@cellleft@save \tabu@@cellleft - \let\tabu@@cellright@save \tabu@@cellright - \let\tabu@rowfontreset@save \tabu@rowfontreset - \let\tabu@@rowfontreset@save\tabu@@rowfontreset - \let\tabu@rowfontreset \@empty - \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset - \edef\c@taburow@save {\the\c@taburow}% - \edef\tabu@naturalX@save {\the\tabu@naturalX}% - \let\tabu@naturalXmin@save \tabu@naturalXmin - \let\tabu@naturalXmax@save \tabu@naturalXmax - \let\tabu@mkarstrut@save \tabu@mkarstrut - \edef\tabu@clarstrut{% - \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax - \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax - \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% -}% \tabu@setcleanup -\def\tabu@cleanup {\begingroup - \globaldefs\@ne \tabu@everyrowtrue - \let\tabu@arc@G \tabu@arc@Gsave - \let\CT@arc@ \tabu@arc@G - \let\tabu@drsc@G \tabu@drsc@Gsave - \let\CT@drsc@ \tabu@drsc@G - \let\tabu@ls@G \tabu@ls@Gsave - \let\tabu@ls@ \tabu@ls@G - \let\tabu@rc@G \tabu@rc@Gsave - \let\tabu@rc@ \tabu@rc@G - \let\CT@do@color \relax - \let\tabu@evr@G \tabu@evr@Gsave - \let\tabu@celllalign \tabu@celllalign@save - \let\tabu@cellralign \tabu@cellralign@save - \let\tabu@cellleft \tabu@cellleft@save - \let\tabu@cellright \tabu@cellright@save - \let\tabu@@celllalign \tabu@@celllalign@save - \let\tabu@@cellralign \tabu@@cellralign@save - \let\tabu@@cellleft \tabu@@cellleft@save - \let\tabu@@cellright \tabu@@cellright@save - \let\tabu@rowfontreset \tabu@rowfontreset@save - \let\tabu@@rowfontreset \tabu@@rowfontreset@save - \tabu@naturalX =\tabu@naturalX@save - \let\tabu@naturalXmax \tabu@naturalXmax@save - \let\tabu@naturalXmin \tabu@naturalXmin@save - \let\tabu@mkarstrut \tabu@mkarstrut@save - \c@taburow =\c@taburow@save - \ifcase \tabu@nested \tabu@alloc \m@ne\fi - \endgroup % - \ifcase \tabu@nested - \the\tabu@footnotes \global\tabu@footnotes{}% - \tabu@afterendpar \tabu@elapsedtime - \fi - \tabu@clarstrut - \everyrow\expandafter {\tabu@evr@G}% -}% \tabu@cleanup -\let\tabu@afterendpar \relax -\def\tabu@setreset {% - \edef\tabu@savedparams {% \relax for \tabu@message@save - \ifmmode \col@sep \the\arraycolsep - \else \col@sep \the\tabcolsep \fi \relax - \arrayrulewidth \the\arrayrulewidth \relax - \doublerulesep \the\doublerulesep \relax - \extratabsurround \the\extratabsurround \relax - \extrarowheight \the\extrarowheight \relax - \extrarowdepth \the\extrarowdepth \relax - \abovetabulinesep \the\abovetabulinesep \relax - \belowtabulinesep \the\belowtabulinesep \relax - \def\noexpand\arraystretch{\arraystretch}% - \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% - \begingroup - \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu - \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi - \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi - \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L - \expandafter \endgroup \expandafter - \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena - \let\tabu@arc@G \tabu@arc@L - \let\tabu@drsc@G \tabu@drsc@L - \let\tabu@ls@G \tabu@ls@L - \let\tabu@rc@G \tabu@rc@L - \let\tabu@evr@G \tabu@evr@L}% - \def\tabu@reset{\tabu@savedparams - \tabu@everyrowtrue \c@taburow \z@ - \let\CT@arc@ \tabu@arc@L - \let\CT@drsc@ \tabu@drsc@L - \let\tabu@ls@ \tabu@ls@L - \let\tabu@rc@ \tabu@rc@L - \global\tabu@alloc \tabu@alloc@save - \everyrow\expandafter{\tabu@evr@L}}% -}% \tabu@reset -\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} -\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} -%% The Rewriting Process ------------------------------------------- -\def\tabu@newcolumntype #1{% - \expandafter\tabu@new@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@newcolumntype -\def\tabu@new@columntype #1#2#3{% - \def#1##1#3{\NC@{##1}}% - \let#2\relax \newcommand*#2% -}% \tabu@new@columntype -\def\tabu@privatecolumntype #1{% - \expandafter\tabu@private@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\expandafter\endcsname - \csname tabu@NC@find@\string#1\expandafter\endcsname - \csname tabu@NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@privatecolumntype -\def\tabu@private@columntype#1#2#3#4{% - \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% - \tabu@new@columntype#3#4% -}% \tabu@private@columntype -\let\tabu@privatecolumns \@empty -\newcommand*\tabucolumn [1]{\expandafter \def \expandafter - \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns - \NC@do #1}}% -\let\tabu@highprioritycolumns \@empty -%% The | ``column'' : rewriting process -------------------------- -\tabu@privatecolumntype |{\tabu@rewritevline} -\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% - \expandafter \NC@find \tabu@rewritten} -\def\tabu@lines #1{% - \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi - \NC@list\expandafter{\the\NC@list \NC@do #1}% -}% \tabu@lines@ -\def\tabu@vlinearg #1{% - \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% - \else\tabu@getline {#1}% - \fi - \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% - }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% - \expandafter \tabu@keepls \tabu@thestyle \@nil -}% \tabu@vlinearg -\def\tabu@keepls #1\@nil{% - \ifcat $\@cdr #1\@nil $% - \ifx \relax#1\else - \ifx \tabu@ls@#1\else - \let#1\relax - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@savels\noexpand#1}\fi\fi\fi -}% \tabu@keepls -\def\tabu@thevline {\begingroup - \ifdefined\tabu@leaders - \setbox\@tempboxa=\vtop to\dimexpr - \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% - \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox - \box\@tempboxa - \else - \tabu@thevrule - \fi \endgroup -}% \tabu@thevline -\def\tabu@savels #1{% - \expandafter\let\csname\string#1\endcsname #1% - \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset - \tabu@resetls#1}}% -\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% -%% \multicolumn inside tabu environment ----------------------------- -\tabu@newcolumntype \tabu@rewritemulticolumn{% - \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \tabu@savedecl - \tabu@privatecolumns - \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% - \let\tabu@savels \relax - \NC@find -}% \tabu@rewritemulticolumn -\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} -\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} -\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup - \tabu@everyrowtrue - \NC@list{\NC@do \tabu@rewritemulticolumn}% - \expandafter\@gobbletwo % gobbles \multispan{#1} - \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% - {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi - {#3}}% -}% \tabu@multic@lumn -%% The X column(s): rewriting process ----------------------------- -\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} -\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } -\def\tabu@siunitx #1{\@ifnextchar \bgroup - {\tabu@rewriteX@Ss{#1}} - {\tabu@nosiunitx{#1}}} -\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% - \@defaultunits \let\tabu@temp =#2\relax\@nnil - \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi - \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% - }\expandafter\NC@find \the\@temptokena \relax - }\expandafter\NC@rewrite@S \@gobble #2\relax - \else \tabu@siunitxerror - \fi - \expandafter \NC@find \tabu@rewritten -}% \tabu@rewriteX@Ss -\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! - \MessageBreak X column can only embed siunitx S or s columns}\@ehd -}% \tabu@siunitxerror -\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% - \iftabu@measuring - \else \tabu@measuringtrue % first X column found in the preamble - \let\@halignto \relax \let\tabu@halignto \relax - \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ - \else \tabu@spreadtarget \z@ \fi - \ifdim \tabu@target=\z@ - \setlength\tabu@target \tabu@thetarget - \tabu@message{\tabu@message@defaulttarget}% - \else \tabu@message{\tabu@message@target}\fi - \fi -}% \tabu@rewriteX -\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax - \def\tabu@rewritten{l}} -\def\tabu@Xarg #1#2#3{% - \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty - \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty - \ifx\\#1\\% - \def\tabu@rewritten{p}\tabucolX \p@ % - \else - \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ - \tabu@Xparse {}#1\relax - \fi - \tabu@Xrewritten{#2}{#3}% -}% \tabu@Xarg -\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} -\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} -\def\tabu@Xtest{% - \ifcase \ifx \relax\@let@token \z@ \else - \if ,\@let@token \m@ne\else - \if p\@let@token 1\else - \if m\@let@token 2\else - \if b\@let@token 3\else - \if l\@let@token 4\else - \if c\@let@token 5\else - \if r\@let@token 6\else - \if j\@let@token 7\else - \if L\@let@token 8\else - \if C\@let@token 9\else - \if R\@let@token 10\else - \if J\@let@token 11\else - \ifx \@sptoken\@let@token 12\else - \if .\@let@token 13\else - \if -\@let@token 13\else - \ifcat $\@let@token 14\else - 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \or \tabu@Xtype {p}% - \or \tabu@Xtype {m}% - \or \tabu@Xtype {b}% - \or \tabu@Xalign \raggedright\relax - \or \tabu@Xalign \centering\relax - \or \tabu@Xalign \raggedleft\relax - \or \tabu@Xalign \tabu@justify\relax - \or \tabu@Xalign \RaggedRight\raggedright - \or \tabu@Xalign \Centering\centering - \or \tabu@Xalign \RaggedLeft\raggedleft - \or \tabu@Xalign \justifying\tabu@justify - \or \expandafter \tabu@Xparsespace - \or \expandafter \tabu@Xcoef - \or \expandafter \tabu@Xm@th - \or \tabu@Xcoef{}% - \else\expandafter \tabu@Xparse - \fi -}% \tabu@Xtest -\def\tabu@Xalign #1#2{% - \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} - {Duplicate horizontal alignment specification}\fi - \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax - \else \def\tabu@Xlcr{#2}\let#2\relax\fi - \expandafter\tabu@Xparse -}% \tabu@Xalign -\def\tabu@Xtype #1{% - \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} - {Duplicate vertical alignment specification}\fi - \def\tabu@rewritten{#1}\expandafter\tabu@Xparse -}% \tabu@Xtype -\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% - \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi -}% \tabu@Xcoef -\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ - \tabu@Xparse{}% -}% \tabu@Xc@ef -\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} -\def\tabu@Xd@sp{\let\tabu@Xmath=$% - \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% - \expandafter\tabu@Xparse - \else \expandafter\tabu@Xparse\expandafter{\expandafter}% - \fi -}% \tabu@Xd@sp -\def\tabu@Xrewritten {% - \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi - \ifdim \tabucolX<\z@ \tabu@negcoeftrue - \else\ifdim \tabucolX=\z@ \tabucolX \p@ - \fi\fi - \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% - \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% - \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% - >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% - \tabu@rewritten {\tabu@hsize \tabu@temp}% - <{##2\ifx$\tabu@Xmath$\fi}}% - }\tabu@rewritten -}% \tabu@Xrewritten -\def\tabu@hsize #1#2{% - \ifdim #2\p@<\z@ - \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else - \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi - \fi - \else #2\tabucolX - \fi -}% \tabu@hsize -%% \usetabu and \preamble: rewriting process --------------------- -\tabu@privatecolumntype \usetabu [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\let\tabu@rewriteX \tabu@rewriteXrestore - \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% - \fi -}% \NC@rewrite@\usetabu -\tabu@privatecolumntype \preamble [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% - \fi -}% \NC@rewrite@\preamble -%% Controlling the rewriting process ------------------------------- -\tabu@newcolumntype \tabu@rewritefirst{% - \iftabu@long \aftergroup \tabu@longpream % - \else \aftergroup \tabu@pream - \fi - \let\tabu@ \relax \let\tabu@hsize \relax - \let\tabu@Xcoefs \@empty \let\tabu@savels \relax - \tabu@Xcol \z@ \tabu@cnt \tw@ - \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse - \global\setbox\@arstrutbox \box\@arstrutbox - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \NC@list\expandafter{\the\NC@list \NC@do X}% - \iftabu@siunitx % - \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi - \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% - \expandafter\def\expandafter\tabu@NC@list\expandafter{% - \the\expandafter\NC@list \tabu@NC@list}% % * | X S - \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu - \expandafter \NC@do \expandafter\preamble - \the\NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \tabu@savedecl - \tabu@privatecolumns - \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle -}% NC@rewrite@\tabu@rewritefirst -\tabu@newcolumntype \tabu@rewritemiddle{% - \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast -}% \NC@rewrite@\tabu@rewritemiddle -\tabu@newcolumntype \tabu@rewritelast{% - \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne - \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \else \let\tabu@prev\tabu@temp - \fi - \ifcase \tabu@cnt \expandafter\tabu@endrewrite - \else \expandafter\NC@find \expandafter\tabu@rewritemiddle - \fi -}% \NC@rewrite@\tabu@rewritelast -%% Choosing the strategy -------------------------------------------- -\def\tabu@endrewrite {% - \let\tabu@temp \NC@find - \ifx \@arrayright\relax \let\@arrayright \@empty \fi - \count@=% - \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print - \iftabu@measuring - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@target \csname tabu@\the\tabu@nested.T\endcsname - \tabucolX \csname tabu@\the\tabu@nested.X\endcsname - \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% - \fi - \else\iftabu@measuring 4 % X columns - \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer - \tabu@target \the\tabu@target - \tabu@spreadtarget \the\tabu@spreadtarget}% - \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% - \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% - \let\tabu@Xcoefs \relax - \else\ifcase\tabu@nested \thr@@ % outer, no X - \global\let\tabu@afterendpar \relax - \else \@ne % inner, no X, outer in mode 1 or 2 - \fi - \ifdefined\tabu@usetabu - \else \ifdim\tabu@target=\z@ - \else \let\tabu@temp \tabu@extracolsep - \fi\fi - \fi - \fi - \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% - \tabu@temp -}% \tabu@endrewrite -\def\tabu@extracolsep{\@defaultunits \expandafter\let - \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil - \ifx \tabu@temp\@sptoken - \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep - \else - \edef\tabu@temp{\noexpand\NC@find - \if |\noexpand\tabu@temp @% - \else\if !\noexpand\tabu@temp @% - \else !% - \fi\fi - {\noexpand\extracolsep\noexpand\@flushglue}}% - \fi - \tabu@temp -}% \tabu@extrac@lsep -%% Implementing the strategy ---------------------------------------- -\long\def\tabu@pream #1\@preamble {% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\tabu@aftergroupcleanup}% - \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody - \@preamble}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@pream -\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@longpream -\def\tabu@select {% - \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi - \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi - \ifcase \count@ - \global\let\tabu@elapsedtime \relax - \tabu@seteverycr - \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) - \or % exit in vertical measure + struts per cell because no X and outer in mode 3 - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \tabu@seteverycr - \expandafter \tabuthepreamble - \or % exit without measure because no X and outer in mode 4 - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@seteverycr - \expandafter \tabuthepreamble - \else % needs trials - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@savecounters - \expandafter \tabu@setstrategy - \fi -}% \tabu@select -\def\tabu@@ {\gdef\tabu@mkpreambuffer} -%% Protections to set up before trials ------------------------------ -\def\tabu@setstrategy {\begingroup % - \tabu@trialh@@k \tabu@cnt \z@ % number of trials - \hbadness \@M \let\hbadness \@tempcnta - \hfuzz \maxdimen \let\hfuzz \@tempdima - \let\write \tabu@nowrite\let\GenericError \tabu@GenericError - \let\savetabu \@gobble \let\tabudefaulttarget \linewidth - \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote - \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor - \let\tabu@aftergroupcleanup \relax % only after the last trial - \tabu@mkpreambuffer - \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init - \def\tabu@lasttry{\m@ne\p@}\fi - \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % - \tabu@collectbody \tabu@strategy % -}% \tabu@setstrategy -\def\tabu@savecounters{% - \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% - \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax -}% \tabu@savecounters -\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) - \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs - \ifdim \dimen@>\z@ - \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \fi -}% \tabucolX@init -\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum - \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ - \else -#2\p@ \tabu@negcoeftrue - \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \tabu@wddef{#1}{0pt}% - \fi -}% \tabu@Xinit -%% Collecting the environment body ---------------------------------- -\long\def\tabu@collectbody #1#2\end #3{% - \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% - \ifx \tabu@stack\@empty - \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% - \def\tabu@end@envir{\end{#3}}% - \iftabuscantokens - \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir {\let\endarray \@empty - \end{#3}\tabu@gobbleX}% - \fi - \else \def\tabu@endenvir {\end{#3}}\fi}% - \let\tabu@collectbody \tabu@endofcollect - \else\def\tabu@temp{#3}% - \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% - \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% - \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% - \else \toks@\expandafter{\the\toks@ #2\end{#3}}% - \fi\fi\fi - \fi - \tabu@collectbody{#1}% -}% \tabu@collectbody -\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% -\def\tabu@endofcollect #1{\ifnum0=`{}\fi - \expandafter\endgroup \the\toks@ #1% -}% \tabu@endofcollect -%% The trials: switching between strategies ------------------------- -\def\tabu@strategy {\relax % stops \count@ assignment ! - \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) - \expandafter \tabu@endoftrials - \or % case 1 = exit in vertical measure (outer in mode 3) - \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% - \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% - \expandafter \tabu@endoftrials - \or % case 2 = exit with a rule replacing the table (outer in mode 4) - \expandafter \tabu@quickend - \or % case 3 = outer is in mode 3 because of no X - \begingroup - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \expandafter \tabu@measuring - \else % case 4 = horizontal measure - \begingroup - \global\let\tabu@elapsedtime \tabu@message@etime - \long\def\multicolumn##1##2##3{\multispan{##1}}% - \let\tabu@startpboxORI \@startpbox - \iftabu@spread - \def\tabu@naturalXmax {\z@}% - \let\tabu@naturalXmin \tabu@naturalXmax - \tabu@evr{\global\tabu@naturalX \z@}% - \let\@startpbox \tabu@startpboxmeasure - \else\iftabu@negcoef - \let\@startpbox \tabu@startpboxmeasure - \else \let\@startpbox \tabu@startpboxquick - \fi\fi - \expandafter \tabu@measuring - \fi -}% \tabu@strategy -\def\tabu@measuring{\expandafter \tabu@trial \expandafter - \count@ \the\count@ \tabu@endtrial -}% \tabu@measuring -\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} -\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \csname tabu@adl@endtrial\endcsname - \endarray}$\egroup % got \tabu@box -}% \tabu@shorttrial -\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \tabuendlongtrial}\egroup % got \tabu@box -}% \tabu@longtrial -\def\tabuendlongtrial{% no @ allowed for \scantokens - \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths -}% \tabuendlongtrial -\def\tabu@adl@endtrial{% - \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! -\def\tabu@seteverycr {\tabu@reset - \everycr \expandafter{\the\everycr \tabu@everycr}% - \let\everycr \tabu@noeverycr % -}% \tabu@seteverycr -\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} -\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} -\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} -\def\tabu@endoftrials {% - \iftabuscantokens \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\expandafter \tabu@closetrialsgroup \expandafter - \tabu@rescan \expandafter{% - \expandafter\tabuthepreamble - \the\expandafter\tabu@thebody - \iftabu@long \else \endarray \fi}} - {\expandafter\tabu@closetrialsgroup \expandafter - \tabuthepreamble - \the\tabu@thebody}% - \tabu@endenvir % Finish ! -}% \tabu@endoftrials -\def\tabu@closetrialsgroup {% - \toks@\expandafter{\tabu@endenvir}% - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target - \tabu@cnt \the\tabu@cnt - \def\noexpand\tabu@endenvir{\the\toks@}% - %Quid de \@halignto = \tabu@halignto ?? - }% \tabu@bufferX - \tabu@bufferX - \ifcase\tabu@nested % print out (outer in mode 0) - \global\tabu@cnt \tabu@cnt - \tabu@evr{\tabu@verticaldynamicadjustment}% - \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty - \let\@finalstrut \tabu@finalstrut - \else % vertical measure of nested tabu - \tabu@evr{\tabu@verticalinit}% - \tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \fi - \tabu@clckpt \let\@halignto \tabu@halignto - \let\@halignto \@empty - \tabu@seteverycr - \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ - \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) - \fi\fi -}% \tabu@closetrialsgroup -\def\tabu@quickend {\expandafter \endgroup \expandafter - \tabu@target \the\tabu@target \tabu@quickrule - \let\endarray \relax \tabu@endenvir -}% \tabu@quickend -\def\tabu@endtrial {\relax % stops \count@ assignment ! - \ifcase \count@ \tabu@err % case 0 = impossible here - \or \tabu@err % case 1 = impossible here - \or \tabu@err % case 2 = impossible here - \or % case 3 = outer goes into mode 0 - \def\tabu@bufferX{\endgroup}\count@ \z@ - \else % case 4 = outer goes into mode 3 - \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) - \else \tabu@arith % or 2 (outer in mode 4) - \fi - \count@=% - \ifcase\tabu@nested \thr@@ % outer goes into mode 3 - \else\iftabu@measuring \tw@ % outer is in mode 4 - \else \@ne % outer is in mode 3 - \fi\fi - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% - \fi - \expandafter \tabu@bufferX \expandafter - \count@ \the\count@ \tabu@strategy -}% \tabu@endtrial -\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} -%% The algorithms: compute the widths / stop or go on --------------- -\def\tabu@arithnegcoef {% - \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs -}% \tabu@arithnegcoef -\def\tabu@arith@negcoef #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition - \advance\@tempdima #2\tabucolX - \else - \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated - \advance\dimen@ -#2\p@ - \advance\@tempdima -#2\tabucolX - \else - \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised - \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised - \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) - \fi - \fi - \fi -}% \tabu@arith@negcoef -\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ - \ifdim \@tempdima=\z@ - \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% - \else - \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} - *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% - \fi -}% \tabu@givespace -\def\tabu@arith {\advance\tabu@cnt \@ne - \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi - \tabu@arithnegcoef - \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % - \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax - \tabu@message{\tabu@message@arith}% - \ifdim \tabu@DELTA <\tabu@hfuzz - \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? - \let\tabu@ \tabu@givespace \tabu@Xcoefs - \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message - \else % already converged: nothing to do but nearly impossible... - \fi - \tabucolX \maxdimen - \tabu@measuringfalse - \else % need for narrower X columns - \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax - \tabu@measuringtrue - \@whilesw \iftabu@measuring\fi {% - \advance\tabu@cnt \@ne - \tabu@arithnegcoef - \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here - \tabu@message{\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else - \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ - \fi}% - \ifdim -\tabu@DELTA<\tabu@hfuzz - \advance\@tempdima \@tempdimb % for message - \tabu@measuringfalse - \else - \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax - \fi - }% - \fi - \tabu@message{\tabu@message@reached}% - \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% -}% \tabu@arith -\def\tabu@spreadarith {% - \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs - \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% - \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax - \iftabu@measuring - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% - \else - \tabu@message{\tabu@message@spreadarith}% - \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target - \tabu@message{(tabu) spread - \ifdim \@tempdimc>\tabu@target useless here: default target used% - \else too large: reduced to fit default target\fi.}% - \else - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% - \fi - \begingroup \let\tabu@wddef \@gobbletwo - \@tempdimb \@tempdima - \tabucolX@init - \tabu@arithnegcoef - \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax - \expandafter\endgroup \expandafter\tabucolX \the\tabucolX - \tabu@arith - \fi -}% \tabu@spreadarith -\def\tabu@spread@arith #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ - \else \advance\@tempdima \tabu@wd{#1}\relax - \fi -}% \tabu@spread@arith -%% Reporting in the .log file --------------------------------------- -\def\tabu@message@defaulttarget{% - \ifnum\tabu@nested=\z@^^J(tabu) Default target: - \ifx\tabudefaulttarget\linewidth \string\linewidth - \ifdim \tabu@thetarget=\linewidth \else - -\the\dimexpr\linewidth-\tabu@thetarget\fi = - \else\ifx\tabudefaulttarget\linegoal\string\linegoal= - \fi\fi - \else (tabu) Default target (nested): \fi - \the\tabu@target \on@line - \ifnum\tabu@nested=\z@ , page \the\c@page\fi} -\def\tabu@message@target {^^J(tabu) Target specified: - \the\tabu@target \on@line, page \the\c@page} -\def\tabu@message@arith {\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else - \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ - \fi -}% \tabu@message@arith -\def\tabu@message@spreadarith {\tabu@spreadheader - \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ - \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ - \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ - \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target - \else \@tempdimc+\tabu@spreadtarget \fi - {}{}{}{}{}\@@} -\def\tabu@message@negcoef #1#2{ - \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: - \space width = \tabu@wd {#1} - \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname - \ifdim -\tabu@pt#2\tabucolX<\tabu@target - < \number-\rem@pt#2 X - = \the\dimexpr -\tabu@pt#2\tabucolX \relax - \else - <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} -\def\tabu@message@reached{\tabu@header - ******* Reached Target: - hfuzz = \tabu@hfuzz\on@line\space *******} -\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% - \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: - \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec - \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) - -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax - *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space - cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} -\def\tabu@message@verticalsp {% - \ifdim \@tempdima>\tabu@ht - \ifdim \@tempdimb>\tabu@dp - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% - \else - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% - \fi - \else\ifdim \@tempdimb>\tabu@dp - \tabu@spaces\tabu@spaces\tabu@spaces - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi - \fi -}% \tabu@message@verticalsp -\edef\tabu@spaces{\@spaces} -\def\tabu@strippt{\expandafter\tabu@pt\the} -{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} -\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} -\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} -\def\do #1{% - \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% - \ifnum##1<10 #1 #1\else - \ifnum##1<100 #1 \else - \ifnum##1<\@m #1\fi\fi\fi - ##1.##2##3##4##5##6##7##8#1}% - \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% - \def\tabu@titles{\ifnum \tabu@nested=\z@ - (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target - #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% - \def\tabu@spreadheader{% - (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. - #1 New Target^^J% - (tabu) sprd} - \def\tabu@message@save {\begingroup - \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} - \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt - \dimexpr####1\p@{ }{ }}}% - \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% - \let\CT@arc@ \relax \let\@preamble \@gobble - \let\tabu@savedpream \@firstofone - \let\tabu@savedparams \@firstofone - \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% - \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% - \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% - \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% - \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% - \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% - \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% - \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% - \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% - \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% - \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% - \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% - \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% - \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% - \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% - \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% - \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% - \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% - \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% - \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% - \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo - \tabu@message{% - (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% - \tabu@usetabu \@nil^^J}% - \endgroup} -}\do{ } -%% Measuring the natural width (varwidth) - store the results ------- -\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop - \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% - \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? - \iftabu@spread \else % if spread -> measure - \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure - \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) - \tabu@measuringtrue % for the quick option... - \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi - \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target - \tabu@target=\tabu@temp\tabucolX \fi\fi - \setbox\tabu@box \hbox \bgroup - \begin{varwidth}\tabu@target - \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... - \narrowragged \arraybackslash \parfillskip \@flushglue - \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi - \bgroup \aftergroup\tabu@endpboxmeasure - \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi - \else \expandafter\@gobble - \tabu@startpboxquick{#1}% \@gobble \bgroup - \fi -}% \tabu@startpboxmeasure -\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty - \bgroup\color@begingroup} -\def\tabu@endpboxmeasure {% - \@finalstrut \@arstrutbox - \end{varwidth}\egroup % - \ifdim \tabu@temp\p@ <\z@ % neg coef - \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box - \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% - \tabu@debug{\tabu@message@endpboxmeasure}% - \fi - \else % spread coef>0 - \global\advance \tabu@naturalX \wd\tabu@box - \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax - \ifdim \tabu@naturalXmax <\tabu@naturalX - \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi - \ifdim \tabu@naturalXmin <\@tempdima - \xdef\tabu@naturalXmin {\the\@tempdima}\fi - \fi - \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target -}% \tabu@endpboxmeasure -\def\tabu@wddef #1{\expandafter\xdef - \csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd - \the\tabu@Xcol. X[\tabu@temp]: - target = \the\tabucolX \space - \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol - =\tabu@wd\tabu@Xcol -}% \tabu@message@endpboxmeasure -\def\tabu@startpboxquick {\bgroup - \let\@startpbox \tabu@startpboxORI % restore immediately - \let\tabu \tabu@quick % \begin is expanded before... - \expandafter\@gobble \@startpbox % gobbles \bgroup -}% \tabu@startpboxquick -\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick -}% \tabu@quick -\def\tabu@endquick {% - \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else - \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax - \endgroup - \else \let\endtabu \relax - \tabu@end@envir - \fi -}% \tabu@quick -\def\tabu@endtabu {\end{tabu}} -\def\tabu@endtabus {\end{tabu*}} -%% Measuring the heights and depths - store the results ------------- -\def\tabu@verticalmeasure{\everypar{}% - \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group - \setbox\tabu@box =\hbox\bgroup - \let\tabu@verticalspacing \tabu@verticalsp@lcr - \d@llarbegin % after \hbox ... - \else - \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop - \else\ifnum\currentgrouptype=12\vcenter - \else\vbox\fi\fi}% - \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup - \let\tabu@verticalspacing \tabu@verticalsp@pmb - \fi -}% \tabu@verticalmeasure -\def\tabu@verticalsp@lcr{% - \d@llarend \egroup % - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \noindent\vrule height\@tempdima depth\@tempdimb -}% \tabu@verticalsp@lcr -\def\tabu@verticalsp@pmb{% inserts struts as needed - \par \expandafter\egroup - \expandafter$\expandafter - \egroup \expandafter - \@tempdimc \the\prevdepth - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \let\@finalstrut \@gobble - \hrule height\@tempdima depth\@tempdimb width\hsize -%% \box\tabu@box -}% \tabu@verticalsp@pmb - -\def\tabu@verticalinit{% - \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! - \advance\c@taburow \@ne - \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% - \advance\c@taburow \m@ne -}% \tabu@verticalinit -\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@verticaldynamicadjustment {% - \advance\c@taburow \@ne - \extrarowheight \dimexpr\tabu@ht - \ht\strutbox - \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox - \let\arraystretch \@empty - \advance\c@taburow \m@ne -}% \tabu@verticaldynamicadjustment -\def\tabuphantomline{\crcr \noalign{% - {\globaldefs \@ne - \setbox\@arstrutbox \box\voidb@x - \let\tabu@@celllalign \tabu@celllalign - \let\tabu@@cellralign \tabu@cellralign - \let\tabu@@cellleft \tabu@cellleft - \let\tabu@@cellright \tabu@cellright - \let\tabu@@thevline \tabu@thevline - \let\tabu@celllalign \@empty - \let\tabu@cellralign \@empty - \let\tabu@cellright \@empty - \let\tabu@cellleft \@empty - \let\tabu@thevline \relax}% - \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% - \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr - \noalign{\tabu@rearstrut - {\globaldefs\@ne - \let\tabu@celllalign \tabu@@celllalign - \let\tabu@cellralign \tabu@@cellralign - \let\tabu@cellleft \tabu@@cellleft - \let\tabu@cellright \tabu@@cellright - \let\tabu@thevline \tabu@@thevline}}}% - \expandafter}\the\toks@ -}% \tabuphantomline -%% \firsthline and \lasthline corrections --------------------------- -\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} -\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} -\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} -\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} -\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) - \noalign{\ifnum0=`}\fi - {\CT@arc@\hrule height\arrayrulewidth}% - \futurelet \tabu@temp \tabu@xhline -}% \tabu@hline -\def\tabu@xhline{% - \ifx \tabu@temp \hline - {\ifx \CT@drsc@\relax \vskip - \else\ifx \CT@drsc@\@empty \vskip - \else \CT@drsc@\hrule height - \fi\fi - \doublerulesep}% - \fi - \ifnum0=`{\fi}% -}% \tabu@xhline -\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ - \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% - \tabu@hlineAZsurround -}% \tabu@hlineAZ -\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% - \extratabsurround #1\let\tabucline \tabucline@scan - \let\hline \tabu@hlinescan \let\firsthline \hline - \let\cline \tabu@clinescan \let\lasthline \hline - \expandafter \futurelet \expandafter \tabu@temp - \expandafter \tabu@nexthlineAZ \tabu@temp -}% \tabu@hlineAZsurround -\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} -\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} -\def\tabucline@scan{\@testopt \tabucline@sc@n {}} -\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} -\def\tabu@nexthlineAZ{% - \ifx \tabu@temp\hline \else - \ifx \tabu@temp\cline \else - \ifx \tabu@temp\tabucline \else - \tabu@hlinecorrection - \fi\fi\fi -}% \tabu@nexthlineAZ -\def\tabu@xhlineAZ #1{% - \toks@\expandafter{\the\toks@ #1}% - \@tempdimc \tabu@thick % The last line width - \ifcase\count@ \@tempdimb \tabu@thick % The first line width - \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax - \fi - \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ -}% \tabu@xhlineAZ -\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 - \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ - \edef\firsthline{% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - height \the\dimexpr\@tempdima+\extratabsurround - depth \dp\@arstrutbox - width \tabustrutrule}\hss}\cr - \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb - +\dp\@arstrutbox \relax}% - \the\toks@ - }\ifnum0=`{\fi - \expandafter}\firsthline % we are then ! -}% \tabu@firsthlinecorrection -\def\tabu@lasthlinecorrection{% - \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc - \edef\lasthline{% - \the\toks@ - \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ - +\extratabsurround-\@tempdimc - height \z@ - width \tabustrutrule}\hss}\cr - }\ifnum0=`{\fi - \expandafter}\lasthline % we are then ! -}% \tabu@lasthlinecorrection -\def\tabu@LT@@hline{% - \ifx\LT@next\hline - \global\let\LT@next \@gobble - \ifx \CT@drsc@\relax - \gdef\CT@LT@sep{% - \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% - \else - \gdef\CT@LT@sep{% - \multispan\LT@cols{% - \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% - \fi - \else - \global\let\LT@next\empty - \gdef\CT@LT@sep{% - \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \CT@LT@sep - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \noalign{\penalty\@M}% - \LT@next -}% \tabu@LT@@hline -%% Horizontal lines : \tabucline ------------------------------------ -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} -\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% - \ifnum \tabu@stop<\z@ \toks@{}% - \else \tabu@clinearg{#1}\tabu@thestyle - \edef\tabucline{\toks@{% - \ifnum \tabu@start>\z@ \omit - \tabu@multispan\tabu@start {\span\omit}&\fi - \omit \tabu@multispan\tabu@stop {\span\omit}% - \tabu@thehline\cr - }}\tabucline - \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% - \fi - \futurelet \tabu@temp \tabu@xcline -}% \tabu@cline -\def\tabu@clinearg #1{% - \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ - \else \@defaultunits \expandafter\let\expandafter\@tempa - \romannumeral-`\0#1\relax \@nnil - \ifx \hbox\@tempa \tabu@clinebox{#1}% - \else\ifx \box\@tempa \tabu@clinebox{#1}% - \else\ifx \vbox\@tempa \tabu@clinebox{#1}% - \else\ifx \vtop\@tempa \tabu@clinebox{#1}% - \else\ifx \copy\@tempa \tabu@clinebox{#1}% - \else\ifx \leaders\@tempa \tabu@clineleads{#1}% - \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% - \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% - \else\tabu@getline {#1}% - \fi\fi\fi\fi\fi\fi\fi\fi - \fi -}% \tabu@clinearg -\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} -\def\tabu@clineleads #1{% - \let\tabu@thestyle \relax \let\tabu@leaders \@undefined - \gdef\tabu@thehrule{#1}} -\def\tabu@thehline{\begingroup - \ifdefined\tabu@leaders - \noexpand\tabu@thehleaders - \else \noexpand\tabu@thehrule - \fi \endgroup -}% \tabu@thehline -\def\tabu@xcline{% - \ifx \tabu@temp\tabucline - \toks@\expandafter{\the\toks@ \noalign - {\ifx\CT@drsc@\relax \vskip - \else \CT@drsc@\hrule height - \fi - \doublerulesep}}% - \fi - \tabu@docline -}% \tabu@xcline -\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} -\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% - \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} -\def\tabu@multispan #1#2{% - \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan - \else \expandafter\@gobbletwo - \fi {#1-1}{#2}% -}% \tabu@multispan -\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} -\def\tabu@start@stop #1-#2\@nnil{% - \@defaultunits \tabu@start\number 0#1\relax \@nnil - \@defaultunits \tabu@stop \number 0#2\relax \@nnil - \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne - \else\ifnum \tabu@stop=\z@ \tabu@nbcols - \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols - \else \tabu@stop - \fi\fi\fi - \advance\tabu@start \m@ne - \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi -}% \tabu@start@stop -%% Numbers: siunitx S columns (and \tabudecimal) ------------------- -\def\tabu@tabudecimal #1{% - \def\tabu@decimal{#1}\@temptokena{}% - \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces - \tabu@scandecimal -}% \tabu@tabudecimal -\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} -\def\tabu@skipdecimal#1{#1\tabu@scandecimal} -\def\tabu@getdecimal@ignorespaces{% - \ifcase 0\ifx\tabu@temp\ignorespaces\else - \ifx\tabu@temp\@sptoken1\else - 2\fi\fi\relax - \let\tabu@getdecimal@ \tabu@getdecimal - \expandafter\tabu@skipdecimal - \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal - \else \expandafter\tabu@skipdecimal - \fi -}% \tabu@getdecimal@ignorespaces -\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% - \tabu@scandecimal} -\def\do#1{% - \def\tabu@get@decimalspace#1{% - \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% -}\do{ } -\let\tabu@@tabudecimal \tabu@tabudecimal -\def\tabu@getdecimal{% - \ifcase 0\ifx 0\tabu@temp\else - \ifx 1\tabu@temp\else - \ifx 2\tabu@temp\else - \ifx 3\tabu@temp\else - \ifx 4\tabu@temp\else - \ifx 5\tabu@temp\else - \ifx 6\tabu@temp\else - \ifx 7\tabu@temp\else - \ifx 8\tabu@temp\else - \ifx 9\tabu@temp\else - \ifx .\tabu@temp\else - \ifx ,\tabu@temp\else - \ifx -\tabu@temp\else - \ifx +\tabu@temp\else - \ifx e\tabu@temp\else - \ifx E\tabu@temp\else - \ifx\tabu@cellleft\tabu@temp1\else - \ifx\ignorespaces\tabu@temp1\else - \ifx\@sptoken\tabu@temp2\else - 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \expandafter\tabu@get@decimal - \or \expandafter\tabu@skipdecimal - \or \expandafter\tabu@get@decimalspace - \else\expandafter\tabu@printdecimal - \fi -}% \tabu@getdecimal -\def\tabu@printdecimal{% - \edef\tabu@temp{\the\@temptokena}% - \ifx\tabu@temp\@empty\else - \ifx\tabu@temp\space\else - \expandafter\tabu@decimal\expandafter{\the\@temptokena}% - \fi\fi -}% \tabu@printdecimal -%% Verbatim inside X columns ---------------------------------------- -\def\tabu@verbatim{% - \let\verb \tabu@verb - \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd -}% \tabu@verbatim -\let\tabu@ltx@verb \verb -\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} -\def\tabu@fancyvrb {% - \def\tabu@FV@DefineCheckEnd ##1{% - \def\tabu@FV@DefineCheckEnd{% - ##1% - \let\FV@CheckEnd \tabu@FV@CheckEnd - \let\FV@@CheckEnd \tabu@FV@@CheckEnd - \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd - \edef\FV@EndScanning{% - \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% - \global\let\noexpand\FV@EnvironName\relax - \noexpand\next}% - \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% - }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} -}% \tabu@fancyvrb -\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} -\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} -\begingroup -\catcode`\[1 \catcode`\]2 -\@makeother\{ \@makeother\} - \edef\x[\endgroup - \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% - ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} -\def\tabu@FV@ListProcessLine #1{% - \hbox {%to \hsize{% - \kern\leftmargin - \hbox {%to \linewidth{% - \FV@LeftListNumber - \FV@LeftListFrame - \FancyVerbFormatLine{#1}\hss -%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) -%% \FV@RightListFrame}% - \FV@RightListFrame - \FV@RightListNumber}% -%% DG/SR modification end - \hss}} -%% \savetabu -------------------------------------------------------- -\newcommand*\savetabu[1]{\noalign{% - \tabu@sanitizearg{#1}\tabu@temp - \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else - \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% - \ifdefined\tabu@restored \expandafter\let - \csname tabu@saved@\tabu@temp \endcsname \tabu@restored - \else {\tabu@save}% - \fi - \fi}% -}% \savetabu -\def\tabu@save {% - \toks0\expandafter{\tabu@saved@}% - \iftabu@negcoef - \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% - \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi - \toks1\expandafter{\tabu@savedpream}% - \toks2\expandafter{\tabu@savedpreamble}% - \let\@preamble \relax - \let\tabu@savedpream \relax \let\tabu@savedparams \relax - \edef\tabu@preamble{% - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \edef\tabu@usetabu{% - \def\@preamble {\noexpand\the\toks2}% - \tabu@target \the\tabu@target \relax - \tabucolX \the\tabucolX \relax - \tabu@nbcols \the\tabu@nbcols \relax - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \let\tabu@aligndefault \relax \let\@sharp \relax - \edef\@tempa{\noexpand\tabu@s@ved - {\tabu@usetabu} - {\tabu@preamble} - {\the\toks1}}\@tempa - \tabu@message@save -}% \tabu@save -\long\def\tabu@s@ved #1#2#3{% - \def\tabu@usetabu{#1}% - \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% - \ifodd ##1% \usetabu - \tabu@measuringfalse \tabu@spreadfalse % Just in case... - \gdef\tabu@usetabu {% - \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi - \global\let\tabu@usetabu \@undefined - \def\@halignto {to\tabu@target}% - #1% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \else % \preamble - \gdef\tabu@preamble {% - \global\let\tabu@preamble \@undefined - #2% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \fi - #3}% -}% \tabu@s@ved -\def\tabu@aligndefault@text {\tabu@aligndefault}% -\def\tabu@warn@usetabu {\PackageWarning{tabu} - {Specifying a target with \string\usetabu\space is useless - \MessageBreak The target cannot be changed!}} -\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} -\def\tabu@savewarn#1#2{\PackageInfo{tabu} - {User-name `#1' already used for \string\savetabu - \MessageBreak #2}}% -\def\tabu@saveerr#1{\PackageError{tabu} - {User-name `#1' is unknown for \string\usetabu - \MessageBreak I cannot restore an unknown preamble!}\@ehd} -%% \rowfont --------------------------------------------------------- -\newskip \tabu@cellskip -\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi - {\ifnum0=`}\fi \tabu@row@font} -\newcommand*\tabu@row@font[2][]{% - \ifnum7=\currentgrouptype - \global\let\tabu@@cellleft \tabu@cellleft - \global\let\tabu@@cellright \tabu@cellright - \global\let\tabu@@celllalign \tabu@celllalign - \global\let\tabu@@cellralign \tabu@cellralign - \global\let\tabu@@rowfontreset\tabu@rowfontreset - \fi - \global\let\tabu@rowfontreset \tabu@rowfont@reset - \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% - \ifcsname tabu@cell@#1\endcsname % row alignment - \csname tabu@cell@#1\endcsname \fi - \ifnum0=`{\fi}% end of group / noalign group -}% \rowfont -\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% -\def\tabu@rowfont@reset{% - \global\let\tabu@rowfontreset \tabu@@rowfontreset - \global\let\tabu@cellleft \tabu@@cellleft - \global\let\tabu@cellright \tabu@@cellright - \global\let\tabu@cellfont \@empty - \global\let\tabu@celllalign \tabu@@celllalign - \global\let\tabu@cellralign \tabu@@cellralign -}% \tabu@@rowfontreset -\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl -%% \tabu@prepnext@tok ----------------------------------------------- -\newif \iftabu@cellright -\def\tabu@prepnext@tok{% - \ifnum \count@<\z@ % - \@tempcnta \@M % - \tabu@nbcols\z@ - \let\tabu@fornoopORI \@fornoop - \tabu@cellrightfalse - \else - \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left - \advance \tabu@nbcols \@ne - \iftabu@cellright % before-previous token is right and is finished - \tabu@cellrightfalse % - \tabu@righttok - \fi - \tabu@lefttok - \or % (case 1) previous token is right - \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop - \else % special column: do not change the token - \iftabu@cellright % before-previous token is right - \tabu@cellrightfalse - \tabu@righttok - \fi - \fi % \ifcase - \fi - \tabu@prepnext@tokORI -}% \tabu@prepnext@tok -\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} -\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% - \ifx \in@#2\else - \let\@fornoop \tabu@fornoopORI - \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% - \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% - \expandafter\prepnext@tok - \fi -}% \tabu@lastnoop -\def\tabu@righttok{% - \advance \count@ \m@ne - \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% - \advance \count@ \@ne -}% \tabu@righttok -\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign - \the\toks\count@ \tabu@cellleft}% after because of $ -}% \tabu@lefttok -%% Neutralisation of glues ------------------------------------------ -\let\tabu@cellleft \@empty -\let\tabu@cellright \@empty -\tabu@celllalign@def{\tabu@cellleft}% -\let\tabu@cellralign \@empty -\def\tabu@cell@align #1#2#3{% - \let\tabu@maybesiunitx \toks@ \tabu@celllalign - \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% - \toks@\expandafter{\tabu@cellralign #2}% - \xdef\tabu@cellralign{\the\toks@}% - \toks@\expandafter{\tabu@cellleft #3}% - \xdef\tabu@cellleft{\the\toks@}% -}% \tabu@cell@align -\def\tabu@cell@l{% force alignment to left - \tabu@cell@align - {\tabu@removehfil \raggedright \tabu@cellleft}% left - {\tabu@flush1\tabu@ignorehfil}% right - \raggedright -}% \tabu@cell@l -\def\tabu@cell@c{% force alignment to center - \tabu@cell@align - {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \centering -}% \tabu@cell@c -\def\tabu@cell@r{% force alignment to right - \tabu@cell@align - {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} - \tabu@ignorehfil - \raggedleft -}% \tabu@cell@r -\def\tabu@cell@j{% force justification (for p, m, b columns) - \tabu@cell@align - {\tabu@justify\tabu@cellleft} - {} - \tabu@justify -}% \tabu@cell@j -\def\tabu@justify{% - \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip - \parfillskip\@flushglue -}% \tabu@justify -%% ragged2e settings -\def\tabu@cell@L{% force alignment to left (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedRight \tabu@cellleft} - {\tabu@flush 1\tabu@ignorehfil} - \RaggedRight -}% \tabu@cell@L -\def\tabu@cell@C{% force alignment to center (ragged2e) - \tabu@cell@align - {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \Centering -}% \tabu@cell@C -\def\tabu@cell@R{% force alignment to right (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} - \tabu@ignorehfil - \RaggedLeft -}% \tabu@cell@R -\def\tabu@cell@J{% force justification (ragged2e) - \tabu@cell@align - {\justifying \tabu@cellleft} - {} - \justifying -}% \tabu@cell@J -\def\tabu@flush#1{% - \iftabu@colortbl % colortbl uses \hfill rather than \hfil - \hskip \ifnum13<\currentgrouptype \stretch{#1}% - \else \ifdim#1pt<\p@ \tabu@cellskip - \else \stretch{#1} - \fi\fi \relax - \else % array.sty - \ifnum 13<\currentgrouptype - \hfil \hskip1sp \relax \fi - \fi -}% \tabu@flush -\let\tabu@hfil \hfil -\let\tabu@hfill \hfill -\let\tabu@hskip \hskip -\def\tabu@removehfil{% - \iftabu@colortbl - \unkern \tabu@cellskip =\lastskip - \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip - \else \tabu@cellskip \z@skip - \fi - \else - \ifdim\lastskip=1sp\unskip\fi - \ifnum\gluestretchorder\lastskip =\@ne - \hfilneg % \hfilneg for array.sty but not for colortbl... - \fi - \fi -}% \tabu@removehfil -\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} -\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil - \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group -}% \tabu@nohfil -\def\tabu@colortblalignments {% if colortbl - \def\tabu@nohfil{% - \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group - \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... - \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local -}% \tabu@colortblalignments -%% Taking care of footnotes and hyperfootnotes ---------------------- -\long\def\tabu@footnotetext #1{% - \edef\@tempa{\the\tabu@footnotes - \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% - \global\tabu@footnotes\expandafter{\@tempa {#1}}}% -\long\def\tabu@xfootnotetext [#1]#2{% - \global\tabu@footnotes\expandafter{\the\tabu@footnotes - \footnotetext [{#1}]{#2}}} -\let\tabu@xfootnote \@xfootnote -\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} -\long\def\tabu@Hy@xfootnote [#1]{% - \begingroup - \value\@mpfn #1\relax - \protected@xdef \@thefnmark {\thempfn}% - \endgroup - \@footnotemark \tabu@Hy@ftntxt {#1}% -}% \tabu@Hy@xfootnote -\long\def\tabu@Hy@ftntxt #1#2{% - \edef\@tempa{% - \the\tabu@footnotes - \begingroup - \value\@mpfn #1\relax - \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% - \expandafter \noexpand \expandafter - \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% - }% - \global\tabu@footnotes\expandafter{\@tempa {#2}% - \endgroup}% -}% \tabu@Hy@ftntxt -\long\def\tabu@Hy@footnotetext #1#2{% - \H@@footnotetext{% - \ifHy@nesting - \hyper@@anchor {#1}{#2}% - \else - \Hy@raisedlink{% - \hyper@@anchor {#1}{\relax}% - }% - \def\@currentHref {#1}% - \let\@currentlabelname \@empty - #2% - \fi - }% -}% \tabu@Hy@footnotetext -%% No need for \arraybackslash ! ------------------------------------ -\def\tabu@latextwoe {% -\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@centering \centering \arraybackslash -\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash -\tabu@temp \tabu@raggedright \raggedright \arraybackslash -}% \tabu@latextwoe -\def\tabu@raggedtwoe {% -\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@Centering \Centering \arraybackslash -\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash -\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash -\tabu@temp \tabu@justifying \justifying \arraybackslash -}% \tabu@raggedtwoe -\def\tabu@normalcrbackslash{\let\\\@normalcr} -\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% - \expandafter\tabu@normalcrbackslash \@trivlist}} -%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- -\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} -\def\tabu@beginfbox {\bgroup \kern\fboxsep - \bgroup\aftergroup\tabu@endfbox} -\def\tabu@endfbox {\kern\fboxsep\egroup\egroup - \@frameb@x\relax} -\def\tabu@color@b@x #1#2{\leavevmode \bgroup - \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% - \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox -}% \tabu@color@b@x -\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup - \aftergroup\tabu@endcolor@b@x \set@color} -\def\tabu@endcolor@b@x {\kern\fboxsep \egroup - \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ - \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ - \tabu@docolor@b@x \egroup -}% \tabu@endcolor@b@x -%% Corrections (arydshln, delarray, colortbl) ----------------------- -\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray - \iftabu@colortbl - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \def\tabu@endarray{% - \crcr \egroup \egroup % - \@arrayright % - \gdef\@preamble{}\CT@end}% - \fi - \else - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \PackageWarning{tabu} - {\string\@arrayright\space is missing from the - \MessageBreak definition of \string\endarray. - \MessageBreak Compatibility with delarray.sty is broken.}% - \fi\fi -}% \tabu@fix@arrayright -\def\tabu@adl@xarraydashrule #1#2#3{% - \ifnum\@lastchclass=\adl@class@start\else - \ifnum\@lastchclass=\@ne\else - \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) - \adl@leftrulefalse \fi\fi % must be treated the same - \fi - \ifadl@zwvrule\else \ifadl@inactive\else - \@addtopreamble{\vrule\@width\arrayrulewidth - \@height\z@ \@depth\z@}\fi \fi - \ifadl@leftrule - \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% - {\number#1}#3}% - \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% - {\number#2}#3} - \fi -}% \tabu@adl@xarraydashrule -\def\tabu@adl@act@endpbox {% - \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox - \egroup \egroup - \adl@colhtdp \box\adl@box \hfil -}% \tabu@adl@act@endpbox -\def\tabu@adl@fix {% - \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln - \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln - \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln - \let\@preamerror \@preamerr % arydshln -}% \tabu@adl@fix -%% Correction for longtable' \@startbox definition ------------------ -%% => \everypar is ``missing'' : TeX should be in vertical mode -\def\tabu@LT@startpbox #1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \everypar{% - \vrule \@height \ht\@arstrutbox \@width \z@ - \everypar{}}% -}% \tabu@LT@startpbox -%% \tracingtabu and the package options ------------------ -\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} -\DeclareOption{linegoal}{% - \AtEndOfPackage{% - \RequirePackage{linegoal}[2010/12/07]% - \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX -}} -\DeclareOption{scantokens}{\tabuscantokenstrue} -\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} -\def\tracingtabu {\begingroup\@ifnextchar=% - {\afterassignment\tabu@tracing\count@} - {\afterassignment\tabu@tracing\count@1\relax}} -\def\tabu@tracing{\expandafter\endgroup - \expandafter\tabu@tr@cing \the\count@ \relax -}% \tabu@tracing -\def\tabu@tr@cing #1\relax {% - \ifnum#1>\thr@@ \let\tabu@tracinglines\message - \else \let\tabu@tracinglines\@gobble - \fi - \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG - \def\tabu@mkarstrut {\tabu@DBG@arstrut}% - \tabustrutrule 1.5\p@ - \else \let\tabu@DBG \@gobble - \def\tabu@mkarstrut {\tabu@arstrut}% - \tabustrutrule \z@ - \fi - \ifnum#1>\@ne \let\tabu@debug \message - \else \let\tabu@debug \@gobble - \fi - \ifnum#1>\z@ - \let\tabu@message \message - \let\tabu@tracing@save \tabu@message@save - \let\tabu@starttimer \tabu@pdftimer - \else - \let\tabu@message \@gobble - \let\tabu@tracing@save \@gobble - \let\tabu@starttimer \relax - \fi -}% \tabu@tr@cing -%% Setup \AtBeginDocument -\AtBeginDocument{\tabu@AtBeginDocument} -\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined - \ifdefined\arrayrulecolor \tabu@colortbltrue % - \tabu@colortblalignments % different glues are used - \else \tabu@colortblfalse \fi - \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi - \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi - \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ - \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % - \expandafter\ifx - \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax - \tabu@siunitxtrue - \else \let\tabu@maybesiunitx \@firstofone % - \let\tabu@siunitx \tabu@nosiunitx - \tabu@siunitxfalse - \fi - \ifdefined\adl@array % - \else \let\tabu@adl@fix \relax - \let\tabu@adl@endtrial \@empty \fi - \ifdefined\longtable % - \else \let\longtabu \tabu@nolongtabu \fi - \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi - \csname\ifcsname ifHy@hyperfootnotes\endcsname % - ifHy@hyperfootnotes\else iffalse\fi\endcsname - \let\tabu@footnotetext \tabu@Hy@ftntext - \let\tabu@xfootnote \tabu@Hy@xfootnote \fi - \ifdefined\FV@DefineCheckEnd% - \tabu@fancyvrb \fi - \ifdefined\color % - \let\tabu@color \color - \def\tabu@leavevmodecolor ##1{% - \def\tabu@leavevmodecolor {\leavevmode ##1}% - }\expandafter\tabu@leavevmodecolor\expandafter{\color}% - \else - \let\tabu@color \tabu@nocolor - \let\tabu@leavevmodecolor \@firstofone \fi - \tabu@latextwoe - \ifdefined\@raggedtwoe@everyselectfont % - \tabu@raggedtwoe - \else - \let\tabu@cell@L \tabu@cell@l - \let\tabu@cell@R \tabu@cell@r - \let\tabu@cell@C \tabu@cell@c - \let\tabu@cell@J \tabu@cell@j \fi - \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% - \ifin@ \let\tabu@endarray \endarray - \else \tabu@fix@arrayright \fi% - \everyrow{}% -}% \tabu@AtBeginDocument -\def\tabu@warn@cellspace{% - \PackageWarning{tabu}{% - Package cellspace has some limitations - \MessageBreak And redefines some macros of array.sty. - \MessageBreak Please use \string\tabulinesep\space to control - \MessageBreak vertical spacing of lines inside tabu environment}% -}% \tabu@warn@cellspace -%% tabu Package initialisation -\tabuscantokensfalse -\let\tabu@arc@G \relax -\let\tabu@drsc@G \relax -\let\tabu@evr@G \@empty -\let\tabu@rc@G \@empty -\def\tabu@ls@G {\tabu@linestyle@}% -\let\tabu@@rowfontreset \@empty % -\let\tabu@@celllalign \@empty -\let\tabu@@cellralign \@empty -\let\tabu@@cellleft \@empty -\let\tabu@@cellright \@empty -\def\tabu@naturalXmin {\z@} -\def\tabu@naturalXmax {\z@} -\let\tabu@rowfontreset \@empty -\def\tabulineon {4pt}\let\tabulineoff \tabulineon -\tabu@everyrowtrue -\ifdefined\pdfelapsedtime % - \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% -\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax -\fi -\tracingtabu=\z@ -\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ -\tabulinestyle{} -\taburowcolors{} -\let\tabudefaulttarget \linewidth -\ProcessOptions* % \ProcessOptions* is quicker ! -\endinput -%% -%% End of file `tabu.sty'.