\hypertarget{classCliClient}{
\section{CliClient Class Reference}
\label{classCliClient}\index{CliClient@{CliClient}}
}


The class for \hyperlink{protocolthe-p}{the} CLI client.  




{\ttfamily \#include $<$cli\_\-client.hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCliClient_ac91fa7861923378052405f80b21016e6}{CliClient} (\hyperlink{classCliNode}{CliNode} \&init\_\-cli\_\-node, \hyperlink{classXorpFd}{XorpFd} input\_\-fd, \hyperlink{classXorpFd}{XorpFd} output\_\-fd, const string \&startup\_\-cli\_\-prompt)
\begin{DoxyCompactList}\small\item\em Constructor for a given CLI node and file descriptor. \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_a1fd140b7881bc358d97aec53758c7da0}{
virtual \hyperlink{classCliClient_a1fd140b7881bc358d97aec53758c7da0}{$\sim$CliClient} ()}
\label{classCliClient_a1fd140b7881bc358d97aec53758c7da0}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_a9239e1c7bd322049aaec8a566c7cc9d4}{done} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} processing of any pending commands or pending data has complated. \item\end{DoxyCompactList}\item 
int \hyperlink{classCliClient_a7b98de9012bed5075bbfb496c54af254}{start\_\-connection} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} connection. \item\end{DoxyCompactList}\item 
int \hyperlink{classCliClient_a4f92c1d58804a81eb474335fba15118e}{stop\_\-connection} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop \hyperlink{protocolthe-p}{the} connection. \item\end{DoxyCompactList}\item 
int \hyperlink{classCliClient_afdb91d7fcbd55c4837e5b3035f9f8f6a}{cli\_\-print} (const string \&msg)
\begin{DoxyCompactList}\small\item\em Print a message to \hyperlink{protocolthe-p}{the} CLI user. \item\end{DoxyCompactList}\item 
int \hyperlink{classCliClient_a5acfef0c78d6a00a6ecff9895564c65b}{cli\_\-flush} ()
\begin{DoxyCompactList}\small\item\em Flush \hyperlink{protocolthe-p}{the} CLI output. \item\end{DoxyCompactList}\item 
int \hyperlink{classCliClient_a87759c6cbf855aa100ca104ae8ffbde6}{set\_\-log\_\-output} (bool v)
\begin{DoxyCompactList}\small\item\em Add/remove this client for displaying log messages. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_a5140a6f272a8fd003c22887f4bf4019c}{is\_\-log\_\-output} () const 
\begin{DoxyCompactList}\small\item\em Test if this client has been added for displaying log messages. \item\end{DoxyCompactList}\item 
\hyperlink{classXorpFd}{XorpFd} \hyperlink{classCliClient_a285bd149cfa83b577316c6a25e13d1a2}{input\_\-fd} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} file descriptor for reading \hyperlink{protocolthe-p}{the} input from \hyperlink{protocolthe-p}{the} user. \item\end{DoxyCompactList}\item 
\hyperlink{classXorpFd}{XorpFd} \hyperlink{classCliClient_a485ee14e64767f305e561a0cee51d268}{output\_\-fd} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} file descriptor for writing \hyperlink{protocolthe-p}{the} output to \hyperlink{protocolthe-p}{the} user. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_a7c0cb61ef7c87707ec82428c5e27739e}{is\_\-input\_\-tty} () const 
\begin{DoxyCompactList}\small\item\em Test if this client is associated with a terminal type input device. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_ab3dbebd581d1b313e475c108173054e1}{is\_\-output\_\-tty} () const 
\begin{DoxyCompactList}\small\item\em Test if this client is associated with a terminal type output device. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_a54e9134332a89e0c061fbdbed8d6f4e7}{is\_\-network} () const 
\begin{DoxyCompactList}\small\item\em Test if this client is associated with a network connection. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_a1074a3ab4c58faa65e6877e3b0c2f8d9}{set\_\-network\_\-client} (bool v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} flag that associates \hyperlink{protocolthe-p}{the} client with a network connection. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_a5c8e3ed92dbef27ecb2ccbd7deb2b7f8}{is\_\-telnet} () const 
\begin{DoxyCompactList}\small\item\em Test if this client is associated with a telnet connection. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_afa8b1bbe45974303e4cb13d792fa8b89}{is\_\-interactive} () const 
\begin{DoxyCompactList}\small\item\em Test if this client is running in interactive mode. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classCliClient_ac204e3599613225a5dbe3b4f18c57ba8}{cli\_\-session\_\-user\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} user name. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classCliClient_ad3a1b1e8dd9c7a9e538daf0df3230501}{cli\_\-session\_\-term\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} terminal name. \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_ab14d68a3a6fbcb0e5afcbeacb268316e}{
const \hyperlink{classIPvX}{IPvX} \& {\bfseries cli\_\-session\_\-from\_\-address} () const }
\label{classCliClient_ab14d68a3a6fbcb0e5afcbeacb268316e}

\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classCliClient_a35dae116424ddd6bc3b132c3f72b51bd}{cli\_\-session\_\-start\_\-time} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} start time for this connection. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classCliClient_a4d19460001ea87b9f1115076ab3a8ef5}{cli\_\-session\_\-stop\_\-time} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} stop time for this connection. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_afd0265acc28d9606954f023ed68da3ef}{is\_\-cli\_\-session\_\-active} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} CLI session is active (i.e., it has been setup and ready to use). \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classCliClient_a2d354d92db5f5d76f7eee178b608bb34}{cli\_\-session\_\-session\_\-id} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} session ID. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_a57be76194a84fa4046d24b667c94a04a}{set\_\-cli\_\-session\_\-user\_\-name} (const string \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} user name. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_a61a47c6d21e7f21d87b0ba3e29802adb}{set\_\-cli\_\-session\_\-term\_\-name} (const string \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} terminal name. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_ae634a1d5b80564f5f90389bf7df1933b}{set\_\-cli\_\-session\_\-from\_\-address} (const \hyperlink{classIPvX}{IPvX} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} user network address. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_a50ecfa18f19d145d6d1d41626ed40d29}{set\_\-cli\_\-session\_\-start\_\-time} (const \hyperlink{classTimeVal}{TimeVal} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} start time for this connection. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_a1ca1239230fec8ac648ff1523080601b}{set\_\-cli\_\-session\_\-stop\_\-time} (const \hyperlink{classTimeVal}{TimeVal} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} stop time for this connection. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_ace23f9a767e24f21defb5e480b98e98f}{set\_\-is\_\-cli\_\-session\_\-active} (bool v)
\begin{DoxyCompactList}\small\item\em Set if this session is active. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_aaafddf0f54be12619ff79e83cb3c31a3}{set\_\-cli\_\-session\_\-session\_\-id} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} session ID. \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_ac27155786cf4852d1e693446a82d1635}{
void \hyperlink{classCliClient_ac27155786cf4852d1e693446a82d1635}{post\_\-process\_\-command} ()}
\label{classCliClient_ac27155786cf4852d1e693446a82d1635}

\begin{DoxyCompactList}\small\item\em Perform final processing of a command. \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_abab266fe3527842ca52fe30aac774fee}{
void \hyperlink{classCliClient_abab266fe3527842ca52fe30aac774fee}{flush\_\-process\_\-command\_\-output} ()}
\label{classCliClient_abab266fe3527842ca52fe30aac774fee}

\begin{DoxyCompactList}\small\item\em Flush \hyperlink{protocolthe-p}{the} output of a command while it is still running. \item\end{DoxyCompactList}\item 
bool \hyperlink{classCliClient_a7b78a690c6778106f7c61ecbfb6f0109}{is\_\-waiting\_\-for\_\-data} () const 
\begin{DoxyCompactList}\small\item\em Test if waiting for data from command processor. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_ac27ef5b5d102497829904b78293b38a5}{set\_\-is\_\-waiting\_\-for\_\-data} (bool v)
\begin{DoxyCompactList}\small\item\em Set a flag whether is waiting for data from command processor. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classCliClient_a9ee98f5bc4aed4717d02a96bade65ad1}{current\_\-cli\_\-prompt} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} current CLI prompt. \item\end{DoxyCompactList}\item 
void \hyperlink{classCliClient_aba1ee6a875d078050ea089088c4e0fa2}{set\_\-current\_\-cli\_\-prompt} (const string \&cli\_\-prompt)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} current CLI prompt. \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_abec68d941d5b5b8acbbfce2ea0fd82ab}{
void \hyperlink{classCliClient_abec68d941d5b5b8acbbfce2ea0fd82ab}{terminal\_\-resized} ()}
\label{classCliClient_abec68d941d5b5b8acbbfce2ea0fd82ab}

\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} terminal-\/related information after it has been resized. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
enum {\bfseries ClientType} \{ {\bfseries CLIENT\_\-MIN} =  0, 
{\bfseries CLIENT\_\-TERMINAL} =  0, 
{\bfseries CLIENT\_\-FILE} =  1, 
{\bfseries CLIENT\_\-MAX}
 \}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classCliClient_a9f22255437b261096fc93e09c2f43abb}{
\hyperlink{classCliNode}{CliNode} \& {\bfseries cli\_\-node} ()}
\label{classCliClient_a9f22255437b261096fc93e09c2f43abb}

