\hypertarget{classCallbackSafeObject}{
\section{CallbackSafeObject Class Reference}
\label{classCallbackSafeObject}\index{CallbackSafeObject@{CallbackSafeObject}}
}


Base class for objects that are callback safe.  




{\ttfamily \#include $<$safe\_\-callback\_\-obj.hh$>$}

Inheritance diagram for CallbackSafeObject:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.800376cm]{classCallbackSafeObject}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classCallbackSafeObject_a58503be29bfb7113fc2ba5354a97ecf1}{
void {\bfseries ref\_\-cb} (\hyperlink{classSafeCallbackBase}{SafeCallbackBase} $\ast$scb)}
\label{classCallbackSafeObject_a58503be29bfb7113fc2ba5354a97ecf1}

\item 
\hypertarget{classCallbackSafeObject_a0eee6cb8a139462f364a1d0ada75b23c}{
void {\bfseries unref\_\-cb} (\hyperlink{classSafeCallbackBase}{SafeCallbackBase} $\ast$scb)}
\label{classCallbackSafeObject_a0eee6cb8a139462f364a1d0ada75b23c}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classCallbackSafeObject_af2214fe13ded79e33ce2211e14a1c23a}{
vector$<$ \hyperlink{classSafeCallbackBase}{SafeCallbackBase} $\ast$ $>$ {\bfseries \_\-cbs}}
\label{classCallbackSafeObject_af2214fe13ded79e33ce2211e14a1c23a}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for objects that are callback safe. Objects that wish to be callback safe should be derived from this class. The class works in conjunction with \hyperlink{classSafeCallbackBase}{SafeCallbackBase} and between them implement callback and callback-\/object tracking. When a \hyperlink{classCallbackSafeObject}{CallbackSafeObject} is destructed it informs all \hyperlink{protocolthe-p}{the} callbacks that refer to it that this is \hyperlink{protocolthe-p}{the} case and invalidates (sets to null) \hyperlink{protocolthe-p}{the} object they point to.

Copy operations are not supported. It's hard to know what \hyperlink{protocolthe-p}{the} correct thing to do on assignment or copy, so best bet is not to do anything. 

The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/safe\_\-callback\_\-obj.hh\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/safe\_\-callback\_\-obj.cc\end{DoxyCompactItemize}
