\hypertarget{classGpgFrontend_1_1DataObjectOperator}{}\doxysection{Gpg\+Frontend\+::Data\+Object\+Operator Class Reference}
\label{classGpgFrontend_1_1DataObjectOperator}\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}


Inheritance diagram for Gpg\+Frontend\+::Data\+Object\+Operator\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classGpgFrontend_1_1DataObjectOperator__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for Gpg\+Frontend\+::Data\+Object\+Operator\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classGpgFrontend_1_1DataObjectOperator__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a3a8ae5c36fec01d0d5c3e5f9aed457a6}{Data\+Object\+Operator}} (int channel=\mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}{Singleton\+Function\+Object\+::\+Get\+Default\+Channel}}())
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator}{Data\+Object\+Operator}} constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a4bc3dbecd688c2ac1e01624a4d7b65b9}\label{classGpgFrontend_1_1DataObjectOperator_a4bc3dbecd688c2ac1e01624a4d7b65b9}} 
std\+::string {\bfseries Save\+Data\+Obj} (const std\+::string \&\+\_\+key, const nlohmann\+::json \&value)
\item 
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a6190acb6a4b9dc4350cb346fb4a03a74}\label{classGpgFrontend_1_1DataObjectOperator_a6190acb6a4b9dc4350cb346fb4a03a74}} 
std\+::optional$<$ nlohmann\+::json $>$ {\bfseries Get\+Data\+Object} (const std\+::string \&\+\_\+key)
\item 
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a1f5c8469197b382a8c0974d64114dfcd}\label{classGpgFrontend_1_1DataObjectOperator_a1f5c8469197b382a8c0974d64114dfcd}} 
std\+::optional$<$ nlohmann\+::json $>$ {\bfseries Get\+Data\+Object\+By\+Ref} (const std\+::string \&\+\_\+ref)
\end{DoxyCompactItemize}
\doxysubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a6b357780482f0e0c021ad55a81eb37cf}{init\+\_\+app\+\_\+secure\+\_\+key}} ()
\begin{DoxyCompactList}\small\item\em init the secure key of application data object \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classGpgFrontend_1_1GlobalSettingStation}{Global\+Setting\+Station}} \& \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a3c195f8e4c30d95be14a6d43e9282601}{global\+\_\+setting\+\_\+station\+\_\+}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classGpgFrontend_1_1GlobalSettingStation}{Global\+Setting\+Station}}. \end{DoxyCompactList}\item 
std\+::filesystem\+::path \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a6d38d25c91c33c48d083ec4de051108a}{app\+\_\+secure\+\_\+path\+\_\+}}
\begin{DoxyCompactList}\small\item\em Where sensitive information is stored. \end{DoxyCompactList}\item 
std\+::filesystem\+::path \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a56c0c031cd327207260c73d1885dbdca}{app\+\_\+secure\+\_\+key\+\_\+path\+\_\+}}
\begin{DoxyCompactList}\small\item\em Where the key of data object is stored. \end{DoxyCompactList}\item 
std\+::filesystem\+::path \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_ae6762d4f0f5ca2e83f7c1508cd25cc21}{app\+\_\+data\+\_\+objs\+\_\+path\+\_\+}}
\item 
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a24c9cdbe9256e332ac93d6dc28c76b90}\label{classGpgFrontend_1_1DataObjectOperator_a24c9cdbe9256e332ac93d6dc28c76b90}} 
std\+::random\+\_\+device \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a24c9cdbe9256e332ac93d6dc28c76b90}{rd\+\_\+}}
\begin{DoxyCompactList}\small\item\em Random device. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a9fc92c7d497f2a2057776adfca40e8ca}\label{classGpgFrontend_1_1DataObjectOperator_a9fc92c7d497f2a2057776adfca40e8ca}} 
std\+::mt19937 \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a9fc92c7d497f2a2057776adfca40e8ca}{mt\+\_\+}} = std\+::mt19937(\mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a24c9cdbe9256e332ac93d6dc28c76b90}{rd\+\_\+}}())
\begin{DoxyCompactList}\small\item\em Mersenne twister. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_ae409c3562c3e08931daa17f5790c508b}\label{classGpgFrontend_1_1DataObjectOperator_ae409c3562c3e08931daa17f5790c508b}} 
Q\+Byte\+Array \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_ae409c3562c3e08931daa17f5790c508b}{hash\+\_\+key\+\_\+}}
\begin{DoxyCompactList}\small\item\em Hash key. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a3a8ae5c36fec01d0d5c3e5f9aed457a6}\label{classGpgFrontend_1_1DataObjectOperator_a3a8ae5c36fec01d0d5c3e5f9aed457a6}} 
\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}!DataObjectOperator@{DataObjectOperator}}
\index{DataObjectOperator@{DataObjectOperator}!GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}
\doxysubsubsection{\texorpdfstring{DataObjectOperator()}{DataObjectOperator()}}
{\footnotesize\ttfamily Gpg\+Frontend\+::\+Data\+Object\+Operator\+::\+Data\+Object\+Operator (\begin{DoxyParamCaption}\item[{int}]{channel = {\ttfamily \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a50e2b3794d6553f4231eaec72d9d0a50}{Singleton\+Function\+Object\+::\+Get\+Default\+Channel}}()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



\mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator}{Data\+Object\+Operator}} constructor. 


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


