\hypertarget{classkdb_1_1tools_1_1merging_1_1MergingKDB}{}\section{kdb\+:\+:tools\+:\+:merging\+:\+:Merging\+K\+DB Class Reference}
\label{classkdb_1_1tools_1_1merging_1_1MergingKDB}\index{kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}}


Provides a merging wrapper around a \hyperlink{classkdb_1_1KDB}{K\+DB} instance.  




{\ttfamily \#include $<$mergingkdb.\+hpp$>$}



Inheritance diagram for kdb\+:\+:tools\+:\+:merging\+:\+:Merging\+K\+DB\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=180pt]{classkdb_1_1tools_1_1merging_1_1MergingKDB__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for kdb\+:\+:tools\+:\+:merging\+:\+:Merging\+K\+DB\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=180pt]{classkdb_1_1tools_1_1merging_1_1MergingKDB__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{classkdb_1_1tools_1_1merging_1_1MergingKDB_a0d2a28f24aeb6ba3e81af73ef8b98df7}{get} (\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&returned, std\+::string const \&keyname) override
\begin{DoxyCompactList}\small\item\em Behaves like the \hyperlink{classkdb_1_1KDB}{K\+DB} get function. \end{DoxyCompactList}\item 
int \hyperlink{classkdb_1_1tools_1_1merging_1_1MergingKDB_a062b1dac733aa3999691f8d70635b09c}{get} (\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&returned, \hyperlink{classkdb_1_1Key}{Key} \&parent\+Key) override
\begin{DoxyCompactList}\small\item\em Behaves like the \hyperlink{classkdb_1_1KDB}{K\+DB} get function. \end{DoxyCompactList}\item 
virtual int \hyperlink{classkdb_1_1tools_1_1merging_1_1MergingKDB_ae7fb5bd354d16ed90bbf0c4c087b5d6f}{synchronize} (\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&returned, std\+::string const \&keyname, Three\+Way\+Merge \&merger)
\begin{DoxyCompactList}\small\item\em Synchronizes the file with the supplied \hyperlink{classkdb_1_1KeySet}{Key\+Set}. \end{DoxyCompactList}\item 
virtual int \hyperlink{classkdb_1_1tools_1_1merging_1_1MergingKDB_adcb436c4bf35c89c67ae2f5b3f1a9cfd}{synchronize} (\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&returned, \hyperlink{classkdb_1_1Key}{Key} \&parent\+Key, Three\+Way\+Merge \&merger)
\begin{DoxyCompactList}\small\item\em If a conflict occurs during set, the supplied merger is used to resolve the conflict. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Provides a merging wrapper around a \hyperlink{classkdb_1_1KDB}{K\+DB} instance. 

The wrapper allows to pass a three way merger instance that is used to resolve conflicts during \hyperlink{classkdb_1_1KDB}{K\+DB} set. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{classkdb_1_1tools_1_1merging_1_1MergingKDB_a0d2a28f24aeb6ba3e81af73ef8b98df7}\label{classkdb_1_1tools_1_1merging_1_1MergingKDB_a0d2a28f24aeb6ba3e81af73ef8b98df7}} 
\index{kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}!get@{get}}
\index{get@{get}!kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}}
\subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily int kdb\+::tools\+::merging\+::\+Merging\+K\+D\+B\+::get (\begin{DoxyParamCaption}\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&}]{returned,  }\item[{std\+::string const \&}]{keyname }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Behaves like the \hyperlink{classkdb_1_1KDB}{K\+DB} get function. 

\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1KDB}{K\+DB} 
\end{DoxySeeAlso}


Reimplemented from \hyperlink{classkdb_1_1KDB_a0419ffbc273c89756bc523b4223ec25a}{kdb\+::\+K\+DB}.