\item 
\hypertarget{classCliClient_a52d1a8433d5e2351de842535a23b0318}{
\hyperlink{structGetLine}{GetLine} $\ast$ {\bfseries gl} ()}
\label{classCliClient_a52d1a8433d5e2351de842535a23b0318}

\item 
int \hyperlink{classCliClient_ada65a2cc55c7d4e2253c0edbf48f47bc}{process\_\-telnet\_\-option} (int val, bool \&is\_\-telnet\_\-option)
\begin{DoxyCompactList}\small\item\em Process octet that may be part of a telnet option. \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_a315ad4a5eb0ae313d3b4282230a651a2}{
bool {\bfseries telnet\_\-iac} ()}
\label{classCliClient_a315ad4a5eb0ae313d3b4282230a651a2}

\item 
\hypertarget{classCliClient_ad43df4d5a8404fdee66827ca53fc441a}{
void {\bfseries set\_\-telnet\_\-iac} (bool v)}
\label{classCliClient_ad43df4d5a8404fdee66827ca53fc441a}

\item 
\hypertarget{classCliClient_ab4372e4c191514ae7fbd0aab6bc2508e}{
bool {\bfseries telnet\_\-sb} ()}
\label{classCliClient_ab4372e4c191514ae7fbd0aab6bc2508e}

\item 
\hypertarget{classCliClient_a061f162d005bd2540813e53354206499}{
void {\bfseries set\_\-telnet\_\-sb} (bool v)}
\label{classCliClient_a061f162d005bd2540813e53354206499}

\item 
\hypertarget{classCliClient_a552cf3ea4263ef18e5a1a3846e1a1416}{
bool {\bfseries telnet\_\-dont} ()}
\label{classCliClient_a552cf3ea4263ef18e5a1a3846e1a1416}

\item 
\hypertarget{classCliClient_a4bdaafbf015bcebc59d6137626c37744}{
void {\bfseries set\_\-telnet\_\-dont} (bool v)}
\label{classCliClient_a4bdaafbf015bcebc59d6137626c37744}

\item 
\hypertarget{classCliClient_a5bbb0ae6dcb150fea20557bd391be2d7}{
bool {\bfseries telnet\_\-do} ()}
\label{classCliClient_a5bbb0ae6dcb150fea20557bd391be2d7}

\item 
\hypertarget{classCliClient_a0fca757024f71d9b4fdf08489d429fa7}{
void {\bfseries set\_\-telnet\_\-do} (bool v)}
\label{classCliClient_a0fca757024f71d9b4fdf08489d429fa7}

\item 
\hypertarget{classCliClient_aa5cb6f6402b2069bb5983f8414d746fa}{
bool {\bfseries telnet\_\-wont} ()}
\label{classCliClient_aa5cb6f6402b2069bb5983f8414d746fa}

\item 
\hypertarget{classCliClient_aa65e5ea2b814ed9425333487096235c7}{
void {\bfseries set\_\-telnet\_\-wont} (bool v)}
\label{classCliClient_aa65e5ea2b814ed9425333487096235c7}

\item 
\hypertarget{classCliClient_aeeb9e77d0727bc995e6418530b7dd9d7}{
bool {\bfseries telnet\_\-will} ()}
\label{classCliClient_aeeb9e77d0727bc995e6418530b7dd9d7}

\item 
\hypertarget{classCliClient_aa368efcbbe335b6502ec42f57d3e66f7}{
void {\bfseries set\_\-telnet\_\-will} (bool v)}
\label{classCliClient_aa368efcbbe335b6502ec42f57d3e66f7}

\item 
\hypertarget{classCliClient_a51eae02e98ce4b0594c0e2b104ffe9e7}{
bool {\bfseries telnet\_\-binary} ()}
\label{classCliClient_a51eae02e98ce4b0594c0e2b104ffe9e7}

\item 
\hypertarget{classCliClient_a12e5dbf4f41c434124b864207740219a}{
void {\bfseries set\_\-telnet\_\-binary} (bool v)}
\label{classCliClient_a12e5dbf4f41c434124b864207740219a}

\item 
\hypertarget{classCliClient_a34036a5e2da0b2cbad2fc1ea75114b01}{
void {\bfseries update\_\-terminal\_\-size} ()}
\label{classCliClient_a34036a5e2da0b2cbad2fc1ea75114b01}

\item 
\hypertarget{classCliClient_a1708bdee4d7d6b06f921379cc1f21057}{
size\_\-t {\bfseries window\_\-width} ()}
\label{classCliClient_a1708bdee4d7d6b06f921379cc1f21057}

\item 
\hypertarget{classCliClient_a6cd64f9c52c03f79f848fd1a909261ba}{
void {\bfseries set\_\-window\_\-width} (uint16\_\-t v)}
\label{classCliClient_a6cd64f9c52c03f79f848fd1a909261ba}

\item 
\hypertarget{classCliClient_a6af366ab408812d03cf1cf745b1720e2}{
size\_\-t {\bfseries window\_\-height} ()}
\label{classCliClient_a6af366ab408812d03cf1cf745b1720e2}

\item 
\hypertarget{classCliClient_abcf3770808e89911d42a6fdcba09b2c7}{
void {\bfseries set\_\-window\_\-height} (uint16\_\-t v)}
\label{classCliClient_abcf3770808e89911d42a6fdcba09b2c7}

\item 
\hypertarget{classCliClient_a6330811cbceddbb3358716bad2005dde}{
\hyperlink{classBuffer}{Buffer} \& {\bfseries command\_\-buffer} ()}
\label{classCliClient_a6330811cbceddbb3358716bad2005dde}

\item 
\hypertarget{classCliClient_a21921dd9cedf4c2729e194371627bdd8}{
\hyperlink{classBuffer}{Buffer} \& {\bfseries telnet\_\-sb\_\-buffer} ()}
\label{classCliClient_a21921dd9cedf4c2729e194371627bdd8}

\item 
\hypertarget{classCliClient_a3142a087e140c694ab5f47afdaaccd7c}{
\hyperlink{classCliCommand}{CliCommand} $\ast$ {\bfseries cli\_\-command\_\-root} ()}
\label{classCliClient_a3142a087e140c694ab5f47afdaaccd7c}

\item 
\hypertarget{classCliClient_a5b85705e604ec7c9fa4a18899beee549}{
int {\bfseries buff\_\-curpos} ()}
\label{classCliClient_a5b85705e604ec7c9fa4a18899beee549}

\item 
\hypertarget{classCliClient_a163946c3a90c06c53a3e277c75d72aaf}{
void {\bfseries set\_\-buff\_\-curpos} (int v)}
\label{classCliClient_a163946c3a90c06c53a3e277c75d72aaf}

\item 
\hypertarget{classCliClient_a2b2d7f34e453fe59181e895533b68fbb}{
\hyperlink{classCliCommand}{CliCommand} $\ast$ {\bfseries current\_\-cli\_\-command} ()}
\label{classCliClient_a2b2d7f34e453fe59181e895533b68fbb}

\item 
\hypertarget{classCliClient_a4d2813f15c6eba68db466a2c5c539679}{
void {\bfseries set\_\-current\_\-cli\_\-command} (\hyperlink{classCliCommand}{CliCommand} $\ast$v)}
\label{classCliClient_a4d2813f15c6eba68db466a2c5c539679}

\item 
\hypertarget{classCliClient_aea2d28e2ed472588614dc83719f66c7e}{
int {\bfseries process\_\-command} (const string \&command\_\-line)}
\label{classCliClient_aea2d28e2ed472588614dc83719f66c7e}

\item 
\hypertarget{classCliClient_a7ab9800201693f0f4dc702718ca44996}{
void {\bfseries interrupt\_\-command} ()}
\label{classCliClient_a7ab9800201693f0f4dc702718ca44996}

\item 
\hypertarget{classCliClient_ae5de1a34ce7b5963ebfbeea47aa7e591}{
\hyperlink{classCliPipe}{CliPipe} $\ast$ {\bfseries add\_\-pipe} (const string \&pipe\_\-name)}
\label{classCliClient_ae5de1a34ce7b5963ebfbeea47aa7e591}

\item 
\hypertarget{classCliClient_a41a09e33fe810ba054e3c2db25fc5f4a}{
\hyperlink{classCliPipe}{CliPipe} $\ast$ {\bfseries add\_\-pipe} (const string \&pipe\_\-name, const list$<$ string $>$ \&args\_\-list)}
\label{classCliClient_a41a09e33fe810ba054e3c2db25fc5f4a}

\item 
\hypertarget{classCliClient_a7b5c89e1633d4eb547f9885e5c03da67}{
void {\bfseries delete\_\-pipe\_\-all} ()}
\label{classCliClient_a7b5c89e1633d4eb547f9885e5c03da67}

\item 
\hypertarget{classCliClient_a351d8226e3e0c3f85c89aa0be61d48b5}{
bool {\bfseries is\_\-pipe\_\-mode} ()}
\label{classCliClient_a351d8226e3e0c3f85c89aa0be61d48b5}

\item 
\hypertarget{classCliClient_a354ff972d6b52127842ab34e4cb7f6af}{
void {\bfseries set\_\-pipe\_\-mode} (bool v)}
\label{classCliClient_a354ff972d6b52127842ab34e4cb7f6af}

