\hypertarget{classTransactionOperation}{
\section{TransactionOperation Class Reference}
\label{classTransactionOperation}\index{TransactionOperation@{TransactionOperation}}
}


Base class for operations within a Transaction.  




{\ttfamily \#include $<$transaction.hh$>$}

Inheritance diagram for TransactionOperation:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.320988cm]{classTransactionOperation}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classTransactionOperation_ae3cbf7d88d76d4ef57a19f7def7c9310}{
virtual \hyperlink{classTransactionOperation_ae3cbf7d88d76d4ef57a19f7def7c9310}{$\sim$TransactionOperation} ()}
\label{classTransactionOperation_ae3cbf7d88d76d4ef57a19f7def7c9310}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
virtual bool \hyperlink{classTransactionOperation_af7bf9947f71a3aca9dcda09f5dec9037}{dispatch} ()=0
\begin{DoxyCompactList}\small\item\em Dispatch operation. \item\end{DoxyCompactList}\item 
virtual string \hyperlink{classTransactionOperation_a2cea2981f6150390f9223372b6e89194}{str} () const =0
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for operations within a Transaction. TransactionOperations when realized through derived classes are operations that can be held and dispatched at a later time. The \hyperlink{classTransactionManager}{TransactionManager} class is provided as a container for TransactionOperations.

NB \hyperlink{classTransactionOperation}{TransactionOperation} is analogous to \hyperlink{protocolthe-p}{the} \hyperlink{classCommand}{Command} pattern in \hyperlink{protocolthe-p}{the} BoF: Design Patterns , Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison Wesley, 1995, ISBN 0-\/201-\/63361-\/2. 

