\hypertarget{a09676}{}\section{License\+Manager Class Reference}
\label{a09676}\index{License\+Manager@{License\+Manager}}


License management base class.  




{\ttfamily \#include $<$Open\+Flipper/\+License\+Manager/\+License\+Manager\+Active.\+hh$>$}

Inheritance diagram for License\+Manager\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a09676}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{a09676_ac5b1ff85b9265b7a1aa00f6129b4bf8b}{authenticate} ()
\item 
Q\+String \hyperlink{a09676_a7a61dce4a9a456fd9532efe14e1c34a0}{license\+Error} ()
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a09676_aac5a0938ed144fe0793144bab464dee0}{block\+Signals} (bool \+\_\+state)
\item 
bool \hyperlink{a09676_a1bc36855828b54e2596ffaa86d8d09ba}{authenticated} ()
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a09676_af217a14306c64c6643e75040793cfd23}{connect\+Notify} (const char $\ast$signal)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09676_a424ba2efae7aa415beac8d75adf7d5ec}\label{a09676_a424ba2efae7aa415beac8d75adf7d5ec}} 
bool {\bfseries timestamp\+Ok} ()
\item 
virtual Q\+String \hyperlink{a09676_ab9d0c534557c05a18360ac8677e7edfa}{name} ()=0
\item 
virtual Q\+String \hyperlink{a09676_a31058e7aea7873346f308d2545908264}{plugin\+File\+Name} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09676_ae9944575244f3b9decb2af6c2dfb3ea8}\label{a09676_ae9944575244f3b9decb2af6c2dfb3ea8}} 
bool \hyperlink{a09676_ae9944575244f3b9decb2af6c2dfb3ea8}{authenticated\+\_\+}
\begin{DoxyCompactList}\small\item\em This flag is true if authentication was successful. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09676_ac4f6bbad19c8653e3d2262c1dc2ebeb9}\label{a09676_ac4f6bbad19c8653e3d2262c1dc2ebeb9}} 
Q\+String \hyperlink{a09676_ac4f6bbad19c8653e3d2262c1dc2ebeb9}{authstring\+\_\+}
\begin{DoxyCompactList}\small\item\em License information string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
License management base class. 

See \hyperlink{securityInterfacePage}{Security/\+License Interface} for Details on how to use it.

The class is used by plugins to integrate license management. It will check the license, generate license requests and prevent the plugin from loading if an invalid license or no license is found. 

Definition at line 68 of file License\+Manager\+Active.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a09676_ac5b1ff85b9265b7a1aa00f6129b4bf8b}\label{a09676_ac5b1ff85b9265b7a1aa00f6129b4bf8b}} 
\index{License\+Manager@{License\+Manager}!authenticate@{authenticate}}
\index{authenticate@{authenticate}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{authenticate}{authenticate}}
{\footnotesize\ttfamily bool License\+Manager\+::authenticate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}

Call this function for plugin authentication. If it returns true, the authentication has been successful. Otherwise the core will stop loading the plugin. Additionally the plugin will make itself unusable by not allowing any signal slot connections. 

Definition at line 202 of file License\+Manager\+Active.\+cc.

\mbox{\Hypertarget{a09676_a1bc36855828b54e2596ffaa86d8d09ba}\label{a09676_a1bc36855828b54e2596ffaa86d8d09ba}} 
\index{License\+Manager@{License\+Manager}!authenticated@{authenticated}}
\index{authenticated@{authenticated}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{authenticated()}{authenticated()}}
{\footnotesize\ttfamily bool License\+Manager\+::authenticated (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Return if the plugin has successfully passed the authentication. 

Definition at line 574 of file License\+Manager\+Active.\+cc.

\mbox{\Hypertarget{a09676_aac5a0938ed144fe0793144bab464dee0}\label{a09676_aac5a0938ed144fe0793144bab464dee0}} 
\index{License\+Manager@{License\+Manager}!block\+Signals@{block\+Signals}}
\index{block\+Signals@{block\+Signals}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{block\+Signals()}{blockSignals()}}
{\footnotesize\ttfamily void License\+Manager\+::block\+Signals (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+state }\end{DoxyParamCaption})}

This function is overloaded and will not allow to unblock signals if the plugin is not authenticated. 

Definition at line 114 of file License\+Manager\+Active.\+cc.

\mbox{\Hypertarget{a09676_af217a14306c64c6643e75040793cfd23}\label{a09676_af217a14306c64c6643e75040793cfd23}} 
\index{License\+Manager@{License\+Manager}!connect\+Notify@{connect\+Notify}}
\index{connect\+Notify@{connect\+Notify}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{connect\+Notify()}{connectNotify()}}
{\footnotesize\ttfamily void License\+Manager\+::connect\+Notify (\begin{DoxyParamCaption}\item[{const char $\ast$}]{signal }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}

This function is overloaded in the security interface. If the plugin is not authenticated, all connections will be automatically removed again. 

Definition at line 579 of file License\+Manager\+Active.\+cc.

\mbox{\Hypertarget{a09676_a7a61dce4a9a456fd9532efe14e1c34a0}\label{a09676_a7a61dce4a9a456fd9532efe14e1c34a0}} 
\index{License\+Manager@{License\+Manager}!license\+Error@{license\+Error}}
\index{license\+Error@{license\+Error}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{license\+Error}{licenseError}}
{\footnotesize\ttfamily Q\+String License\+Manager\+::license\+Error (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}

if authenticate returns false, this string will contain the license information required to generate a license request and the error that caused the failure. 

Definition at line 570 of file License\+Manager\+Active.\+cc.

\mbox{\Hypertarget{a09676_ab9d0c534557c05a18360ac8677e7edfa}\label{a09676_ab9d0c534557c05a18360ac8677e7edfa}} 
\index{License\+Manager@{License\+Manager}!name@{name}}
\index{name@{name}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily virtual Q\+String License\+Manager\+::name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [pure virtual]}}

This is used to get the plugins Name from derived classes The plugin name is the usual name of the plugin \mbox{\Hypertarget{a09676_a31058e7aea7873346f308d2545908264}\label{a09676_a31058e7aea7873346f308d2545908264}} 
\index{License\+Manager@{License\+Manager}!plugin\+File\+Name@{plugin\+File\+Name}}
\index{plugin\+File\+Name@{plugin\+File\+Name}!License\+Manager@{License\+Manager}}
\subsubsection{\texorpdfstring{plugin\+File\+Name()}{pluginFileName()}}
{\footnotesize\ttfamily Q\+String License\+Manager\+::plugin\+File\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}

This function is special to the \hyperlink{a09676}{License\+Manager}. It is used to find the plugin when checking its hash value. 

Definition at line 590 of file License\+Manager\+Active.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+License\+Manager/License\+Manager\+Active.\+hh\item 
Open\+Flipper/\+License\+Manager/License\+Manager\+Disabled.\+hh\item 
Open\+Flipper/\+License\+Manager/License\+Manager\+Active.\+cc\item 
Open\+Flipper/\+License\+Manager/License\+Manager\+Disabled.\+cc\end{DoxyCompactItemize}