\item 
\hypertarget{classCliClient_a0d7605fe328084b765fc2f4c0d009a1f}{
int {\bfseries block\_\-connection} (bool is\_\-blocked)}
\label{classCliClient_a0d7605fe328084b765fc2f4c0d009a1f}

\item 
\hypertarget{classCliClient_a65ab8723d6ed3617cb8f27de464bb9a8}{
void {\bfseries client\_\-read} (\hyperlink{classXorpFd}{XorpFd} fd, IoEventType type)}
\label{classCliClient_a65ab8723d6ed3617cb8f27de464bb9a8}

\item 
\hypertarget{classCliClient_a5b87eb22e1b89b37bf79f0ab5028dfe0}{
void {\bfseries process\_\-input\_\-data} ()}
\label{classCliClient_a5b87eb22e1b89b37bf79f0ab5028dfe0}

\item 
\hypertarget{classCliClient_a3ab3a27638ebde168ddcf65e6e303f1c}{
void {\bfseries schedule\_\-process\_\-input\_\-data} ()}
\label{classCliClient_a3ab3a27638ebde168ddcf65e6e303f1c}

\item 
\hypertarget{classCliClient_a89f00b91a0ecdb9a935d5203f9602c03}{
int {\bfseries process\_\-char} (const string \&line, uint8\_\-t val, bool \&stop\_\-processing)}
\label{classCliClient_a89f00b91a0ecdb9a935d5203f9602c03}

\item 
\hypertarget{classCliClient_a1401dff3d60f854ae7469b2d6c883b2c}{
int {\bfseries process\_\-char\_\-page\_\-mode} (uint8\_\-t val)}
\label{classCliClient_a1401dff3d60f854ae7469b2d6c883b2c}

\item 
\hypertarget{classCliClient_aa8e483b2f49c62a013a26a97bbb6694b}{
int {\bfseries preprocess\_\-char} (uint8\_\-t val, bool \&stop\_\-processing)}
\label{classCliClient_aa8e483b2f49c62a013a26a97bbb6694b}

\item 
void \hyperlink{classCliClient_a46ba27ed7535d197ff507bbfd7a7d2b3}{command\_\-line\_\-help} (const string \&line, int word\_\-end, bool remove\_\-last\_\-input\_\-char)
\begin{DoxyCompactList}\small\item\em \hyperlink{classCliClient_a46ba27ed7535d197ff507bbfd7a7d2b3}{CliClient::command\_\-line\_\-help}: \item\end{DoxyCompactList}\item 
\hypertarget{classCliClient_a0f7e4874e27df9c082bbf7c91ded8d5b}{
bool {\bfseries is\_\-multi\_\-command\_\-prefix} (const string \&command\_\-line)}
\label{classCliClient_a0f7e4874e27df9c082bbf7c91ded8d5b}

\item 
\hypertarget{classCliClient_a885033bb50cb2d105c65fc6f93ab063d}{
void {\bfseries process\_\-line\_\-through\_\-pipes} (string \&pipe\_\-line)}
\label{classCliClient_a885033bb50cb2d105c65fc6f93ab063d}

\item 
\hypertarget{classCliClient_a2b3eb2365fe690b6499dfc137dbf21c8}{
bool {\bfseries is\_\-page\_\-mode} ()}
\label{classCliClient_a2b3eb2365fe690b6499dfc137dbf21c8}

\item 
\hypertarget{classCliClient_a1b71aa0ae5878ef5f73251f031771d9a}{
void {\bfseries set\_\-page\_\-mode} (bool v)}
\label{classCliClient_a1b71aa0ae5878ef5f73251f031771d9a}

\item 
\hypertarget{classCliClient_a99f4825044d3dc49860a90acfd38e7cd}{
bool {\bfseries is\_\-page\_\-buffer\_\-mode} ()}
\label{classCliClient_a99f4825044d3dc49860a90acfd38e7cd}

\item 
\hypertarget{classCliClient_a3a03f6206cc9eb6010e5bb6032ae9ee7}{
void {\bfseries set\_\-page\_\-buffer\_\-mode} (bool v)}
\label{classCliClient_a3a03f6206cc9eb6010e5bb6032ae9ee7}

\item 
\hypertarget{classCliClient_a0cac974ae77ff5edb1604aecdfdd9a2f}{
vector$<$ string $>$ \& {\bfseries page\_\-buffer} ()}
\label{classCliClient_a0cac974ae77ff5edb1604aecdfdd9a2f}

\item 
\hypertarget{classCliClient_ad592a9712170ef9db03166207115c9e9}{
const string \& {\bfseries page\_\-buffer\_\-line} (size\_\-t line\_\-n) const }
\label{classCliClient_ad592a9712170ef9db03166207115c9e9}

\item 
\hypertarget{classCliClient_a6651a6422a54b9d6b54a99570c21c07d}{
void {\bfseries reset\_\-page\_\-buffer} ()}
\label{classCliClient_a6651a6422a54b9d6b54a99570c21c07d}

\item 
\hypertarget{classCliClient_ad16c14f571ceaf17e9060c2c3ee4fb67}{
size\_\-t {\bfseries page\_\-buffer\_\-lines\_\-n} ()}
\label{classCliClient_ad16c14f571ceaf17e9060c2c3ee4fb67}

\item 
\hypertarget{classCliClient_a6664b4fda73d0d17db6bf63d3588890e}{
void {\bfseries append\_\-page\_\-buffer\_\-line} (const string \&buffer\_\-line)}
\label{classCliClient_a6664b4fda73d0d17db6bf63d3588890e}

\item 
\hypertarget{classCliClient_a43ca8abbf11c7ed5658b70997209b8ef}{
void {\bfseries concat\_\-page\_\-buffer\_\-line} (const string \&buffer\_\-line, size\_\-t pos)}
\label{classCliClient_a43ca8abbf11c7ed5658b70997209b8ef}

\item 
\hypertarget{classCliClient_a5de756dc339cd9aa8a58ef855550e79b}{
size\_\-t {\bfseries page\_\-buffer\_\-last\_\-line\_\-n} ()}
\label{classCliClient_a5de756dc339cd9aa8a58ef855550e79b}

\item 
\hypertarget{classCliClient_a8b3ab6de990a313b26ed870a9bd35836}{
void {\bfseries set\_\-page\_\-buffer\_\-last\_\-line\_\-n} (size\_\-t v)}
\label{classCliClient_a8b3ab6de990a313b26ed870a9bd35836}

\item 
\hypertarget{classCliClient_a72ccbff7228dbb00f474724cf8dfa634}{
void {\bfseries incr\_\-page\_\-buffer\_\-last\_\-line\_\-n} ()}
\label{classCliClient_a72ccbff7228dbb00f474724cf8dfa634}

\item 
\hypertarget{classCliClient_af4ba42753d3e7919a3df388f133d65db}{
void {\bfseries decr\_\-page\_\-buffer\_\-last\_\-line\_\-n} ()}
\label{classCliClient_af4ba42753d3e7919a3df388f133d65db}

\item 
\hypertarget{classCliClient_a27437145449354804dec9482cde14f99}{
size\_\-t {\bfseries page\_\-buffer\_\-window\_\-lines\_\-n} ()}
\label{classCliClient_a27437145449354804dec9482cde14f99}

\item 
\hypertarget{classCliClient_a819d22c96f4c583dedca9083cabebf09}{
size\_\-t {\bfseries page\_\-buffer\_\-last\_\-window\_\-line\_\-n} ()}
\label{classCliClient_a819d22c96f4c583dedca9083cabebf09}

\item 
\hypertarget{classCliClient_aa3a671a970c61d46cd3303ffeeed3b0e}{
size\_\-t {\bfseries page\_\-buffer2window\_\-line\_\-n} (size\_\-t buffer\_\-line\_\-n)}
\label{classCliClient_aa3a671a970c61d46cd3303ffeeed3b0e}

\item 
\hypertarget{classCliClient_af4b1bff34238898fd0a766b56f5d67dc}{
size\_\-t {\bfseries window\_\-lines\_\-n} (size\_\-t buffer\_\-line\_\-n)}
\label{classCliClient_af4b1bff34238898fd0a766b56f5d67dc}

\item 
\hypertarget{classCliClient_ae059ea5778ad08abcec50469a3671922}{
size\_\-t {\bfseries calculate\_\-first\_\-page\_\-buffer\_\-line\_\-by\_\-window\_\-size} (size\_\-t last\_\-buffer\_\-line\_\-n, size\_\-t max\_\-window\_\-size)}
\label{classCliClient_ae059ea5778ad08abcec50469a3671922}

\item 
\hypertarget{classCliClient_a6b362a1fdfd5958fe97ebb7584a9f464}{
bool {\bfseries is\_\-help\_\-mode} ()}
\label{classCliClient_a6b362a1fdfd5958fe97ebb7584a9f464}

\item 
\hypertarget{classCliClient_a70c4e2d615d50a6a77c5def15348f3b4}{
void {\bfseries set\_\-help\_\-mode} (bool v)}
\label{classCliClient_a70c4e2d615d50a6a77c5def15348f3b4}

\item 
\hypertarget{classCliClient_a64c090dd3f86673eb928e821eec28a6c}{
bool {\bfseries is\_\-nomore\_\-mode} ()}
\label{classCliClient_a64c090dd3f86673eb928e821eec28a6c}