\mbox{\Hypertarget{classkdb_1_1tools_1_1merging_1_1MergingKDB_a062b1dac733aa3999691f8d70635b09c}\label{classkdb_1_1tools_1_1merging_1_1MergingKDB_a062b1dac733aa3999691f8d70635b09c}} 
\index{kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}!get@{get}}
\index{get@{get}!kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}}
\subsubsection{\texorpdfstring{get()}{get()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily int kdb\+::tools\+::merging\+::\+Merging\+K\+D\+B\+::get (\begin{DoxyParamCaption}\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&}]{returned,  }\item[{\hyperlink{classkdb_1_1Key}{Key} \&}]{parent\+Key }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Behaves like the \hyperlink{classkdb_1_1KDB}{K\+DB} get function. 

\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1KDB}{K\+DB} 
\end{DoxySeeAlso}


Reimplemented from \hyperlink{classkdb_1_1KDB_a48770a7290699bf2b7529f3ab67e378f}{kdb\+::\+K\+DB}.

\mbox{\Hypertarget{classkdb_1_1tools_1_1merging_1_1MergingKDB_ae7fb5bd354d16ed90bbf0c4c087b5d6f}\label{classkdb_1_1tools_1_1merging_1_1MergingKDB_ae7fb5bd354d16ed90bbf0c4c087b5d6f}} 
\index{kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}!synchronize@{synchronize}}
\index{synchronize@{synchronize}!kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}}
\subsubsection{\texorpdfstring{synchronize()}{synchronize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily int kdb\+::tools\+::merging\+::\+Merging\+K\+D\+B\+::synchronize (\begin{DoxyParamCaption}\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&}]{returned,  }\item[{std\+::string const \&}]{keyname,  }\item[{Three\+Way\+Merge \&}]{merger }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Synchronizes the file with the supplied \hyperlink{classkdb_1_1KeySet}{Key\+Set}. 

If a conflict occurs during set, the supplied merger is used to resolve the conflict. If the conflict cannot be solved, an exception is thrown. If the \hyperlink{classkdb_1_1KeySet}{Key\+Set} was successfully written (either by merging or due the absence of a conflict) the supplied \hyperlink{classkdb_1_1KeySet}{Key\+Set} is updated with the new content of the file.

\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1KDB}{K\+DB} 
\end{DoxySeeAlso}

\begin{DoxyExceptions}{Exceptions}
{\em Merging\+K\+D\+B\+Exception} & \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{classkdb_1_1tools_1_1merging_1_1MergingKDB_adcb436c4bf35c89c67ae2f5b3f1a9cfd}\label{classkdb_1_1tools_1_1merging_1_1MergingKDB_adcb436c4bf35c89c67ae2f5b3f1a9cfd}} 
\index{kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}!synchronize@{synchronize}}
\index{synchronize@{synchronize}!kdb\+::tools\+::merging\+::\+Merging\+K\+DB@{kdb\+::tools\+::merging\+::\+Merging\+K\+DB}}
\subsubsection{\texorpdfstring{synchronize()}{synchronize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily int kdb\+::tools\+::merging\+::\+Merging\+K\+D\+B\+::synchronize (\begin{DoxyParamCaption}\item[{\hyperlink{classkdb_1_1KeySet}{Key\+Set} \&}]{returned,  }\item[{\hyperlink{classkdb_1_1Key}{Key} \&}]{parent\+Key,  }\item[{Three\+Way\+Merge \&}]{merger }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



If a conflict occurs during set, the supplied merger is used to resolve the conflict. 

If the conflict cannot be solved, an exception is thrown. If the \hyperlink{classkdb_1_1KeySet}{Key\+Set} was successfully written (either by merging or due the absence of a conflict) the supplied \hyperlink{classkdb_1_1KeySet}{Key\+Set} is updated with the new content of the file.

\begin{DoxySeeAlso}{See also}
\hyperlink{classkdb_1_1KDB}{K\+DB} 
\end{DoxySeeAlso}

\begin{DoxyExceptions}{Exceptions}
{\em Merging\+K\+D\+B\+Exception} & \\
\hline
\end{DoxyExceptions}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{mergingkdb_8hpp}{mergingkdb.\+hpp}\item 
\hyperlink{mergingkdb_8cpp}{mergingkdb.\+cpp}\end{DoxyCompactItemize}