\subsection{Member Function Documentation}
\hypertarget{classTransactionOperation_af7bf9947f71a3aca9dcda09f5dec9037}{
\index{TransactionOperation@{TransactionOperation}!dispatch@{dispatch}}
\index{dispatch@{dispatch}!TransactionOperation@{TransactionOperation}}
\subsubsection[{dispatch}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool TransactionOperation::dispatch (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classTransactionOperation_af7bf9947f71a3aca9dcda09f5dec9037}


Dispatch operation. 

\begin{DoxyReturn}{Returns}
true on success, false on error. 
\end{DoxyReturn}


Implemented in \hyperlink{classFibAddEntry4_ae98ea395ebb5c5a7e6e722986ce73f63}{FibAddEntry4}, \hyperlink{classFibDeleteEntry4_aeacb65a55ab6336c91eb7918fddb3ef4}{FibDeleteEntry4}, \hyperlink{classFibDeleteAllEntries4_a64d3c51e79e147a426b88f372d768abc}{FibDeleteAllEntries4}, \hyperlink{classFibAddEntry6_a0f1e0552580c5faf8d6740ce7359c669}{FibAddEntry6}, \hyperlink{classFibDeleteEntry6_a8b703b6025505a908c5db23b8ab9a136}{FibDeleteEntry6}, \hyperlink{classFibDeleteAllEntries6_ab9ee910bccc13c1c2e0e836ad024574c}{FibDeleteAllEntries6}, \hyperlink{classFirewallAddEntry4_afc8a6428c30215316eb1239dc99602ed}{FirewallAddEntry4}, \hyperlink{classFirewallReplaceEntry4_a6d8988893533e01678491b645b8bbcda}{FirewallReplaceEntry4}, \hyperlink{classFirewallDeleteEntry4_a27c50494d9c4abfb6ce9f5d41510c408}{FirewallDeleteEntry4}, \hyperlink{classFirewallDeleteAllEntries4_a32867c6192885b3d5a27e3347c52a0a5}{FirewallDeleteAllEntries4}, \hyperlink{classFirewallAddEntry6_a1118b6b70dc998c45d8e94ac0467a6d9}{FirewallAddEntry6}, \hyperlink{classFirewallReplaceEntry6_aa6e87a4e70b0ca22429837015562365c}{FirewallReplaceEntry6}, \hyperlink{classFirewallDeleteEntry6_af3848cd8a61b4c9bc566577f75f22eca}{FirewallDeleteEntry6}, \hyperlink{classFirewallDeleteAllEntries6_a53521dacf8c96acd073fc73f5a40604f}{FirewallDeleteAllEntries6}, \hyperlink{classAddInterface_af1d20f63b5c684d2869249a9f359178c}{AddInterface}, \hyperlink{classRemoveInterface_a700ef56b0c3dd2f07f265aec73b2ed90}{RemoveInterface}, \hyperlink{classConfigureAllInterfacesFromSystem_adc67f2ad7a822581ab1e422bd1cf0c03}{ConfigureAllInterfacesFromSystem}, \hyperlink{classConfigureInterfaceFromSystem_a34c41fbaba4461bf4ce7d1017d7cd9fd}{ConfigureInterfaceFromSystem}, \hyperlink{classSetInterfaceEnabled_add34911bbf395dcc234ebaa4e8f768e0}{SetInterfaceEnabled}, \hyperlink{classSetInterfaceDiscard_a0751fb6359047d8723ec30bc096153c9}{SetInterfaceDiscard}, \hyperlink{classSetInterfaceUnreachable_ae50a0b9e9735c9d28d92d80fbd062e62}{SetInterfaceUnreachable}, \hyperlink{classSetInterfaceManagement_aa36c6f34f659911b37879b384a50a4e4}{SetInterfaceManagement}, \hyperlink{classSetInterfaceMtu_a318480f81e3c370292832cfda8a62d7d}{SetInterfaceMtu}, \hyperlink{classRestoreInterfaceMtu_a32d8a429fb814df3a48d8b5906a763b1}{RestoreInterfaceMtu}, \hyperlink{classSetInterfaceMac_acc6d3c65b170bba564c0e49217e0ff2a}{SetInterfaceMac}, \hyperlink{classRestoreInterfaceMac_a8fc528898743407f471fa1403b922588}{RestoreInterfaceMac}, \hyperlink{classAddInterfaceVif_a44f7202fa40e8819f7d0db424f094fa3}{AddInterfaceVif}, \hyperlink{classRemoveInterfaceVif_acd8ee09d2c474e062c0c1a14fbeea25b}{RemoveInterfaceVif}, \hyperlink{classSetIfString_ac23088f6c8b99302b85579826a7a21db}{SetIfString}, \hyperlink{classSetVifEnabled_a6117a6c9d56bd2942005efbd8141ee92}{SetVifEnabled}, \hyperlink{classAddAddr4_a338ac0b5bf736236af7f5f5eb327d1b1}{AddAddr4}, \hyperlink{classRemoveAddr4_a0d3bea35dac5fd11a37559abafa5f7f0}{RemoveAddr4}, \hyperlink{classAddAddr6_ab5991463c54bea9ad8f303b5b26ba00c}{AddAddr6}, \hyperlink{classRemoveAddr6_a7bfc2b9b9be847df586a8c17c63560fe}{RemoveAddr6}, \hyperlink{classSetAddr4Enabled_a959d7b3f87a73c0f47e02215e7fe9ce3}{SetAddr4Enabled}, \hyperlink{classSetAddr4Prefix_a284f16e5d1ad283cfb81d1ad851b4c90}{SetAddr4Prefix}, \hyperlink{classSetAddr4Endpoint_ac8db34a45a956f9bfab8da84469a13fc}{SetAddr4Endpoint}, \hyperlink{classSetAddr4Broadcast_a3ea0bfa67b8f86937ddef988a63730a7}{SetAddr4Broadcast}, \hyperlink{classSetAddr6Enabled_a72a688a9fd1815201ac2cb8cb765034a}{SetAddr6Enabled}, \hyperlink{classSetAddr6Prefix_aab273026a60098cd43927b4be7ec7ed6}{SetAddr6Prefix}, and \hyperlink{classSetAddr6Endpoint_a6b2792ae37f47112099583fc74897137}{SetAddr6Endpoint}.

\hypertarget{classTransactionOperation_a2cea2981f6150390f9223372b6e89194}{
\index{TransactionOperation@{TransactionOperation}!str@{str}}
\index{str@{str}!TransactionOperation@{TransactionOperation}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}virtual string TransactionOperation::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classTransactionOperation_a2cea2981f6150390f9223372b6e89194}
\begin{DoxyReturn}{Returns}
string representation of operation. 
\end{DoxyReturn}


Implemented in \hyperlink{classFibAddEntry4_a7192b7eab1d3d82fcace2c1f77b722b2}{FibAddEntry4}, \hyperlink{classFibDeleteEntry4_a8d23a83bfde21632fcb89a2fad9b818e}{FibDeleteEntry4}, \hyperlink{classFibDeleteAllEntries4_a853873809b8c819afb63e1542f3908dc}{FibDeleteAllEntries4}, \hyperlink{classFibAddEntry6_a8e7d6c3e3be44c0091029117f4e338d4}{FibAddEntry6}, \hyperlink{classFibDeleteEntry6_aac8bd1bcd096b76c758ff1043971389e}{FibDeleteEntry6}, \hyperlink{classFibDeleteAllEntries6_aaf0c55900eccc77595698e43332de828}{FibDeleteAllEntries6}, \hyperlink{classFirewallAddEntry4_a4c25b73684cd54e73e3a73bc8f4ee585}{FirewallAddEntry4}, \hyperlink{classFirewallReplaceEntry4_a719d374be9f115888baac5d638ef1faf}{FirewallReplaceEntry4}, \hyperlink{classFirewallDeleteEntry4_aeefad69bbc9faf22caa429b9e60c4909}{FirewallDeleteEntry4}, \hyperlink{classFirewallDeleteAllEntries4_a8d4b568e6297062ce709c0aa4217dadb}{FirewallDeleteAllEntries4}, \hyperlink{classFirewallAddEntry6_a095af2a9b6d21eed2abf5267ed18540a}{FirewallAddEntry6}, \hyperlink{classFirewallReplaceEntry6_a76188a76dc2be87029404808fa754c9e}{FirewallReplaceEntry6}, \hyperlink{classFirewallDeleteEntry6_a8b5e6f00fa190065da80aa68096669da}{FirewallDeleteEntry6}, \hyperlink{classFirewallDeleteAllEntries6_ab109049b8269d846f088c3bf5ed9099c}{FirewallDeleteAllEntries6}, \hyperlink{classAddInterface_aee895c67632be55fbab06a6eb872c9f7}{AddInterface}, \hyperlink{classRemoveInterface_affc06e75f27b31686e25633687f8fd3f}{RemoveInterface}, \hyperlink{classConfigureAllInterfacesFromSystem_adb9d06d589640b02b695f0d0fc7e941a}{ConfigureAllInterfacesFromSystem}, \hyperlink{classConfigureInterfaceFromSystem_ad2b03ac0484842529224b746eca10bb4}{ConfigureInterfaceFromSystem}, \hyperlink{classSetInterfaceEnabled_a729c1de88b4952bf8ce3b96419d38fb7}{SetInterfaceEnabled}, \hyperlink{classSetInterfaceDiscard_a5cc5cdaf20d72eb1b20b554448e19632}{SetInterfaceDiscard}, \hyperlink{classSetInterfaceUnreachable_ab51f8afa4d984e5b58de1b6582c8a1d8}{SetInterfaceUnreachable}, \hyperlink{classSetInterfaceManagement_ad69d2cb1972ced61c011efdf1dca83ef}{SetInterfaceManagement}, \hyperlink{classSetInterfaceMtu_ac3025d1bc947f74f7927888598259fee}{SetInterfaceMtu}, \hyperlink{classRestoreInterfaceMtu_a8d6afd994bd0fc4bc8d5cbb9b092e890}{RestoreInterfaceMtu}, \hyperlink{classSetInterfaceMac_a67ba2e7543db6dad823357e01100be98}{SetInterfaceMac}, \hyperlink{classRestoreInterfaceMac_abec1a4495e737452f5628ef80931b2a7}{RestoreInterfaceMac}, \hyperlink{classAddInterfaceVif_ad9127ee8228aa7a81398a33367710c2f}{AddInterfaceVif}, \hyperlink{classRemoveInterfaceVif_ad058b168ac6a41474cd30b7289077318}{RemoveInterfaceVif}, \hyperlink{classSetIfString_abaf9f978da369d0ffd3aedfb923d1e04}{SetIfString}, \hyperlink{classSetVifEnabled_a706fe667fdec1d87803d034056d46c27}{SetVifEnabled}, \hyperlink{classAddAddr4_ad10179dbb9f3bd0fbd4b43fc91d8c210}{AddAddr4}, \hyperlink{classRemoveAddr4_a998a1427065feb8f3be022c2cf5cf22f}{RemoveAddr4}, \hyperlink{classAddAddr6_a734bf20cc600a066978d670750ad0cb5}{AddAddr6}, \hyperlink{classRemoveAddr6_abe1213e81c0e7262598f17541d1a5df9}{RemoveAddr6}, \hyperlink{classSetAddr4Enabled_ae1256e0c10f371a655cefc21701774f4}{SetAddr4Enabled}, \hyperlink{classSetAddr4Prefix_aee57b5d0fb1a88e2d157b264763f26d3}{SetAddr4Prefix}, \hyperlink{classSetAddr4Endpoint_a16d2dbd315bebf50e854dacfb2677f9c}{SetAddr4Endpoint}, \hyperlink{classSetAddr4Broadcast_a4540b2ce302b0726c7e6612b66f90ca1}{SetAddr4Broadcast}, \hyperlink{classSetAddr6Enabled_a04073eef2c3e4fd97a17517bb953afab}{SetAddr6Enabled}, \hyperlink{classSetAddr6Prefix_aa1d495ecbf465b1bb6f778e9323deb97}{SetAddr6Prefix}, and \hyperlink{classSetAddr6Endpoint_a7f90ad8cafab7a99e688dce67882da0c}{SetAddr6Endpoint}.



The documentation for this class was generated from the following file:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/transaction.hh\end{DoxyCompactItemize}
