\doxysection{vty\+\_\+app\+\_\+info Struct Reference}
\label{structvty__app__info}\index{vty\_app\_info@{vty\_app\_info}}


Information an application registers with the VTY.  




{\ttfamily \#include $<$vty.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \textbf{ name}
\begin{DoxyCompactList}\small\item\em name of the application \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ version}
\begin{DoxyCompactList}\small\item\em version string of the application \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ copyright}
\begin{DoxyCompactList}\small\item\em copyright string of the application \end{DoxyCompactList}\item 
void $\ast$ \textbf{ tall\+\_\+ctx}
\begin{DoxyCompactList}\small\item\em talloc context \end{DoxyCompactList}\item 
int($\ast$ \textbf{ go\+\_\+parent\+\_\+cb} )(struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Call-\/back for taking actions upon exiting a node. \end{DoxyCompactList}\item 
int($\ast$ \textbf{ is\+\_\+config\+\_\+node} )(struct \textbf{ vty} $\ast$\textbf{ vty}, int \textbf{ node}) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}Implicit parent \textbf{ node} tracking has replaced the use of this callback. This callback is\char`\"{} \char`\"{} no longer called
\begin{DoxyCompactList}\small\item\em OBSOLETED\+: Implicit parent node tracking has replaced the use of this callback. \end{DoxyCompactList}\item 
int($\ast$ \textbf{ ever} )
\item 
int($\ast$) and can be lef \textbf{ NULL} )
\item 
int($\ast$ \textbf{ config\+\_\+is\+\_\+consistent} )(struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Check if the config is consistent before write. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ usr\+\_\+attr\+\_\+desc} [\textbf{ VTY\+\_\+\+CMD\+\_\+\+USR\+\_\+\+ATTR\+\_\+\+NUM}]
\begin{DoxyCompactList}\small\item\em Description of the application specific VTY attributes (optional). \end{DoxyCompactList}\item 
char \textbf{ usr\+\_\+attr\+\_\+letters} [\textbf{ VTY\+\_\+\+CMD\+\_\+\+USR\+\_\+\+ATTR\+\_\+\+NUM}]
\begin{DoxyCompactList}\small\item\em Flag letters of the application specific VTY attributes (optional). \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Information an application registers with the VTY. 

