\hypertarget{classProtoNodeCli}{
\section{ProtoNodeCli Class Reference}
\label{classProtoNodeCli}\index{ProtoNodeCli@{ProtoNodeCli}}
}


Base class for \hyperlink{classProtocol}{Protocol} node CLI access.  




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

Inheritance diagram for ProtoNodeCli:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.399449cm]{classProtoNodeCli}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classProtoNodeCli_acb64e769aacbc701704fd53964884c9c}{ProtoNodeCli} (int init\_\-family, xorp\_\-module\_\-id init\_\-module\_\-id)
\begin{DoxyCompactList}\small\item\em Constructor for a given address family and module ID. \item\end{DoxyCompactList}\item 
\hypertarget{classProtoNodeCli_a8ac4a5553a7019169d8dabd166458b58}{
virtual \hyperlink{classProtoNodeCli_a8ac4a5553a7019169d8dabd166458b58}{$\sim$ProtoNodeCli} ()}
\label{classProtoNodeCli_a8ac4a5553a7019169d8dabd166458b58}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_af7dcf9d71f5c5752b1c2a06a3e9a4b81}{add\_\-cli\_\-dir\_\-command} (const char $\ast$dir\_\-command\_\-name, const char $\ast$dir\_\-command\_\-help)
\begin{DoxyCompactList}\small\item\em Add a CLI directory level that does not allow user to move to it. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_a8d73d7704c3b7cc3fe013d192b409961}{add\_\-cli\_\-dir\_\-command} (const char $\ast$dir\_\-command\_\-name, const char $\ast$dir\_\-command\_\-help, bool is\_\-allow\_\-cd, const char $\ast$dir\_\-cd\_\-prompt)
\begin{DoxyCompactList}\small\item\em Add a CLI directory level that may allow user to move to it. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_a97c13bb9c4e58b97a1944295d730971f}{add\_\-cli\_\-command} (const char $\ast$command\_\-name, const char $\ast$command\_\-help, const CLIProcessCallback \&cli\_\-process\_\-callback)
\begin{DoxyCompactList}\small\item\em Add a CLI command. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_aa338d4f174fa49ad509417818aa6d20a}{delete\_\-cli\_\-command} (const char $\ast$command\_\-name)
\begin{DoxyCompactList}\small\item\em Delete a CLI command. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_a9b9e4c42db2bfc0c03d70d3957ad0e8b}{delete\_\-all\_\-cli\_\-commands} ()
\begin{DoxyCompactList}\small\item\em Delete all CLI commands that were added by this node. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_a24e12509623583f2855d6fd3ca9d9855}{cli\_\-process\_\-command} (const string \&processor\_\-name, const string \&cli\_\-term\_\-name, const uint32\_\-t \&cli\_\-session\_\-id, const string \&command\_\-name, const string \&command\_\-args, string \&ret\_\-processor\_\-name, string \&ret\_\-cli\_\-term\_\-name, uint32\_\-t \&ret\_\-cli\_\-session\_\-id, string \&ret\_\-command\_\-output)
\begin{DoxyCompactList}\small\item\em Process a CLI command. \item\end{DoxyCompactList}\item 
int \hyperlink{classProtoNodeCli_a5f265343bf82a73bc15d9aef68df9417}{cli\_\-print} (const string \&msg)
\begin{DoxyCompactList}\small\item\em Print a message to \hyperlink{protocolthe-p}{the} CLI interface. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classProtoNodeCli_af8654cc4c5c9add14dd19cac67db20a2}{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager} (const char $\ast$command\_\-name, const char $\ast$command\_\-help, bool is\_\-command\_\-cd, const char $\ast$command\_\-cd\_\-prompt, bool is\_\-command\_\-processor)=0
\begin{DoxyCompactList}\small\item\em Add a CLI command to \hyperlink{protocolthe-p}{the} CLI manager. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classProtoNodeCli_a4ec12bc88a4cac74cbb0bb7e73f344bc}{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager} (const char $\ast$command\_\-name)=0
\begin{DoxyCompactList}\small\item\em Delete a CLI command from \hyperlink{protocolthe-p}{the} CLI manager. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classProtoNodeCli_a423d472664aeb383662db1dec91499bd}{
int {\bfseries add\_\-cli\_\-command\_\-entry} (const char $\ast$command\_\-name, const char $\ast$command\_\-help, bool is\_\-command\_\-cd, const char $\ast$command\_\-cd\_\-prompt, bool is\_\-command\_\-processor, const CLIProcessCallback \&cli\_\-process\_\-callback)}
\label{classProtoNodeCli_a423d472664aeb383662db1dec91499bd}