\item 
\hypertarget{classCliClient_a08a06a13e36451852919412c440cfdbe}{
void {\bfseries set\_\-nomore\_\-mode} (bool v)}
\label{classCliClient_a08a06a13e36451852919412c440cfdbe}

\item 
\hypertarget{classCliClient_a51f4816d97dc409e43aadefc037e9c91}{
bool {\bfseries is\_\-hold\_\-mode} ()}
\label{classCliClient_a51f4816d97dc409e43aadefc037e9c91}

\item 
\hypertarget{classCliClient_ae726741a72eda2d4ac9d55e810bcd66a}{
void {\bfseries set\_\-hold\_\-mode} (bool v)}
\label{classCliClient_ae726741a72eda2d4ac9d55e810bcd66a}

\item 
\hypertarget{classCliClient_ab12e0214155fef46efe360af41f53e50}{
bool {\bfseries is\_\-prompt\_\-flushed} () const }
\label{classCliClient_ab12e0214155fef46efe360af41f53e50}

\item 
\hypertarget{classCliClient_af35c37af4602002b23a390eac5aaa47b}{
void {\bfseries set\_\-prompt\_\-flushed} (bool v)}
\label{classCliClient_af35c37af4602002b23a390eac5aaa47b}

\end{DoxyCompactItemize}
\subsection*{Static Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classCliClient_a49ff1f557f824de24073e02cda35515a}{
static {\bfseries CPL\_\-MATCH\_\-FN} (command\_\-completion\_\-func)}
\label{classCliClient_a49ff1f557f824de24073e02cda35515a}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classCliClient_a3a5005f2ce3ccc0bfb6ade5a0681a051}{
\hyperlink{classCliNode}{CliNode} \& {\bfseries \_\-cli\_\-node}}
\label{classCliClient_a3a5005f2ce3ccc0bfb6ade5a0681a051}

\item 
\hypertarget{classCliClient_a8b2dc5546cde21e029b509e987efaa10}{
\hyperlink{classXorpFd}{XorpFd} {\bfseries \_\-input\_\-fd}}
\label{classCliClient_a8b2dc5546cde21e029b509e987efaa10}

\item 
\hypertarget{classCliClient_a4658b79b7436de650489c8daf431c535}{
\hyperlink{classXorpFd}{XorpFd} {\bfseries \_\-output\_\-fd}}
\label{classCliClient_a4658b79b7436de650489c8daf431c535}

\item 
\hypertarget{classCliClient_af7ab36f99d70a611daa90a388b12674a}{
FILE $\ast$ {\bfseries \_\-input\_\-fd\_\-file}}
\label{classCliClient_af7ab36f99d70a611daa90a388b12674a}

\item 
\hypertarget{classCliClient_aa389cb0a636810ea827dec5f20179053}{
FILE $\ast$ {\bfseries \_\-output\_\-fd\_\-file}}
\label{classCliClient_aa389cb0a636810ea827dec5f20179053}

\item 
\hypertarget{classCliClient_a30e989a2df6bf1ccf6967d92f031d046}{
ClientType {\bfseries \_\-client\_\-type}}
\label{classCliClient_a30e989a2df6bf1ccf6967d92f031d046}

\item 
\hypertarget{classCliClient_a0f0f27fb032da6b1988050d8b365b2e0}{
\hyperlink{structGetLine}{GetLine} $\ast$ {\bfseries \_\-gl}}
\label{classCliClient_a0f0f27fb032da6b1988050d8b365b2e0}

\item 
\hypertarget{classCliClient_ab2b318ccbe23e078244282eccdbf5e12}{
bool {\bfseries \_\-telnet\_\-iac}}
\label{classCliClient_ab2b318ccbe23e078244282eccdbf5e12}

\item 
\hypertarget{classCliClient_ac64c270065d9ed074928949001e50430}{
bool {\bfseries \_\-telnet\_\-sb}}
\label{classCliClient_ac64c270065d9ed074928949001e50430}

\item 
\hypertarget{classCliClient_ac46f9bf713ca3dba4cb40d20e70baacb}{
bool {\bfseries \_\-telnet\_\-dont}}
\label{classCliClient_ac46f9bf713ca3dba4cb40d20e70baacb}

\item 
\hypertarget{classCliClient_abae75673d8c64cd28f21cd65966809ae}{
bool {\bfseries \_\-telnet\_\-do}}
\label{classCliClient_abae75673d8c64cd28f21cd65966809ae}

\item 
\hypertarget{classCliClient_a8614058e4d45550338275119ce5e59ad}{
bool {\bfseries \_\-telnet\_\-wont}}
\label{classCliClient_a8614058e4d45550338275119ce5e59ad}

\item 
\hypertarget{classCliClient_a665c19683183097c9c37eacfd3ac8643}{
bool {\bfseries \_\-telnet\_\-will}}
\label{classCliClient_a665c19683183097c9c37eacfd3ac8643}

\item 
\hypertarget{classCliClient_a11603395e180099455089e1ac3afbf59}{
bool {\bfseries \_\-telnet\_\-binary}}
\label{classCliClient_a11603395e180099455089e1ac3afbf59}

\item 
\hypertarget{classCliClient_a22eacf0f143f1174a38fcdbf2501663a}{
uint16\_\-t {\bfseries \_\-window\_\-width}}
\label{classCliClient_a22eacf0f143f1174a38fcdbf2501663a}

\item 
\hypertarget{classCliClient_a7f89345fe1bf6e6f36ecdf6a48d503e8}{
uint16\_\-t {\bfseries \_\-window\_\-height}}
\label{classCliClient_a7f89345fe1bf6e6f36ecdf6a48d503e8}

\item 
\hypertarget{classCliClient_a725efd14ea72dcaed83a906aa26a1200}{
\hyperlink{classBuffer}{Buffer} {\bfseries \_\-command\_\-buffer}}
\label{classCliClient_a725efd14ea72dcaed83a906aa26a1200}

\item 
\hypertarget{classCliClient_a74dda313b02768a6c14954de20b0d731}{
\hyperlink{classBuffer}{Buffer} {\bfseries \_\-telnet\_\-sb\_\-buffer}}
\label{classCliClient_a74dda313b02768a6c14954de20b0d731}

\item 
\hypertarget{classCliClient_a8b127c39eb32043a405529f5d9be678c}{
bool {\bfseries \_\-is\_\-modified\_\-stdio\_\-termios\_\-icanon}}
\label{classCliClient_a8b127c39eb32043a405529f5d9be678c}

\item 
\hypertarget{classCliClient_a7de8fa0d40ff8946baa407bad0b868ca}{
bool {\bfseries \_\-is\_\-modified\_\-stdio\_\-termios\_\-echo}}
\label{classCliClient_a7de8fa0d40ff8946baa407bad0b868ca}

\item 
\hypertarget{classCliClient_afb07872cd35ba5e840159da7ac10bfef}{
bool {\bfseries \_\-is\_\-modified\_\-stdio\_\-termios\_\-isig}}
\label{classCliClient_afb07872cd35ba5e840159da7ac10bfef}

\item 
\hypertarget{classCliClient_a6cfcf2c520e5e8118dfa69b94ab4781a}{
int {\bfseries \_\-saved\_\-stdio\_\-termios\_\-vmin}}
\label{classCliClient_a6cfcf2c520e5e8118dfa69b94ab4781a}

\item 
\hypertarget{classCliClient_ab3ac1e884321b719c90d020f4295f287}{
int {\bfseries \_\-saved\_\-stdio\_\-termios\_\-vtime}}
\label{classCliClient_ab3ac1e884321b719c90d020f4295f287}

\item 
\hypertarget{classCliClient_a91b7e6da756b8dc777a61d40f6e38fc1}{
\hyperlink{classCliCommand}{CliCommand} $\ast$ {\bfseries \_\-executed\_\-cli\_\-command}}
\label{classCliClient_a91b7e6da756b8dc777a61d40f6e38fc1}

\item 
\hypertarget{classCliClient_a2499fa8c7af9760325f26a2112ab702d}{
vector$<$ string $>$ {\bfseries \_\-executed\_\-cli\_\-command\_\-name}}
\label{classCliClient_a2499fa8c7af9760325f26a2112ab702d}

\item 
\hypertarget{classCliClient_ab0c3a7094357b85c744a903e0a9211dc}{
vector$<$ string $>$ {\bfseries \_\-executed\_\-cli\_\-command\_\-args}}
\label{classCliClient_ab0c3a7094357b85c744a903e0a9211dc}

\item 
\hypertarget{classCliClient_a423ba581b6fead1e744e58adc5cb7e04}{
\hyperlink{classCliCommand}{CliCommand} $\ast$ {\bfseries \_\-current\_\-cli\_\-command}}
\label{classCliClient_a423ba581b6fead1e744e58adc5cb7e04}

\item 
\hypertarget{classCliClient_a15a58811cc5a834588f2dc846a4e0ae5}{
string {\bfseries \_\-current\_\-cli\_\-prompt}}
\label{classCliClient_a15a58811cc5a834588f2dc846a4e0ae5}

\item 
\hypertarget{classCliClient_a5c7f1985b441f98a6035075f699ddf4b}{
int {\bfseries \_\-buff\_\-curpos}}
\label{classCliClient_a5c7f1985b441f98a6035075f699ddf4b}

