\hypertarget{classGpgFrontend_1_1SingletonFunctionObject}{}\doxysection{Gpg\+Frontend\+::Singleton\+Function\+Object$<$ T $>$ Class Template Reference}
\label{classGpgFrontend_1_1SingletonFunctionObject}\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}


{\ttfamily \#include $<$Gpg\+Function\+Object.\+h$>$}



Inheritance diagram for Gpg\+Frontend\+::Singleton\+Function\+Object$<$ T $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classGpgFrontend_1_1SingletonFunctionObject__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for Gpg\+Frontend\+::Singleton\+Function\+Object$<$ T $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=252pt]{classGpgFrontend_1_1SingletonFunctionObject__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a194e49b07d46345bdad386505d743a61}\label{classGpgFrontend_1_1SingletonFunctionObject_a194e49b07d46345bdad386505d743a61}} 
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a194e49b07d46345bdad386505d743a61}{Singleton\+Function\+Object}} (const \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}}$<$ T $>$ \&)=delete
\begin{DoxyCompactList}\small\item\em prohibit copy \end{DoxyCompactList}\item 
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}} \& \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_aabb190a60f7a5d4ded43cae16ab8f59e}{operator=}} (const \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}}$<$ T $>$ \&)=delete
\begin{DoxyCompactList}\small\item\em prohibit copy \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_aa99440b9177f5d0c18840f08a40d64b7}{Get\+Channel}} () const
\begin{DoxyCompactList}\small\item\em Get the Channel object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_aabc5fe8e5a372ac276a265286457cb9a}\label{classGpgFrontend_1_1SingletonFunctionObject_aabc5fe8e5a372ac276a265286457cb9a}} 
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_aabc5fe8e5a372ac276a265286457cb9a}{Singleton\+Function\+Object}} (T \&\&)=delete
\begin{DoxyCompactList}\small\item\em Construct a new Singleton Function Object object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a7090636bed6f4bad5b99f28f6872c645}\label{classGpgFrontend_1_1SingletonFunctionObject_a7090636bed6f4bad5b99f28f6872c645}} 
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a7090636bed6f4bad5b99f28f6872c645}{Singleton\+Function\+Object}} (const T \&)=delete
\begin{DoxyCompactList}\small\item\em Construct a new Singleton Function Object object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a03ce3095a745ecbf5e6a032e7da4bc97}\label{classGpgFrontend_1_1SingletonFunctionObject_a03ce3095a745ecbf5e6a032e7da4bc97}} 
void {\bfseries operator=} (const T \&)=delete
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static T \& \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a70484d7cfe9f9dcbcd5f8bb749250f36}{Get\+Instance}} (int channel=Gpg\+Frontend\+::\+GPGFRONTEND\+\_\+\+DEFAULT\+\_\+\+CHANNEL)
\begin{DoxyCompactList}\small\item\em Get the Instance object. \end{DoxyCompactList}\item 
static T \& \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a083807ff8cec58dc0aa732844edaf518}{Create\+Instance}} (int channel, std\+::function$<$ std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classGpgFrontend_1_1ChannelObject}{Channel\+Object}} $>$(void)$>$ factory)
\begin{DoxyCompactList}\small\item\em Create a Instance object. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_ab49b1d50252e1934691a9483a6df2106}{Release\+Channel}} (int channel)
\item 
static int \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}{Get\+Default\+Channel}} ()
\begin{DoxyCompactList}\small\item\em Get the Default Channel object. \end{DoxyCompactList}\item 
static std\+::vector$<$ int $>$ \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a5f2f0474871971f86ff91fb6a2408621}{Get\+All\+Channel\+Id}} ()
\begin{DoxyCompactList}\small\item\em Get all the channel ids. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a02e76b42ab51d77588b01c7508bed258}\label{classGpgFrontend_1_1SingletonFunctionObject_a02e76b42ab51d77588b01c7508bed258}} 
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a02e76b42ab51d77588b01c7508bed258}{Singleton\+Function\+Object}} ()=default
\begin{DoxyCompactList}\small\item\em Construct a new Singleton Function Object object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a4aa7f1eb1d3281bb1fccfcbb1b416251}{Singleton\+Function\+Object}} (int channel)
\begin{DoxyCompactList}\small\item\em Construct a new Singleton Function Object object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a8296be8c449f88175285186831b995bc}\label{classGpgFrontend_1_1SingletonFunctionObject_a8296be8c449f88175285186831b995bc}} 
virtual \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a8296be8c449f88175285186831b995bc}{$\sim$\+Singleton\+Function\+Object}} ()=default
\begin{DoxyCompactList}\small\item\em Destroy the Singleton Function Object object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
class Gpg\+Frontend\+::\+Singleton\+Function\+Object$<$ T $>$}


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & \\
\hline
\end{DoxyTemplParams}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a4aa7f1eb1d3281bb1fccfcbb1b416251}\label{classGpgFrontend_1_1SingletonFunctionObject_a4aa7f1eb1d3281bb1fccfcbb1b416251}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!SingletonFunctionObject@{SingletonFunctionObject}}
\index{SingletonFunctionObject@{SingletonFunctionObject}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{SingletonFunctionObject()}{SingletonFunctionObject()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}} (\begin{DoxyParamCaption}\item[{int}]{channel }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [protected]}}