\item 
\hypertarget{classProtoNodeCli_a876dc7b83506ed79243751f26d86b5e2}{
int {\bfseries cli\_\-process\_\-dummy} (const vector$<$ string $>$ \&)}
\label{classProtoNodeCli_a876dc7b83506ed79243751f26d86b5e2}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classProtoNodeCli_ae3e2ea2e3355ec04c756578203ed4199}{
string {\bfseries \_\-cli\_\-result\_\-string}}
\label{classProtoNodeCli_ae3e2ea2e3355ec04c756578203ed4199}

\item 
\hypertarget{classProtoNodeCli_a23f444c9d057ec070fb5022926f971e4}{
map$<$ string, CLIProcessCallback $>$ {\bfseries \_\-cli\_\-callback\_\-map}}
\label{classProtoNodeCli_a23f444c9d057ec070fb5022926f971e4}

\item 
\hypertarget{classProtoNodeCli_a6338f49d2edfff53ebbef00f8e5f0483}{
vector$<$ string $>$ {\bfseries \_\-cli\_\-callback\_\-vector}}
\label{classProtoNodeCli_a6338f49d2edfff53ebbef00f8e5f0483}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for \hyperlink{classProtocol}{Protocol} node CLI access. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classProtoNodeCli_acb64e769aacbc701704fd53964884c9c}{
\index{ProtoNodeCli@{ProtoNodeCli}!ProtoNodeCli@{ProtoNodeCli}}
\index{ProtoNodeCli@{ProtoNodeCli}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{ProtoNodeCli}]{\setlength{\rightskip}{0pt plus 5cm}ProtoNodeCli::ProtoNodeCli (
\begin{DoxyParamCaption}
\item[{int}]{init\_\-family, }
\item[{xorp\_\-module\_\-id}]{init\_\-module\_\-id}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_acb64e769aacbc701704fd53964884c9c}


Constructor for a given address family and module ID. 

\hyperlink{classProtoNodeCli_acb64e769aacbc701704fd53964884c9c}{ProtoNodeCli::ProtoNodeCli}: : The address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively).


\begin{DoxyParams}{Parameters}
{\em init\_\-family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em init\_\-module\_\-id} & \hyperlink{protocolthe-p}{the} module ID XORP\_\-MODULE\_\-$\ast$ (xorp\_\-module\_\-id).\\
\hline
\end{DoxyParams}
: The module ID (XORP\_\-MODULE\_\-$\ast$).

\hyperlink{classProtoNodeCli}{ProtoNodeCli} node constructor. 

\subsection{Member Function Documentation}
\hypertarget{classProtoNodeCli_a97c13bb9c4e58b97a1944295d730971f}{
\index{ProtoNodeCli@{ProtoNodeCli}!add\_\-cli\_\-command@{add\_\-cli\_\-command}}
\index{add\_\-cli\_\-command@{add\_\-cli\_\-command}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{add\_\-cli\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::add\_\-cli\_\-command (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{command\_\-name, }
\item[{const char $\ast$}]{command\_\-help, }
\item[{const CLIProcessCallback \&}]{cli\_\-process\_\-callback}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_a97c13bb9c4e58b97a1944295d730971f}


Add a CLI command. 


\begin{DoxyParams}{Parameters}
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to add. \\
\hline
{\em command\_\-help} & \hyperlink{protocolthe-p}{the} command help. \\
\hline
{\em cli\_\-process\_\-callback} & \hyperlink{protocolthe-p}{the} callback function that will be called when this command is executed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classProtoNodeCli_af8654cc4c5c9add14dd19cac67db20a2}{
\index{ProtoNodeCli@{ProtoNodeCli}!add\_\-cli\_\-command\_\-to\_\-cli\_\-manager@{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager}}
\index{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager@{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager}]{\setlength{\rightskip}{0pt plus 5cm}virtual int ProtoNodeCli::add\_\-cli\_\-command\_\-to\_\-cli\_\-manager (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{command\_\-name, }
\item[{const char $\ast$}]{command\_\-help, }
\item[{bool}]{is\_\-command\_\-cd, }
\item[{const char $\ast$}]{command\_\-cd\_\-prompt, }
\item[{bool}]{is\_\-command\_\-processor}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classProtoNodeCli_af8654cc4c5c9add14dd19cac67db20a2}


Add a CLI command to \hyperlink{protocolthe-p}{the} CLI manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} particular protocol node class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to add. \\
\hline
{\em command\_\-help} & \hyperlink{protocolthe-p}{the} help message for \hyperlink{protocolthe-p}{the} command. \\
\hline
{\em is\_\-command\_\-cd} & if true, this is a directory level that allows user to \char`\"{}cd\char`\"{} to that directory. \\
\hline
{\em command\_\-cd\_\-prompt} & if this is a directory user can \char`\"{}cd\char`\"{} to it, \hyperlink{protocolthe-p}{the} prompt to appear after \hyperlink{protocolthe-p}{the} \char`\"{}cd\char`\"{}. \\
\hline
{\em is\_\-command\_\-processor} & if true, this is an oridinary command that can be invoked for processing rather than a directory level. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a934c186e19fa30675f1f1a0fed3d6309}{XrlMld6igmpNode}, \hyperlink{classXrlMfeaNode_a34352f12d8a3601bafa9856bd1d5b6c9}{XrlMfeaNode}, \hyperlink{classXrlMld6igmpNode_a934c186e19fa30675f1f1a0fed3d6309}{XrlMld6igmpNode}, and \hyperlink{classXrlPimNode_ad9da20cc940fa6dd2430f75fca2757a0}{XrlPimNode}.

\hypertarget{classProtoNodeCli_a8d73d7704c3b7cc3fe013d192b409961}{
\index{ProtoNodeCli@{ProtoNodeCli}!add\_\-cli\_\-dir\_\-command@{add\_\-cli\_\-dir\_\-command}}
\index{add\_\-cli\_\-dir\_\-command@{add\_\-cli\_\-dir\_\-command}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{add\_\-cli\_\-dir\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::add\_\-cli\_\-dir\_\-command (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir\_\-command\_\-name, }
\item[{const char $\ast$}]{dir\_\-command\_\-help, }
\item[{bool}]{is\_\-allow\_\-cd, }
\item[{const char $\ast$}]{dir\_\-cd\_\-prompt}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_a8d73d7704c3b7cc3fe013d192b409961}


Add a CLI directory level that may allow user to move to it. 

The added directory level may allow an user to move to it (i.e., user can type \hyperlink{protocolthe-p}{the} directory name to \char`\"{}cd\char`\"{} to that directory level).


\begin{DoxyParams}{Parameters}
{\em dir\_\-command\_\-name} & \hyperlink{protocolthe-p}{the} directory name to add. \\
\hline
{\em dir\_\-command\_\-help} & \hyperlink{protocolthe-p}{the} help message for \hyperlink{protocolthe-p}{the} directory. \\
\hline
{\em is\_\-allow\_\-cd} & if true, allow user to \char`\"{}cd\char`\"{} to that directory. \\
\hline
{\em dir\_\-cd\_\-prompt} & if user can \char`\"{}cd\char`\"{} to that directory, \hyperlink{protocolthe-p}{the} prompt to appear after \hyperlink{protocolthe-p}{the} \char`\"{}cd\char`\"{}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classProtoNodeCli_af7dcf9d71f5c5752b1c2a06a3e9a4b81}{
\index{ProtoNodeCli@{ProtoNodeCli}!add\_\-cli\_\-dir\_\-command@{add\_\-cli\_\-dir\_\-command}}
\index{add\_\-cli\_\-dir\_\-command@{add\_\-cli\_\-dir\_\-command}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{add\_\-cli\_\-dir\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::add\_\-cli\_\-dir\_\-command (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{dir\_\-command\_\-name, }
\item[{const char $\ast$}]{dir\_\-command\_\-help}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_af7dcf9d71f5c5752b1c2a06a3e9a4b81}


Add a CLI directory level that does not allow user to move to it. 

The added directory level does not allow an user to move to it (i.e., user cannot \char`\"{}cd\char`\"{} to that directory level).


\begin{DoxyParams}{Parameters}
{\em dir\_\-command\_\-name} & \hyperlink{protocolthe-p}{the} directory name to add. \\
\hline
{\em dir\_\-command\_\-help} & \hyperlink{protocolthe-p}{the} help message for \hyperlink{protocolthe-p}{the} directory. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classProtoNodeCli_a5f265343bf82a73bc15d9aef68df9417}{
\index{ProtoNodeCli@{ProtoNodeCli}!cli\_\-print@{cli\_\-print}}
\index{cli\_\-print@{cli\_\-print}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{cli\_\-print}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::cli\_\-print (
\begin{DoxyParamCaption}
\item[{const string \&}]{msg}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_a5f265343bf82a73bc15d9aef68df9417}


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

\hyperlink{classProtoNodeCli_a5f265343bf82a73bc15d9aef68df9417}{ProtoNodeCli::cli\_\-print}: : \hyperlink{protocolthe-p}{the} message string to display.


\begin{DoxyParams}{Parameters}
{\em msg} & \hyperlink{protocolthe-p}{the} message string 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}
Print a message to \hyperlink{protocolthe-p}{the} CLI interface.

Return value: The number of characters printed (not including \hyperlink{protocolthe-p}{the} trailing `$\backslash$0'). \hypertarget{classProtoNodeCli_a24e12509623583f2855d6fd3ca9d9855}{
\index{ProtoNodeCli@{ProtoNodeCli}!cli\_\-process\_\-command@{cli\_\-process\_\-command}}
\index{cli\_\-process\_\-command@{cli\_\-process\_\-command}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{cli\_\-process\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::cli\_\-process\_\-command (
\begin{DoxyParamCaption}
\item[{const string \&}]{processor\_\-name, }
\item[{const string \&}]{cli\_\-term\_\-name, }
\item[{const uint32\_\-t \&}]{cli\_\-session\_\-id, }
\item[{const string \&}]{command\_\-name, }
\item[{const string \&}]{command\_\-args, }
\item[{string \&}]{ret\_\-processor\_\-name, }
\item[{string \&}]{ret\_\-cli\_\-term\_\-name, }
\item[{uint32\_\-t \&}]{ret\_\-cli\_\-session\_\-id, }
\item[{string \&}]{ret\_\-command\_\-output}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_a24e12509623583f2855d6fd3ca9d9855}


Process a CLI command. 

This method is invoked when \hyperlink{protocolthe-p}{the} CLI has detected a valid command has been entered, and that command has been installed by this node.


\begin{DoxyParams}{Parameters}
{\em processor\_\-name} & \hyperlink{protocolthe-p}{the} processor name for this command. \\
\hline
{\em cli\_\-term\_\-name} & \hyperlink{protocolthe-p}{the} terminal name \hyperlink{protocolthe-p}{the} command was entered from. \\
\hline
{\em cli\_\-session\_\-id} & \hyperlink{protocolthe-p}{the} CLI session ID \hyperlink{protocolthe-p}{the} command was entered from. \\
\hline
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to process. \\
\hline
{\em command\_\-args} & \hyperlink{protocolthe-p}{the} command arguments to process. \\
\hline
{\em ret\_\-processor\_\-name} & \hyperlink{protocolthe-p}{the} processor name to return back to \hyperlink{protocolthe-p}{the} CLI. \\
\hline
{\em ret\_\-cli\_\-term\_\-name} & \hyperlink{protocolthe-p}{the} terminal name to return back. \\
\hline
{\em ret\_\-cli\_\-session\_\-id} & \hyperlink{protocolthe-p}{the} CLI session ID to return back. \\
\hline
{\em ret\_\-command\_\-output} & \hyperlink{protocolthe-p}{the} command output to return back. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classProtoNodeCli_a9b9e4c42db2bfc0c03d70d3957ad0e8b}{
\index{ProtoNodeCli@{ProtoNodeCli}!delete\_\-all\_\-cli\_\-commands@{delete\_\-all\_\-cli\_\-commands}}
\index{delete\_\-all\_\-cli\_\-commands@{delete\_\-all\_\-cli\_\-commands}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{delete\_\-all\_\-cli\_\-commands}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::delete\_\-all\_\-cli\_\-commands (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_a9b9e4c42db2bfc0c03d70d3957ad0e8b}


Delete all CLI commands that were added by this node. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classProtoNodeCli_aa338d4f174fa49ad509417818aa6d20a}{
\index{ProtoNodeCli@{ProtoNodeCli}!delete\_\-cli\_\-command@{delete\_\-cli\_\-command}}
\index{delete\_\-cli\_\-command@{delete\_\-cli\_\-command}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{delete\_\-cli\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}int ProtoNodeCli::delete\_\-cli\_\-command (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{command\_\-name}
\end{DoxyParamCaption}
)}}
\label{classProtoNodeCli_aa338d4f174fa49ad509417818aa6d20a}


Delete a CLI command. 


\begin{DoxyParams}{Parameters}
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classProtoNodeCli_a4ec12bc88a4cac74cbb0bb7e73f344bc}{
\index{ProtoNodeCli@{ProtoNodeCli}!delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager@{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager}}
\index{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager@{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager}!ProtoNodeCli@{ProtoNodeCli}}
\subsubsection[{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager}]{\setlength{\rightskip}{0pt plus 5cm}virtual int ProtoNodeCli::delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{command\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classProtoNodeCli_a4ec12bc88a4cac74cbb0bb7e73f344bc}


Delete a CLI command from \hyperlink{protocolthe-p}{the} CLI manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} particular protocol node class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a344f5bc07eaae234d42c145145ff16f9}{XrlMld6igmpNode}, \hyperlink{classXrlMfeaNode_a7b6111dac3438577c9935c60b66773f0}{XrlMfeaNode}, \hyperlink{classXrlMld6igmpNode_a344f5bc07eaae234d42c145145ff16f9}{XrlMld6igmpNode}, and \hyperlink{classXrlPimNode_a9f3850ebe16e0d5ce43f82e24f66ed48}{XrlPimNode}.



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