\item 
\hypertarget{classCliClient_ac89510a006aa4a1cce366a189509a3a7}{
string {\bfseries \_\-buffer\_\-line}}
\label{classCliClient_ac89510a006aa4a1cce366a189509a3a7}

\item 
\hypertarget{classCliClient_a72c9e5f85bccbfe7195947d2b6c9e273}{
list$<$ \hyperlink{classCliPipe}{CliPipe} $\ast$ $>$ {\bfseries \_\-pipe\_\-list}}
\label{classCliClient_a72c9e5f85bccbfe7195947d2b6c9e273}

\item 
\hypertarget{classCliClient_a377bcfa6dbaa58d623f3757012d62b2b}{
bool {\bfseries \_\-is\_\-pipe\_\-mode}}
\label{classCliClient_a377bcfa6dbaa58d623f3757012d62b2b}

\item 
\hypertarget{classCliClient_a32fb1ec1deb785f58e8c83f8df532f41}{
bool {\bfseries \_\-is\_\-nomore\_\-mode}}
\label{classCliClient_a32fb1ec1deb785f58e8c83f8df532f41}

\item 
\hypertarget{classCliClient_a8a948b88c82e1d031e62ffaf4f862f8f}{
bool {\bfseries \_\-is\_\-hold\_\-mode}}
\label{classCliClient_a8a948b88c82e1d031e62ffaf4f862f8f}

\item 
\hypertarget{classCliClient_ad12a1c133828952cd51ece2a2d1aa19b}{
bool {\bfseries \_\-is\_\-page\_\-mode}}
\label{classCliClient_ad12a1c133828952cd51ece2a2d1aa19b}

\item 
\hypertarget{classCliClient_aed17ac122e3f12423e588492505d80f1}{
bool $\ast$ {\bfseries \_\-is\_\-page\_\-buffer\_\-mode}}
\label{classCliClient_aed17ac122e3f12423e588492505d80f1}

\item 
\hypertarget{classCliClient_a98e517fe0429f52cb01fcb98b8cec7b2}{
vector$<$ string $>$ $\ast$ {\bfseries \_\-page\_\-buffer}}
\label{classCliClient_a98e517fe0429f52cb01fcb98b8cec7b2}

\item 
\hypertarget{classCliClient_aef659732aa31c5021c7c95051dc23fde}{
size\_\-t $\ast$ {\bfseries \_\-page\_\-buffer\_\-last\_\-line\_\-n}}
\label{classCliClient_aef659732aa31c5021c7c95051dc23fde}

\item 
\hypertarget{classCliClient_af4c18e4f644c1f9fefae9da6e6f141b5}{
bool {\bfseries \_\-is\_\-output\_\-buffer\_\-mode}}
\label{classCliClient_af4c18e4f644c1f9fefae9da6e6f141b5}

\item 
\hypertarget{classCliClient_ab09eb91ef2e87e62bb4e7a975deb2e24}{
vector$<$ string $>$ {\bfseries \_\-output\_\-buffer}}
\label{classCliClient_ab09eb91ef2e87e62bb4e7a975deb2e24}

\item 
\hypertarget{classCliClient_a5aa890ae972e139e6484126456620a63}{
size\_\-t {\bfseries \_\-output\_\-buffer\_\-last\_\-line\_\-n}}
\label{classCliClient_a5aa890ae972e139e6484126456620a63}

\item 
\hypertarget{classCliClient_a2ac3460f66d520a71a6580aa7d7689e9}{
bool {\bfseries \_\-is\_\-help\_\-buffer\_\-mode}}
\label{classCliClient_a2ac3460f66d520a71a6580aa7d7689e9}

\item 
\hypertarget{classCliClient_a7173beef879a276230f4911161f9a310}{
vector$<$ string $>$ {\bfseries \_\-help\_\-buffer}}
\label{classCliClient_a7173beef879a276230f4911161f9a310}

\item 
\hypertarget{classCliClient_abf1c8c7782cc8a29f186846b0ea8e79f}{
size\_\-t {\bfseries \_\-help\_\-buffer\_\-last\_\-line\_\-n}}
\label{classCliClient_abf1c8c7782cc8a29f186846b0ea8e79f}

\item 
\hypertarget{classCliClient_a98250316d1a003a5b6682f65fe42b339}{
bool {\bfseries \_\-is\_\-help\_\-mode}}
\label{classCliClient_a98250316d1a003a5b6682f65fe42b339}

\item 
\hypertarget{classCliClient_a836edf9b3696c382d028528e246de683}{
bool {\bfseries \_\-is\_\-prompt\_\-flushed}}
\label{classCliClient_a836edf9b3696c382d028528e246de683}

\item 
\hypertarget{classCliClient_a554bd1c11d49c1cef02926f281fccf5b}{
string {\bfseries \_\-action\_\-name\_\-up\_\-arrow}}
\label{classCliClient_a554bd1c11d49c1cef02926f281fccf5b}

\item 
\hypertarget{classCliClient_ab36ecdf42e5eb3bab5cbb967a95b3fcf}{
string {\bfseries \_\-action\_\-name\_\-down\_\-arrow}}
\label{classCliClient_ab36ecdf42e5eb3bab5cbb967a95b3fcf}

\item 
\hypertarget{classCliClient_ad9a4e93ed2ec700d38832b39baa12822}{
string {\bfseries \_\-action\_\-name\_\-tab}}
\label{classCliClient_ad9a4e93ed2ec700d38832b39baa12822}

\item 
\hypertarget{classCliClient_a197a6316c58067e47a3dbf33a4a8437e}{
string {\bfseries \_\-action\_\-name\_\-newline\_\-n}}
\label{classCliClient_a197a6316c58067e47a3dbf33a4a8437e}

\item 
\hypertarget{classCliClient_adc64f9c9ffc9e7829bc8645dacbaa600}{
string {\bfseries \_\-action\_\-name\_\-newline\_\-r}}
\label{classCliClient_adc64f9c9ffc9e7829bc8645dacbaa600}

\item 
\hypertarget{classCliClient_a86249dbace5253ca6d7fce692a53cc8b}{
string {\bfseries \_\-action\_\-name\_\-spacebar}}
\label{classCliClient_a86249dbace5253ca6d7fce692a53cc8b}

\item 
\hypertarget{classCliClient_a7e23d2cd2210735bdb5687438cced003}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-a}}
\label{classCliClient_a7e23d2cd2210735bdb5687438cced003}

\item 
\hypertarget{classCliClient_ac1cc641b21f8aab8eff0bda29672a160}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-b}}
\label{classCliClient_ac1cc641b21f8aab8eff0bda29672a160}

\item 
\hypertarget{classCliClient_a0c3275638e9ea5d126f57adb9806dec0}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-c}}
\label{classCliClient_a0c3275638e9ea5d126f57adb9806dec0}

\item 
\hypertarget{classCliClient_a099ca3d2298e70f6406d660d22ac317b}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-d}}
\label{classCliClient_a099ca3d2298e70f6406d660d22ac317b}

\item 
\hypertarget{classCliClient_a5eee995721a86e349894ee294054f69e}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-e}}
\label{classCliClient_a5eee995721a86e349894ee294054f69e}

\item 
\hypertarget{classCliClient_afad7184ad2c1e13728f7e31d55e6790a}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-f}}
\label{classCliClient_afad7184ad2c1e13728f7e31d55e6790a}

\item 
\hypertarget{classCliClient_aa39cb6af60ce10d2e0a904ea176fe707}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-h}}
\label{classCliClient_aa39cb6af60ce10d2e0a904ea176fe707}

\item 
\hypertarget{classCliClient_a1825bf38a522160d2e05a74c383cae08}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-k}}
\label{classCliClient_a1825bf38a522160d2e05a74c383cae08}

\item 
\hypertarget{classCliClient_a082fc1e693a5697ffa4f5c0435737e68}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-l}}
\label{classCliClient_a082fc1e693a5697ffa4f5c0435737e68}

\item 
\hypertarget{classCliClient_a52158f8c524f409516b81dd13bbd8e0d}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-m}}
\label{classCliClient_a52158f8c524f409516b81dd13bbd8e0d}

\item 
\hypertarget{classCliClient_a171361c633b8245e5d51944054b84069}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-n}}
\label{classCliClient_a171361c633b8245e5d51944054b84069}

\item 
\hypertarget{classCliClient_a8281ed61d893831a10259c5b262dcfe0}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-p}}
\label{classCliClient_a8281ed61d893831a10259c5b262dcfe0}

\item 
\hypertarget{classCliClient_a0a67b9b998d42ed0369a8507415780c0}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-u}}
\label{classCliClient_a0a67b9b998d42ed0369a8507415780c0}

\item 
\hypertarget{classCliClient_a5fedd64739afed404318ffc45eef0c8f}{
string {\bfseries \_\-action\_\-name\_\-ctrl\_\-x}}
\label{classCliClient_a5fedd64739afed404318ffc45eef0c8f}

\item 
\hypertarget{classCliClient_a90dbf4559d666e48f255779142e5b86d}{
string {\bfseries \_\-cli\_\-session\_\-user\_\-name}}
\label{classCliClient_a90dbf4559d666e48f255779142e5b86d}

\item 
\hypertarget{classCliClient_a2cd3885905d6b70bb735dec6219b289d}{
string {\bfseries \_\-cli\_\-session\_\-term\_\-name}}
\label{classCliClient_a2cd3885905d6b70bb735dec6219b289d}

