\section{cppcms\+:\+:sessions\+:\+:session\+\_\+dual Class Reference}
\label{classcppcms_1_1sessions_1_1session__dual}\index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}


Client and Server side storage implementation of \doxyref{session\+\_\+api}{p.}{classcppcms_1_1session__api}.  




{\ttfamily \#include $<$cppcms/session\+\_\+dual.\+h$>$}

Inheritance diagram for cppcms\+:\+:sessions\+:\+:session\+\_\+dual\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classcppcms_1_1sessions_1_1session__dual}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf session\+\_\+dual} (std\+::auto\+\_\+ptr$<$ {\bf encryptor} $>$ enc, {\bf booster\+::shared\+\_\+ptr}$<$ {\bf session\+\_\+storage} $>$ storage, size\+\_\+t data\+\_\+size\+\_\+limit)
\item 
virtual {\bf $\sim$session\+\_\+dual} ()
\item 
virtual void {\bf save} ({\bf session\+\_\+interface} \&, std\+::string const \&data, time\+\_\+t timeout, bool new\+\_\+session, bool on\+\_\+server)
\item 
virtual bool {\bf load} ({\bf session\+\_\+interface} \&, std\+::string \&data, time\+\_\+t \&timeout)
\item 
virtual void {\bf clear} ({\bf session\+\_\+interface} \&)
\item 
virtual bool {\bf is\+\_\+blocking} ()
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Client and Server side storage implementation of \doxyref{session\+\_\+api}{p.}{classcppcms_1_1session__api}. 

\subsection{Constructor \& Destructor Documentation}
\index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}!session\+\_\+dual@{session\+\_\+dual}}
\index{session\+\_\+dual@{session\+\_\+dual}!cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}
\subsubsection[{session\+\_\+dual(std\+::auto\+\_\+ptr$<$ encryptor $>$ enc, booster\+::shared\+\_\+ptr$<$ session\+\_\+storage $>$ storage, size\+\_\+t data\+\_\+size\+\_\+limit)}]{\setlength{\rightskip}{0pt plus 5cm}cppcms\+::sessions\+::session\+\_\+dual\+::session\+\_\+dual (
\begin{DoxyParamCaption}
\item[{std\+::auto\+\_\+ptr$<$ {\bf encryptor} $>$}]{enc, }
\item[{{\bf booster\+::shared\+\_\+ptr}$<$ {\bf session\+\_\+storage} $>$}]{storage, }
\item[{size\+\_\+t}]{data\+\_\+size\+\_\+limit}
\end{DoxyParamCaption}
)}\label{classcppcms_1_1sessions_1_1session__dual_a4994c2633446444172072560d9badc30}
Create a new object using encryptor {\itshape enc} and \doxyref{session\+\_\+storage}{p.}{classcppcms_1_1sessions_1_1session__storage} {\itshape storage}. {\itshape data\+\_\+size\+\_\+limit} represents the maximal data size that can be stored on client side, if the data size is bigger then that the session data will be stored on server \index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}!````~session\+\_\+dual@{$\sim$session\+\_\+dual}}
\index{````~session\+\_\+dual@{$\sim$session\+\_\+dual}!cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}
\subsubsection[{$\sim$session\+\_\+dual()}]{\setlength{\rightskip}{0pt plus 5cm}virtual cppcms\+::sessions\+::session\+\_\+dual\+::$\sim$session\+\_\+dual (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classcppcms_1_1sessions_1_1session__dual_ab94a395e366694cca35ed82d678e839a}
Destroy the object\+: release pointer to {\itshape storage} and delete an encryptor it was created with. 

\subsection{Member Function Documentation}
\index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}!clear@{clear}}
\index{clear@{clear}!cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}
\subsubsection[{clear(session\+\_\+interface \&)}]{\setlength{\rightskip}{0pt plus 5cm}virtual void cppcms\+::sessions\+::session\+\_\+dual\+::clear (
\begin{DoxyParamCaption}
\item[{{\bf session\+\_\+interface} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classcppcms_1_1sessions_1_1session__dual_a5dd7ec9523785c68a07050ba1235c73c}
See \doxyref{session\+\_\+api\+::clear}{p.}{classcppcms_1_1session__api_ab755441f1f95bf01d138560d9fb68bca} 

Implements {\bf cppcms\+::session\+\_\+api} \doxyref{}{p.}{classcppcms_1_1session__api_ab755441f1f95bf01d138560d9fb68bca}.

\index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}!is\+\_\+blocking@{is\+\_\+blocking}}
\index{is\+\_\+blocking@{is\+\_\+blocking}!cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}
\subsubsection[{is\+\_\+blocking()}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool cppcms\+::sessions\+::session\+\_\+dual\+::is\+\_\+blocking (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classcppcms_1_1sessions_1_1session__dual_a0599c839c6815015277be36cd061b826}
see \doxyref{session\+\_\+api\+::is\+\_\+blocking}{p.}{classcppcms_1_1session__api_ac110761dd1b104702a8863221716547d} 

Implements {\bf cppcms\+::session\+\_\+api} \doxyref{}{p.}{classcppcms_1_1session__api_ac110761dd1b104702a8863221716547d}.

\index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}!load@{load}}
\index{load@{load}!cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}
\subsubsection[{load(session\+\_\+interface \&, std\+::string \&data, time\+\_\+t \&timeout)}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool cppcms\+::sessions\+::session\+\_\+dual\+::load (
\begin{DoxyParamCaption}
\item[{{\bf session\+\_\+interface} \&}]{, }
\item[{std\+::string \&}]{data, }
\item[{time\+\_\+t \&}]{timeout}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classcppcms_1_1sessions_1_1session__dual_a2cfb3baf2a5c031eb307cd12f386f886}
See \doxyref{session\+\_\+api\+::load}{p.}{classcppcms_1_1session__api_a6fad2ca45e09b43c9eae519f38888611} 

Implements {\bf cppcms\+::session\+\_\+api} \doxyref{}{p.}{classcppcms_1_1session__api_a6fad2ca45e09b43c9eae519f38888611}.

\index{cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}!save@{save}}
\index{save@{save}!cppcms\+::sessions\+::session\+\_\+dual@{cppcms\+::sessions\+::session\+\_\+dual}}
\subsubsection[{save(session\+\_\+interface \&, std\+::string const \&data, time\+\_\+t timeout, bool new\+\_\+session, bool on\+\_\+server)}]{\setlength{\rightskip}{0pt plus 5cm}virtual void cppcms\+::sessions\+::session\+\_\+dual\+::save (
\begin{DoxyParamCaption}
\item[{{\bf session\+\_\+interface} \&}]{, }
\item[{std\+::string const \&}]{data, }
\item[{time\+\_\+t}]{timeout, }
\item[{bool}]{new\+\_\+session, }
\item[{bool}]{on\+\_\+server}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classcppcms_1_1sessions_1_1session__dual_a17e40652c13b789101ed01c16026ae61}
See \doxyref{session\+\_\+api\+::save}{p.}{classcppcms_1_1session__api_a9388c15001d0e55d31b6d54c9a1edca0} 

Implements {\bf cppcms\+::session\+\_\+api} \doxyref{}{p.}{classcppcms_1_1session__api_a9388c15001d0e55d31b6d54c9a1edca0}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
cppcms/session\+\_\+dual.\+h\end{DoxyCompactItemize}