References app\+\_\+data\+\_\+objs\+\_\+path\+\_\+, app\+\_\+secure\+\_\+key\+\_\+path\+\_\+, app\+\_\+secure\+\_\+path\+\_\+, hash\+\_\+key\+\_\+, init\+\_\+app\+\_\+secure\+\_\+key(), and Gpg\+Frontend\+::\+File\+Operator\+::\+Read\+File\+Std().



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a6b357780482f0e0c021ad55a81eb37cf}\label{classGpgFrontend_1_1DataObjectOperator_a6b357780482f0e0c021ad55a81eb37cf}} 
\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}!init\_app\_secure\_key@{init\_app\_secure\_key}}
\index{init\_app\_secure\_key@{init\_app\_secure\_key}!GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}
\doxysubsubsection{\texorpdfstring{init\_app\_secure\_key()}{init\_app\_secure\_key()}}
{\footnotesize\ttfamily void Gpg\+Frontend\+::\+Data\+Object\+Operator\+::init\+\_\+app\+\_\+secure\+\_\+key (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



init the secure key of application data object 

Copyright (C) 2021 Saturneric

This file is part of \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}}.

\mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}} is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

\mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}} is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU General Public License for more details.

You should have received a copy of the G\+NU General Public License along with \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}}. If not, see \href{https://www.gnu.org/licenses/}{\texttt{ https\+://www.\+gnu.\+org/licenses/}}.

The initial version of the source code is inherited from the gpg4usb project, which is under G\+P\+L-\/3.\+0-\/or-\/later.

All the source code of \mbox{\hyperlink{namespaceGpgFrontend}{Gpg\+Frontend}} was modified and released by Saturneric\href{mailto:eric@bktus.com}{\texttt{ eric@bktus.\+com}} starting on May 12, 2021.

S\+P\+D\+X-\/\+License-\/\+Identifier\+: G\+P\+L-\/3.\+0-\/or-\/later 

References app\+\_\+secure\+\_\+key\+\_\+path\+\_\+, Gpg\+Frontend\+::\+Singleton\+Function\+Object$<$ Passphrase\+Generator $>$\+::\+Get\+Instance(), and Gpg\+Frontend\+::\+File\+Operator\+::\+Write\+File\+Std().



Referenced by Data\+Object\+Operator().



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_ae6762d4f0f5ca2e83f7c1508cd25cc21}\label{classGpgFrontend_1_1DataObjectOperator_ae6762d4f0f5ca2e83f7c1508cd25cc21}} 
\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}!app\_data\_objs\_path\_@{app\_data\_objs\_path\_}}
\index{app\_data\_objs\_path\_@{app\_data\_objs\_path\_}!GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}
\doxysubsubsection{\texorpdfstring{app\_data\_objs\_path\_}{app\_data\_objs\_path\_}}
{\footnotesize\ttfamily std\+::filesystem\+::path Gpg\+Frontend\+::\+Data\+Object\+Operator\+::app\+\_\+data\+\_\+objs\+\_\+path\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{      \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a3c195f8e4c30d95be14a6d43e9282601}{global\_setting\_station\_}}.GetAppDataPath() / \textcolor{stringliteral}{"data\_objs"}}