\item 
\hypertarget{classCliClient_a35ca3090640aa0c64921a8c850965e76}{
\hyperlink{classIPvX}{IPvX} {\bfseries \_\-cli\_\-session\_\-from\_\-address}}
\label{classCliClient_a35ca3090640aa0c64921a8c850965e76}

\item 
\hypertarget{classCliClient_a698046a6ac64b566dbd830ed788f70dd}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-cli\_\-session\_\-start\_\-time}}
\label{classCliClient_a698046a6ac64b566dbd830ed788f70dd}

\item 
\hypertarget{classCliClient_a0e9426d7335ebbd65042d50f4d25c2d7}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-cli\_\-session\_\-stop\_\-time}}
\label{classCliClient_a0e9426d7335ebbd65042d50f4d25c2d7}

\item 
\hypertarget{classCliClient_a248056c04d06d96f57fee9b11fbd7860}{
bool {\bfseries \_\-is\_\-cli\_\-session\_\-active}}
\label{classCliClient_a248056c04d06d96f57fee9b11fbd7860}

\item 
\hypertarget{classCliClient_a8c469692f27f9ff6e77e5562f8eb9641}{
uint32\_\-t {\bfseries \_\-cli\_\-session\_\-session\_\-id}}
\label{classCliClient_a8c469692f27f9ff6e77e5562f8eb9641}

\item 
\hypertarget{classCliClient_aff2d1e30c026228bd171a132d37ff5c8}{
bool {\bfseries \_\-is\_\-network}}
\label{classCliClient_aff2d1e30c026228bd171a132d37ff5c8}

\item 
\hypertarget{classCliClient_a9590c1eb712b4bfe51582805fc3ebeb7}{
bool {\bfseries \_\-is\_\-log\_\-output}}
\label{classCliClient_a9590c1eb712b4bfe51582805fc3ebeb7}

\item 
\hypertarget{classCliClient_aeb3955a4465e217963c692ac817f444d}{
bool {\bfseries \_\-is\_\-waiting\_\-for\_\-data}}
\label{classCliClient_aeb3955a4465e217963c692ac817f444d}

\item 
\hypertarget{classCliClient_a4954adefa02283cf01b6058680ef329e}{
vector$<$ uint8\_\-t $>$ {\bfseries \_\-pending\_\-input\_\-data}}
\label{classCliClient_a4954adefa02283cf01b6058680ef329e}

\item 
\hypertarget{classCliClient_a43be9d81e4caa2bc9f04bf1658d353da}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-process\_\-pending\_\-input\_\-data\_\-timer}}
\label{classCliClient_a43be9d81e4caa2bc9f04bf1658d353da}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classCliClient_afac124bde21607d42acd8b63ac6acac3}{
class \hyperlink{classCliClient_afac124bde21607d42acd8b63ac6acac3}{CliPipe}}
\label{classCliClient_afac124bde21607d42acd8b63ac6acac3}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The class for \hyperlink{protocolthe-p}{the} CLI client. There is one CLI client per CLI user (e.g., telnet connection). 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classCliClient_ac91fa7861923378052405f80b21016e6}{
\index{CliClient@{CliClient}!CliClient@{CliClient}}
\index{CliClient@{CliClient}!CliClient@{CliClient}}
\subsubsection[{CliClient}]{\setlength{\rightskip}{0pt plus 5cm}CliClient::CliClient (
\begin{DoxyParamCaption}
\item[{{\bf CliNode} \&}]{init\_\-cli\_\-node, }
\item[{{\bf XorpFd}}]{input\_\-fd, }
\item[{{\bf XorpFd}}]{output\_\-fd, }
\item[{const string \&}]{startup\_\-cli\_\-prompt}
\end{DoxyParamCaption}
)}}
\label{classCliClient_ac91fa7861923378052405f80b21016e6}


Constructor for a given CLI node and file descriptor. 