\doxysubsection{Field Documentation}
\mbox{\label{structvty__app__info_a134f0656bbdd82e4ef1e1eeddb6ae866}} 
\index{vty\_app\_info@{vty\_app\_info}!config\_is\_consistent@{config\_is\_consistent}}
\index{config\_is\_consistent@{config\_is\_consistent}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{config\_is\_consistent}
{\footnotesize\ttfamily int($\ast$ vty\+\_\+app\+\_\+info\+::config\+\_\+is\+\_\+consistent) (struct \textbf{ vty} $\ast$\textbf{ vty})}



Check if the config is consistent before write. 



Referenced by \textbf{ DEFUN()}.

\mbox{\label{structvty__app__info_a86e90865a3afb26293c5c8fe9fc7850d}} 
\index{vty\_app\_info@{vty\_app\_info}!copyright@{copyright}}
\index{copyright@{copyright}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{copyright}
{\footnotesize\ttfamily const char$\ast$ vty\+\_\+app\+\_\+info\+::copyright}



copyright string of the application 



Referenced by \textbf{ DEFUN()}, \textbf{ print\+\_\+version()}, and \textbf{ vty\+\_\+hello()}.

\mbox{\label{structvty__app__info_a3dc9d0cd69b09c5b87b91885fd454a5b}} 
\index{vty\_app\_info@{vty\_app\_info}!ever@{ever}}
\index{ever@{ever}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{ever}
{\footnotesize\ttfamily int($\ast$ vty\+\_\+app\+\_\+info\+::ever) }

\mbox{\label{structvty__app__info_aa3baf69fe50725ad1b431f12daa8c152}} 
\index{vty\_app\_info@{vty\_app\_info}!go\_parent\_cb@{go\_parent\_cb}}
\index{go\_parent\_cb@{go\_parent\_cb}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{go\_parent\_cb}
{\footnotesize\ttfamily int($\ast$ vty\+\_\+app\+\_\+info\+::go\+\_\+parent\+\_\+cb) (struct \textbf{ vty} $\ast$\textbf{ vty})}



Call-\/back for taking actions upon exiting a node. 

The return value is ignored, and changes to vty-\/$>$node and vty-\/$>$index made in this callback are ignored. Implicit parent node tracking always sets the correct parent node and vty-\/$>$index after this callback exits, so this callback can handle only those nodes that should take specific actions upon node exit, or can be left NULL entirely. 

Referenced by \textbf{ vty\+\_\+go\+\_\+parent()}.

\mbox{\label{structvty__app__info_ac4e52898f43720970f50ab583a741829}} 
\index{vty\_app\_info@{vty\_app\_info}!is\_config\_node@{is\_config\_node}}
\index{is\_config\_node@{is\_config\_node}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{is\_config\_node}
{\footnotesize\ttfamily int($\ast$ vty\+\_\+app\+\_\+info\+::is\+\_\+config\+\_\+node) (struct \textbf{ vty} $\ast$\textbf{ vty}, int \textbf{ node}) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}Implicit parent \textbf{ node} tracking has replaced the use of this callback. This callback is\char`\"{} \char`\"{} no longer called}



OBSOLETED\+: Implicit parent node tracking has replaced the use of this callback. 

This callback is no longer called, ever, and can be left NULL. \mbox{\label{structvty__app__info_a45b1d188840a790cd43d41c8c15e069e}} 
\index{vty\_app\_info@{vty\_app\_info}!name@{name}}
\index{name@{name}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{name}
{\footnotesize\ttfamily const char$\ast$ vty\+\_\+app\+\_\+info\+::name}



name of the application 



Referenced by \textbf{ DEFUN()}, \textbf{ print\+\_\+version()}, \textbf{ vty\+\_\+hello()}, \textbf{ vty\+\_\+prompt()}, and \textbf{ write\+\_\+config\+\_\+file()}.

\mbox{\label{structvty__app__info_ab125c51b5da31d50c42706695c5f68de}} 
\index{vty\_app\_info@{vty\_app\_info}!NULL@{NULL}}
\index{NULL@{NULL}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{NULL}
{\footnotesize\ttfamily int($\ast$) and can be lef vty\+\_\+app\+\_\+info\+::\+NULL) }

\mbox{\label{structvty__app__info_aabbb04e500d552c0b8c9db6c76acac59}} 
\index{vty\_app\_info@{vty\_app\_info}!tall\_ctx@{tall\_ctx}}
\index{tall\_ctx@{tall\_ctx}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{tall\_ctx}
{\footnotesize\ttfamily void$\ast$ vty\+\_\+app\+\_\+info\+::tall\+\_\+ctx}



talloc context 



Referenced by \textbf{ talloc\+\_\+ctx\+\_\+walk()}.

\mbox{\label{structvty__app__info_a9c2038e2ca7747e28e8220b03e844723}} 
\index{vty\_app\_info@{vty\_app\_info}!usr\_attr\_desc@{usr\_attr\_desc}}
\index{usr\_attr\_desc@{usr\_attr\_desc}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{usr\_attr\_desc}
{\footnotesize\ttfamily const char$\ast$ vty\+\_\+app\+\_\+info\+::usr\+\_\+attr\+\_\+desc[\textbf{ VTY\+\_\+\+CMD\+\_\+\+USR\+\_\+\+ATTR\+\_\+\+NUM}]}



Description of the application specific VTY attributes (optional). 



Referenced by \textbf{ print\+\_\+attr\+\_\+list()}, and \textbf{ vty\+\_\+dump\+\_\+element()}.

\mbox{\label{structvty__app__info_a6f220824c916ccd07810348617b60de4}} 
\index{vty\_app\_info@{vty\_app\_info}!usr\_attr\_letters@{usr\_attr\_letters}}
\index{usr\_attr\_letters@{usr\_attr\_letters}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{usr\_attr\_letters}
{\footnotesize\ttfamily char vty\+\_\+app\+\_\+info\+::usr\+\_\+attr\+\_\+letters[\textbf{ VTY\+\_\+\+CMD\+\_\+\+USR\+\_\+\+ATTR\+\_\+\+NUM}]}



Flag letters of the application specific VTY attributes (optional). 



Referenced by \textbf{ cmd\+\_\+flag\+\_\+mask()}, \textbf{ node\+\_\+flag\+\_\+mask()}, \textbf{ print\+\_\+attr\+\_\+list()}, \textbf{ vty\+\_\+dump\+\_\+element()}, and \textbf{ vty\+\_\+init()}.

\mbox{\label{structvty__app__info_a1ae4f44208fdeb19978567046b8228cc}} 
\index{vty\_app\_info@{vty\_app\_info}!version@{version}}
\index{version@{version}!vty\_app\_info@{vty\_app\_info}}
\doxysubsubsection{version}
{\footnotesize\ttfamily const char$\ast$ vty\+\_\+app\+\_\+info\+::version}



version string of the application 



Referenced by \textbf{ DEFUN()}, \textbf{ print\+\_\+version()}, and \textbf{ write\+\_\+config\+\_\+file()}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/osmocom/vty/\textbf{ vty.\+h}\end{DoxyCompactItemize}