Construct a new Singleton Function Object object. 


\begin{DoxyParams}{Parameters}
{\em channel} & \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a083807ff8cec58dc0aa732844edaf518}\label{classGpgFrontend_1_1SingletonFunctionObject_a083807ff8cec58dc0aa732844edaf518}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!CreateInstance@{CreateInstance}}
\index{CreateInstance@{CreateInstance}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{CreateInstance()}{CreateInstance()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
static T\& \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::Create\+Instance (\begin{DoxyParamCaption}\item[{int}]{channel,  }\item[{std\+::function$<$ std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classGpgFrontend_1_1ChannelObject}{Channel\+Object}} $>$(void)$>$}]{factory }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Create a Instance object. 


\begin{DoxyParams}{Parameters}
{\em channel} & \\
\hline
{\em factory} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\& 
\end{DoxyReturn}


References Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Instance(), and Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Singleton\+Storage().

\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a5f2f0474871971f86ff91fb6a2408621}\label{classGpgFrontend_1_1SingletonFunctionObject_a5f2f0474871971f86ff91fb6a2408621}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!GetAllChannelId@{GetAllChannelId}}
\index{GetAllChannelId@{GetAllChannelId}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{GetAllChannelId()}{GetAllChannelId()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
static std\+::vector$<$int$>$ \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::Get\+All\+Channel\+Id (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Get all the channel ids. 

\begin{DoxyReturn}{Returns}
std\+::vector$<$int$>$ 
\end{DoxyReturn}


References Gpg\+Frontend\+::\+Singleton\+Storage\+::\+Get\+All\+Channel\+Id(), Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Instance(), and Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Singleton\+Storage().

\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_aa99440b9177f5d0c18840f08a40d64b7}\label{classGpgFrontend_1_1SingletonFunctionObject_aa99440b9177f5d0c18840f08a40d64b7}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!GetChannel@{GetChannel}}
\index{GetChannel@{GetChannel}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{GetChannel()}{GetChannel()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::Get\+Channel (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the Channel object. 

\begin{DoxyReturn}{Returns}
int 
\end{DoxyReturn}


References Gpg\+Frontend\+::\+Channel\+Object\+::\+Get\+Channel().

\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}\label{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!GetDefaultChannel@{GetDefaultChannel}}
\index{GetDefaultChannel@{GetDefaultChannel}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{GetDefaultChannel()}{GetDefaultChannel()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
static int \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::Get\+Default\+Channel (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Get the Default Channel object. 

\begin{DoxyReturn}{Returns}
int 
\end{DoxyReturn}


References Gpg\+Frontend\+::\+Channel\+Object\+::\+Get\+Default\+Channel().

\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_a70484d7cfe9f9dcbcd5f8bb749250f36}\label{classGpgFrontend_1_1SingletonFunctionObject_a70484d7cfe9f9dcbcd5f8bb749250f36}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!GetInstance@{GetInstance}}
\index{GetInstance@{GetInstance}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{GetInstance()}{GetInstance()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
static T\& \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::Get\+Instance (\begin{DoxyParamCaption}\item[{int}]{channel = {\ttfamily GpgFrontend\+:\+:GPGFRONTEND\+\_\+DEFAULT\+\_\+CHANNEL} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Get the Instance object. 


\begin{DoxyParams}{Parameters}
{\em channel} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\& 
\end{DoxyReturn}


References Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Instance(), and Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Singleton\+Storage().

\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_aabb190a60f7a5d4ded43cae16ab8f59e}\label{classGpgFrontend_1_1SingletonFunctionObject_aabb190a60f7a5d4ded43cae16ab8f59e}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!operator=@{operator=}}
\index{operator=@{operator=}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}}\& \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}}$<$ T $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}



prohibit copy 

\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Singleton\+Function\+Object}}\& 
\end{DoxyReturn}
\mbox{\Hypertarget{classGpgFrontend_1_1SingletonFunctionObject_ab49b1d50252e1934691a9483a6df2106}\label{classGpgFrontend_1_1SingletonFunctionObject_ab49b1d50252e1934691a9483a6df2106}} 
\index{GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}!ReleaseChannel@{ReleaseChannel}}
\index{ReleaseChannel@{ReleaseChannel}!GpgFrontend::SingletonFunctionObject$<$ T $>$@{GpgFrontend::SingletonFunctionObject$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{ReleaseChannel()}{ReleaseChannel()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
static void \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject}{Gpg\+Frontend\+::\+Singleton\+Function\+Object}}$<$ T $>$\+::Release\+Channel (\begin{DoxyParamCaption}\item[{int}]{channel }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}


\begin{DoxyParams}{Parameters}
{\em channel} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
T\& 
\end{DoxyReturn}


References Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Instance(), Gpg\+Frontend\+::\+Singleton\+Storage\+Collection\+::\+Get\+Singleton\+Storage(), and Gpg\+Frontend\+::\+Singleton\+Storage\+::\+Release\+Channel().



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/core/Gpg\+Function\+Object.\+h\end{DoxyCompactItemize}