\begin{DoxyParams}{Parameters}
{\em init\_\-cli\_\-node} & \hyperlink{protocolthe-p}{the} \hyperlink{classCliNode}{CliNode} CLI node this client belongs to. \\
\hline
{\em input\_\-fd} & \hyperlink{protocolthe-p}{the} file descriptor for \hyperlink{protocolthe-p}{the} CLI client to read data from. \\
\hline
{\em output\_\-fd} & \hyperlink{protocolthe-p}{the} file descriptor for \hyperlink{protocolthe-p}{the} CLI client to write data to. \\
\hline
{\em startup\_\-cli\_\-prompt} & \hyperlink{protocolthe-p}{the} startup CLI prompt. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classCliClient_a5acfef0c78d6a00a6ecff9895564c65b}{
\index{CliClient@{CliClient}!cli\_\-flush@{cli\_\-flush}}
\index{cli\_\-flush@{cli\_\-flush}!CliClient@{CliClient}}
\subsubsection[{cli\_\-flush}]{\setlength{\rightskip}{0pt plus 5cm}int CliClient::cli\_\-flush (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classCliClient_a5acfef0c78d6a00a6ecff9895564c65b}


Flush \hyperlink{protocolthe-p}{the} CLI output. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classCliClient_afdb91d7fcbd55c4837e5b3035f9f8f6a}{
\index{CliClient@{CliClient}!cli\_\-print@{cli\_\-print}}
\index{cli\_\-print@{cli\_\-print}!CliClient@{CliClient}}
\subsubsection[{cli\_\-print}]{\setlength{\rightskip}{0pt plus 5cm}int CliClient::cli\_\-print (
\begin{DoxyParamCaption}
\item[{const string \&}]{msg}
\end{DoxyParamCaption}
)}}
\label{classCliClient_afdb91d7fcbd55c4837e5b3035f9f8f6a}


Print a message to \hyperlink{protocolthe-p}{the} CLI user. 


\begin{DoxyParams}{Parameters}
{\em msg} & C++ string with \hyperlink{protocolthe-p}{the} message to display. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of characters printed (not including \hyperlink{protocolthe-p}{the} trailing '$\backslash$0'). 
\end{DoxyReturn}
\hypertarget{classCliClient_a2d354d92db5f5d76f7eee178b608bb34}{
\index{CliClient@{CliClient}!cli\_\-session\_\-session\_\-id@{cli\_\-session\_\-session\_\-id}}
\index{cli\_\-session\_\-session\_\-id@{cli\_\-session\_\-session\_\-id}!CliClient@{CliClient}}
\subsubsection[{cli\_\-session\_\-session\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t CliClient::cli\_\-session\_\-session\_\-id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a2d354d92db5f5d76f7eee178b608bb34}


Get \hyperlink{protocolthe-p}{the} session ID. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} session ID for this client. 
\end{DoxyReturn}
\hypertarget{classCliClient_a35dae116424ddd6bc3b132c3f72b51bd}{
\index{CliClient@{CliClient}!cli\_\-session\_\-start\_\-time@{cli\_\-session\_\-start\_\-time}}
\index{cli\_\-session\_\-start\_\-time@{cli\_\-session\_\-start\_\-time}!CliClient@{CliClient}}
\subsubsection[{cli\_\-session\_\-start\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& CliClient::cli\_\-session\_\-start\_\-time (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a35dae116424ddd6bc3b132c3f72b51bd}


Get \hyperlink{protocolthe-p}{the} start time for this connection. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{classTimeVal}{TimeVal} with \hyperlink{protocolthe-p}{the} starting time for this connection. 
\end{DoxyReturn}
\hypertarget{classCliClient_a4d19460001ea87b9f1115076ab3a8ef5}{
\index{CliClient@{CliClient}!cli\_\-session\_\-stop\_\-time@{cli\_\-session\_\-stop\_\-time}}
\index{cli\_\-session\_\-stop\_\-time@{cli\_\-session\_\-stop\_\-time}!CliClient@{CliClient}}
\subsubsection[{cli\_\-session\_\-stop\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& CliClient::cli\_\-session\_\-stop\_\-time (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a4d19460001ea87b9f1115076ab3a8ef5}


Get \hyperlink{protocolthe-p}{the} stop time for this connection. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{classTimeVal}{TimeVal} with \hyperlink{protocolthe-p}{the} end time for this connection. 
\end{DoxyReturn}
\hypertarget{classCliClient_ad3a1b1e8dd9c7a9e538daf0df3230501}{
\index{CliClient@{CliClient}!cli\_\-session\_\-term\_\-name@{cli\_\-session\_\-term\_\-name}}
\index{cli\_\-session\_\-term\_\-name@{cli\_\-session\_\-term\_\-name}!CliClient@{CliClient}}
\subsubsection[{cli\_\-session\_\-term\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& CliClient::cli\_\-session\_\-term\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_ad3a1b1e8dd9c7a9e538daf0df3230501}


Get \hyperlink{protocolthe-p}{the} terminal name. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} terminal name. 
\end{DoxyReturn}
\hypertarget{classCliClient_ac204e3599613225a5dbe3b4f18c57ba8}{
\index{CliClient@{CliClient}!cli\_\-session\_\-user\_\-name@{cli\_\-session\_\-user\_\-name}}
\index{cli\_\-session\_\-user\_\-name@{cli\_\-session\_\-user\_\-name}!CliClient@{CliClient}}
\subsubsection[{cli\_\-session\_\-user\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& CliClient::cli\_\-session\_\-user\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_ac204e3599613225a5dbe3b4f18c57ba8}


Get \hyperlink{protocolthe-p}{the} user name. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} user name. 
\end{DoxyReturn}
\hypertarget{classCliClient_a46ba27ed7535d197ff507bbfd7a7d2b3}{
\index{CliClient@{CliClient}!command\_\-line\_\-help@{command\_\-line\_\-help}}
\index{command\_\-line\_\-help@{command\_\-line\_\-help}!CliClient@{CliClient}}
\subsubsection[{command\_\-line\_\-help}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::command\_\-line\_\-help (
\begin{DoxyParamCaption}
\item[{const string \&}]{line, }
\item[{int}]{word\_\-end, }
\item[{bool}]{remove\_\-last\_\-input\_\-char}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCliClient_a46ba27ed7535d197ff507bbfd7a7d2b3}


\hyperlink{classCliClient_a46ba27ed7535d197ff507bbfd7a7d2b3}{CliClient::command\_\-line\_\-help}: 

The current command line. : The cursor position. : If true, then remove \hyperlink{protocolthe-p}{the} last input character.

Print \hyperlink{protocolthe-p}{the} help for \hyperlink{protocolthe-p}{the} same-\/line command. \hypertarget{classCliClient_a9ee98f5bc4aed4717d02a96bade65ad1}{
\index{CliClient@{CliClient}!current\_\-cli\_\-prompt@{current\_\-cli\_\-prompt}}
\index{current\_\-cli\_\-prompt@{current\_\-cli\_\-prompt}!CliClient@{CliClient}}
\subsubsection[{current\_\-cli\_\-prompt}]{\setlength{\rightskip}{0pt plus 5cm}const string\& CliClient::current\_\-cli\_\-prompt (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a9ee98f5bc4aed4717d02a96bade65ad1}


Get \hyperlink{protocolthe-p}{the} current CLI prompt. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} current CLI prompt. 
\end{DoxyReturn}
\hypertarget{classCliClient_a9239e1c7bd322049aaec8a566c7cc9d4}{
\index{CliClient@{CliClient}!done@{done}}
\index{done@{done}!CliClient@{CliClient}}
\subsubsection[{done}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::done (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classCliClient_a9239e1c7bd322049aaec8a566c7cc9d4}


Test if \hyperlink{protocolthe-p}{the} processing of any pending commands or pending data has complated. 

\begin{DoxyReturn}{Returns}
true if processing of any pending commands or pending data has completed, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a285bd149cfa83b577316c6a25e13d1a2}{
\index{CliClient@{CliClient}!input\_\-fd@{input\_\-fd}}
\index{input\_\-fd@{input\_\-fd}!CliClient@{CliClient}}
\subsubsection[{input\_\-fd}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XorpFd} CliClient::input\_\-fd (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a285bd149cfa83b577316c6a25e13d1a2}


Get \hyperlink{protocolthe-p}{the} file descriptor for reading \hyperlink{protocolthe-p}{the} input from \hyperlink{protocolthe-p}{the} user. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} file descriptor for reading \hyperlink{protocolthe-p}{the} input from \hyperlink{protocolthe-p}{the} user. 
\end{DoxyReturn}
\hypertarget{classCliClient_afd0265acc28d9606954f023ed68da3ef}{
\index{CliClient@{CliClient}!is\_\-cli\_\-session\_\-active@{is\_\-cli\_\-session\_\-active}}
\index{is\_\-cli\_\-session\_\-active@{is\_\-cli\_\-session\_\-active}!CliClient@{CliClient}}
\subsubsection[{is\_\-cli\_\-session\_\-active}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-cli\_\-session\_\-active (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_afd0265acc28d9606954f023ed68da3ef}


Test if \hyperlink{protocolthe-p}{the} CLI session is active (i.e., it has been setup and ready to use). 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} CLI session is active, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a7c0cb61ef7c87707ec82428c5e27739e}{
\index{CliClient@{CliClient}!is\_\-input\_\-tty@{is\_\-input\_\-tty}}
\index{is\_\-input\_\-tty@{is\_\-input\_\-tty}!CliClient@{CliClient}}
\subsubsection[{is\_\-input\_\-tty}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-input\_\-tty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classCliClient_a7c0cb61ef7c87707ec82428c5e27739e}


Test if this client is associated with a terminal type input device. 

\begin{DoxyReturn}{Returns}
true if this client is associated with a terminal type input device, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_afa8b1bbe45974303e4cb13d792fa8b89}{
\index{CliClient@{CliClient}!is\_\-interactive@{is\_\-interactive}}
\index{is\_\-interactive@{is\_\-interactive}!CliClient@{CliClient}}
\subsubsection[{is\_\-interactive}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-interactive (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classCliClient_afa8b1bbe45974303e4cb13d792fa8b89}


Test if this client is running in interactive mode. 

\begin{DoxyReturn}{Returns}
true if this client is running in interactive mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a5140a6f272a8fd003c22887f4bf4019c}{
\index{CliClient@{CliClient}!is\_\-log\_\-output@{is\_\-log\_\-output}}
\index{is\_\-log\_\-output@{is\_\-log\_\-output}!CliClient@{CliClient}}
\subsubsection[{is\_\-log\_\-output}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-log\_\-output (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a5140a6f272a8fd003c22887f4bf4019c}


Test if this client has been added for displaying log messages. 

\begin{DoxyReturn}{Returns}
true if this client has been added for displaying log messages, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a54e9134332a89e0c061fbdbed8d6f4e7}{
\index{CliClient@{CliClient}!is\_\-network@{is\_\-network}}
\index{is\_\-network@{is\_\-network}!CliClient@{CliClient}}
\subsubsection[{is\_\-network}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-network (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classCliClient_a54e9134332a89e0c061fbdbed8d6f4e7}


Test if this client is associated with a network connection. 

\begin{DoxyReturn}{Returns}
true if this client is associated with a network connection, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_ab3dbebd581d1b313e475c108173054e1}{
\index{CliClient@{CliClient}!is\_\-output\_\-tty@{is\_\-output\_\-tty}}
\index{is\_\-output\_\-tty@{is\_\-output\_\-tty}!CliClient@{CliClient}}
\subsubsection[{is\_\-output\_\-tty}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-output\_\-tty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classCliClient_ab3dbebd581d1b313e475c108173054e1}


Test if this client is associated with a terminal type output device. 

\begin{DoxyReturn}{Returns}
true if this client is associated with a terminal type output device, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a5c8e3ed92dbef27ecb2ccbd7deb2b7f8}{
\index{CliClient@{CliClient}!is\_\-telnet@{is\_\-telnet}}
\index{is\_\-telnet@{is\_\-telnet}!CliClient@{CliClient}}
\subsubsection[{is\_\-telnet}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-telnet (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classCliClient_a5c8e3ed92dbef27ecb2ccbd7deb2b7f8}


Test if this client is associated with a telnet connection. 

\begin{DoxyReturn}{Returns}
true if this client is associated with a telnet connection, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a7b78a690c6778106f7c61ecbfb6f0109}{
\index{CliClient@{CliClient}!is\_\-waiting\_\-for\_\-data@{is\_\-waiting\_\-for\_\-data}}
\index{is\_\-waiting\_\-for\_\-data@{is\_\-waiting\_\-for\_\-data}!CliClient@{CliClient}}
\subsubsection[{is\_\-waiting\_\-for\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}bool CliClient::is\_\-waiting\_\-for\_\-data (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a7b78a690c6778106f7c61ecbfb6f0109}


Test if waiting for data from command processor. 

\begin{DoxyReturn}{Returns}
true if waiting for data from command processor, otherwise false. 
\end{DoxyReturn}
\hypertarget{classCliClient_a485ee14e64767f305e561a0cee51d268}{
\index{CliClient@{CliClient}!output\_\-fd@{output\_\-fd}}
\index{output\_\-fd@{output\_\-fd}!CliClient@{CliClient}}
\subsubsection[{output\_\-fd}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XorpFd} CliClient::output\_\-fd (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a485ee14e64767f305e561a0cee51d268}


Get \hyperlink{protocolthe-p}{the} file descriptor for writing \hyperlink{protocolthe-p}{the} output to \hyperlink{protocolthe-p}{the} user. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} file descriptor for writing \hyperlink{protocolthe-p}{the} output to \hyperlink{protocolthe-p}{the} user. 
\end{DoxyReturn}
\hypertarget{classCliClient_ada65a2cc55c7d4e2253c0edbf48f47bc}{
\index{CliClient@{CliClient}!process\_\-telnet\_\-option@{process\_\-telnet\_\-option}}
\index{process\_\-telnet\_\-option@{process\_\-telnet\_\-option}!CliClient@{CliClient}}
\subsubsection[{process\_\-telnet\_\-option}]{\setlength{\rightskip}{0pt plus 5cm}int CliClient::process\_\-telnet\_\-option (
\begin{DoxyParamCaption}
\item[{int}]{val, }
\item[{bool \&}]{is\_\-telnet\_\-option}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCliClient_ada65a2cc55c7d4e2253c0edbf48f47bc}


Process octet that may be part of a telnet option. 


\begin{DoxyParams}{Parameters}
{\em val} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} next octet. \\
\hline
{\em is\_\-telnet\_\-option} & return-\/by-\/reference result: if true, then val is part of a telnet option and it was processed. If it is false, then value should be processed as input data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classCliClient_ae634a1d5b80564f5f90389bf7df1933b}{
\index{CliClient@{CliClient}!set\_\-cli\_\-session\_\-from\_\-address@{set\_\-cli\_\-session\_\-from\_\-address}}
\index{set\_\-cli\_\-session\_\-from\_\-address@{set\_\-cli\_\-session\_\-from\_\-address}!CliClient@{CliClient}}
\subsubsection[{set\_\-cli\_\-session\_\-from\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-cli\_\-session\_\-from\_\-address (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_ae634a1d5b80564f5f90389bf7df1933b}


Set \hyperlink{protocolthe-p}{the} user network address. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} user network address to set. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_aaafddf0f54be12619ff79e83cb3c31a3}{
\index{CliClient@{CliClient}!set\_\-cli\_\-session\_\-session\_\-id@{set\_\-cli\_\-session\_\-session\_\-id}}
\index{set\_\-cli\_\-session\_\-session\_\-id@{set\_\-cli\_\-session\_\-session\_\-id}!CliClient@{CliClient}}
\subsubsection[{set\_\-cli\_\-session\_\-session\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-cli\_\-session\_\-session\_\-id (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_aaafddf0f54be12619ff79e83cb3c31a3}


Set \hyperlink{protocolthe-p}{the} session ID. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} session ID value to set. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_a50ecfa18f19d145d6d1d41626ed40d29}{
\index{CliClient@{CliClient}!set\_\-cli\_\-session\_\-start\_\-time@{set\_\-cli\_\-session\_\-start\_\-time}}
\index{set\_\-cli\_\-session\_\-start\_\-time@{set\_\-cli\_\-session\_\-start\_\-time}!CliClient@{CliClient}}
\subsubsection[{set\_\-cli\_\-session\_\-start\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-cli\_\-session\_\-start\_\-time (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a50ecfa18f19d145d6d1d41626ed40d29}


Set \hyperlink{protocolthe-p}{the} start time for this connection. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} start time for this connection. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_a1ca1239230fec8ac648ff1523080601b}{
\index{CliClient@{CliClient}!set\_\-cli\_\-session\_\-stop\_\-time@{set\_\-cli\_\-session\_\-stop\_\-time}}
\index{set\_\-cli\_\-session\_\-stop\_\-time@{set\_\-cli\_\-session\_\-stop\_\-time}!CliClient@{CliClient}}
\subsubsection[{set\_\-cli\_\-session\_\-stop\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-cli\_\-session\_\-stop\_\-time (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a1ca1239230fec8ac648ff1523080601b}


Set \hyperlink{protocolthe-p}{the} stop time for this connection. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} stop time for this connection. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_a61a47c6d21e7f21d87b0ba3e29802adb}{
\index{CliClient@{CliClient}!set\_\-cli\_\-session\_\-term\_\-name@{set\_\-cli\_\-session\_\-term\_\-name}}
\index{set\_\-cli\_\-session\_\-term\_\-name@{set\_\-cli\_\-session\_\-term\_\-name}!CliClient@{CliClient}}
\subsubsection[{set\_\-cli\_\-session\_\-term\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-cli\_\-session\_\-term\_\-name (
\begin{DoxyParamCaption}
\item[{const string \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a61a47c6d21e7f21d87b0ba3e29802adb}


Set \hyperlink{protocolthe-p}{the} terminal name. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} terminal name to set. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_a57be76194a84fa4046d24b667c94a04a}{
\index{CliClient@{CliClient}!set\_\-cli\_\-session\_\-user\_\-name@{set\_\-cli\_\-session\_\-user\_\-name}}
\index{set\_\-cli\_\-session\_\-user\_\-name@{set\_\-cli\_\-session\_\-user\_\-name}!CliClient@{CliClient}}
\subsubsection[{set\_\-cli\_\-session\_\-user\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-cli\_\-session\_\-user\_\-name (
\begin{DoxyParamCaption}
\item[{const string \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_a57be76194a84fa4046d24b667c94a04a}


Set \hyperlink{protocolthe-p}{the} user name. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} user name to set. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_aba1ee6a875d078050ea089088c4e0fa2}{
\index{CliClient@{CliClient}!set\_\-current\_\-cli\_\-prompt@{set\_\-current\_\-cli\_\-prompt}}
\index{set\_\-current\_\-cli\_\-prompt@{set\_\-current\_\-cli\_\-prompt}!CliClient@{CliClient}}
\subsubsection[{set\_\-current\_\-cli\_\-prompt}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-current\_\-cli\_\-prompt (
\begin{DoxyParamCaption}
\item[{const string \&}]{cli\_\-prompt}
\end{DoxyParamCaption}
)}}
\label{classCliClient_aba1ee6a875d078050ea089088c4e0fa2}


Set \hyperlink{protocolthe-p}{the} current CLI prompt. 


\begin{DoxyParams}{Parameters}
{\em cli\_\-prompt} & \hyperlink{protocolthe-p}{the} current CLI prompt to set. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_ace23f9a767e24f21defb5e480b98e98f}{
\index{CliClient@{CliClient}!set\_\-is\_\-cli\_\-session\_\-active@{set\_\-is\_\-cli\_\-session\_\-active}}
\index{set\_\-is\_\-cli\_\-session\_\-active@{set\_\-is\_\-cli\_\-session\_\-active}!CliClient@{CliClient}}
\subsubsection[{set\_\-is\_\-cli\_\-session\_\-active}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-is\_\-cli\_\-session\_\-active (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classCliClient_ace23f9a767e24f21defb5e480b98e98f}


Set if this session is active. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, \hyperlink{protocolthe-p}{the} session is set as active, otherwise is set as non-\/active. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_ac27ef5b5d102497829904b78293b38a5}{
\index{CliClient@{CliClient}!set\_\-is\_\-waiting\_\-for\_\-data@{set\_\-is\_\-waiting\_\-for\_\-data}}
\index{set\_\-is\_\-waiting\_\-for\_\-data@{set\_\-is\_\-waiting\_\-for\_\-data}!CliClient@{CliClient}}
\subsubsection[{set\_\-is\_\-waiting\_\-for\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-is\_\-waiting\_\-for\_\-data (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)}}
\label{classCliClient_ac27ef5b5d102497829904b78293b38a5}


Set a flag whether is waiting for data from command processor. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, \hyperlink{protocolthe-p}{the} session is set as waiting for data, otherwise is set as non-\/waiting. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_a87759c6cbf855aa100ca104ae8ffbde6}{
\index{CliClient@{CliClient}!set\_\-log\_\-output@{set\_\-log\_\-output}}
\index{set\_\-log\_\-output@{set\_\-log\_\-output}!CliClient@{CliClient}}
\subsubsection[{set\_\-log\_\-output}]{\setlength{\rightskip}{0pt plus 5cm}int CliClient::set\_\-log\_\-output (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)}}
\label{classCliClient_a87759c6cbf855aa100ca104ae8ffbde6}


Add/remove this client for displaying log messages. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, add this client for displaying messages, otherwise remove it. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classCliClient_a1074a3ab4c58faa65e6877e3b0c2f8d9}{
\index{CliClient@{CliClient}!set\_\-network\_\-client@{set\_\-network\_\-client}}
\index{set\_\-network\_\-client@{set\_\-network\_\-client}!CliClient@{CliClient}}
\subsubsection[{set\_\-network\_\-client}]{\setlength{\rightskip}{0pt plus 5cm}void CliClient::set\_\-network\_\-client (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)}}
\label{classCliClient_a1074a3ab4c58faa65e6877e3b0c2f8d9}


Set \hyperlink{protocolthe-p}{the} flag that associates \hyperlink{protocolthe-p}{the} client with a network connection. 


\begin{DoxyParams}{Parameters}
{\em v} & true if this client is associated with a network connection. \\
\hline
\end{DoxyParams}
\hypertarget{classCliClient_a7b98de9012bed5075bbfb496c54af254}{
\index{CliClient@{CliClient}!start\_\-connection@{start\_\-connection}}
\index{start\_\-connection@{start\_\-connection}!CliClient@{CliClient}}
\subsubsection[{start\_\-connection}]{\setlength{\rightskip}{0pt plus 5cm}int CliClient::start\_\-connection (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classCliClient_a7b98de9012bed5075bbfb496c54af254}


Start \hyperlink{protocolthe-p}{the} connection. 


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classCliClient_a4f92c1d58804a81eb474335fba15118e}{
\index{CliClient@{CliClient}!stop\_\-connection@{stop\_\-connection}}
\index{stop\_\-connection@{stop\_\-connection}!CliClient@{CliClient}}
\subsubsection[{stop\_\-connection}]{\setlength{\rightskip}{0pt plus 5cm}int CliClient::stop\_\-connection (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classCliClient_a4f92c1d58804a81eb474335fba15118e}


Stop \hyperlink{protocolthe-p}{the} connection. 


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/cli/cli\_\-client.hh\item 
/home/greearb/git/xorp.ct.github/xorp/cli/cli\_\-client.cc\item 
/home/greearb/git/xorp.ct.github/xorp/cli/cli\_\-node\_\-net.cc\end{DoxyCompactItemize}