\end{DoxyCode}
Where data object is stored 

Referenced by Data\+Object\+Operator().

\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a56c0c031cd327207260c73d1885dbdca}\label{classGpgFrontend_1_1DataObjectOperator_a56c0c031cd327207260c73d1885dbdca}} 
\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}!app\_secure\_key\_path\_@{app\_secure\_key\_path\_}}
\index{app\_secure\_key\_path\_@{app\_secure\_key\_path\_}!GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}
\doxysubsubsection{\texorpdfstring{app\_secure\_key\_path\_}{app\_secure\_key\_path\_}}
{\footnotesize\ttfamily std\+::filesystem\+::path Gpg\+Frontend\+::\+Data\+Object\+Operator\+::app\+\_\+secure\+\_\+key\+\_\+path\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{      \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a6d38d25c91c33c48d083ec4de051108a}{app\_secure\_path\_}} / \textcolor{stringliteral}{"app.key"}}

\end{DoxyCode}


Where the key of data object is stored. 



Referenced by Data\+Object\+Operator(), and init\+\_\+app\+\_\+secure\+\_\+key().

\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a6d38d25c91c33c48d083ec4de051108a}\label{classGpgFrontend_1_1DataObjectOperator_a6d38d25c91c33c48d083ec4de051108a}} 
\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}!app\_secure\_path\_@{app\_secure\_path\_}}
\index{app\_secure\_path\_@{app\_secure\_path\_}!GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}
\doxysubsubsection{\texorpdfstring{app\_secure\_path\_}{app\_secure\_path\_}}
{\footnotesize\ttfamily std\+::filesystem\+::path Gpg\+Frontend\+::\+Data\+Object\+Operator\+::app\+\_\+secure\+\_\+path\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{      \mbox{\hyperlink{classGpgFrontend_1_1DataObjectOperator_a3c195f8e4c30d95be14a6d43e9282601}{global\_setting\_station\_}}.GetAppConfigPath() /}
\DoxyCodeLine{      \textcolor{stringliteral}{"secure"}}

\end{DoxyCode}


Where sensitive information is stored. 



Referenced by Data\+Object\+Operator().

\mbox{\Hypertarget{classGpgFrontend_1_1DataObjectOperator_a3c195f8e4c30d95be14a6d43e9282601}\label{classGpgFrontend_1_1DataObjectOperator_a3c195f8e4c30d95be14a6d43e9282601}} 
\index{GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}!global\_setting\_station\_@{global\_setting\_station\_}}
\index{global\_setting\_station\_@{global\_setting\_station\_}!GpgFrontend::DataObjectOperator@{GpgFrontend::DataObjectOperator}}
\doxysubsubsection{\texorpdfstring{global\_setting\_station\_}{global\_setting\_station\_}}
{\footnotesize\ttfamily \mbox{\hyperlink{classGpgFrontend_1_1GlobalSettingStation}{Global\+Setting\+Station}}\& Gpg\+Frontend\+::\+Data\+Object\+Operator\+::global\+\_\+setting\+\_\+station\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{      \mbox{\hyperlink{classGpgFrontend_1_1SingletonFunctionObject_a70484d7cfe9f9dcbcd5f8bb749250f36}{GlobalSettingStation::GetInstance}}()}

\end{DoxyCode}


\mbox{\hyperlink{classGpgFrontend_1_1GlobalSettingStation}{Global\+Setting\+Station}}. 



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
src/core/function/Data\+Object\+Operator.\+h\item 
src/core/function/Data\+Object\+Operator.\+cpp\end{DoxyCompactItemize}
