\hypertarget{a00726}{\section{I\+N\+I\+File Class Reference}
\label{a00726}\index{I\+N\+I\+File@{I\+N\+I\+File}}
}


Class for the handling of simple configuration files.  




{\ttfamily \#include $<$Open\+Flipper/\+I\+N\+I\+File/\+I\+N\+I\+File.\+hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00726_a278639bfc921feb2a20c0ced75d66dbc}{\hyperlink{a00726_a278639bfc921feb2a20c0ced75d66dbc}{I\+N\+I\+File} ()}\label{a00726_a278639bfc921feb2a20c0ced75d66dbc}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a00726_aa78854b355249d8b011e9de8026d19b2}{\hyperlink{a00726_aa78854b355249d8b011e9de8026d19b2}{$\sim$\+I\+N\+I\+File} ()}\label{a00726_aa78854b355249d8b011e9de8026d19b2}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00726_a48eb806e36ccd4c847265f69dad313d7}{bool \hyperlink{a00726_a48eb806e36ccd4c847265f69dad313d7}{connect} (const Q\+String \&\hyperlink{a00726_ad9fc5b406708bd7a9a61e3ca14fbae5e}{name}, const bool create)}\label{a00726_a48eb806e36ccd4c847265f69dad313d7}

\begin{DoxyCompactList}\small\item\em Connect \hyperlink{a00726}{I\+N\+I\+File} object with given filename. \end{DoxyCompactList}\item 
\hypertarget{a00726_a7cea8921480878404645ab890eba0973}{void \hyperlink{a00726_a7cea8921480878404645ab890eba0973}{disconnect} ()}\label{a00726_a7cea8921480878404645ab890eba0973}

\begin{DoxyCompactList}\small\item\em Remove connection of this object to a file. \end{DoxyCompactList}\item 
\hypertarget{a00726_aed4c2f2e6da5a31855037af8d0048062}{bool \hyperlink{a00726_aed4c2f2e6da5a31855037af8d0048062}{is\+\_\+connected} () const }\label{a00726_aed4c2f2e6da5a31855037af8d0048062}

\begin{DoxyCompactList}\small\item\em Check if object is connected to file. \end{DoxyCompactList}\item 
\hypertarget{a00726_ad9fc5b406708bd7a9a61e3ca14fbae5e}{const Q\+String \& \hyperlink{a00726_ad9fc5b406708bd7a9a61e3ca14fbae5e}{name} () const }\label{a00726_ad9fc5b406708bd7a9a61e3ca14fbae5e}

\begin{DoxyCompactList}\small\item\em Access to name of connected file. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Existence checking}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00726_a246896bd897ea1e6a77ee5b42fb376bb}{bool \hyperlink{a00726_a246896bd897ea1e6a77ee5b42fb376bb}{section\+\_\+exists} (const Q\+String \&\+\_\+section) const }\label{a00726_a246896bd897ea1e6a77ee5b42fb376bb}

\begin{DoxyCompactList}\small\item\em Check if given section exists in the current I\+N\+I file. \end{DoxyCompactList}\item 
\hypertarget{a00726_aac3a4bdb558c749d2109f9bc1cad72ce}{bool \hyperlink{a00726_aac3a4bdb558c749d2109f9bc1cad72ce}{entry\+\_\+exists} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_aac3a4bdb558c749d2109f9bc1cad72ce}

\begin{DoxyCompactList}\small\item\em Check if given entry esists in the current I\+N\+I file. \end{DoxyCompactList}\item 
\hypertarget{a00726_ac9f82b98c7b155b1d2c8f3e924481645}{bool \hyperlink{a00726_ac9f82b98c7b155b1d2c8f3e924481645}{entry\+\_\+in\+\_\+section} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_ac9f82b98c7b155b1d2c8f3e924481645}

\begin{DoxyCompactList}\small\item\em Same as \hyperlink{a00726_aac3a4bdb558c749d2109f9bc1cad72ce}{entry\+\_\+exists()} (for backward compatibility) \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Addition of entities}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00726_ab4c3d0fec0fc322ccd3366cbc7fe35db}{void \hyperlink{a00726_ab4c3d0fec0fc322ccd3366cbc7fe35db}{add\+\_\+section} (const Q\+String \&\+\_\+sectionname)}\label{a00726_ab4c3d0fec0fc322ccd3366cbc7fe35db}

\begin{DoxyCompactList}\small\item\em Addition of a section. \end{DoxyCompactList}\item 
\hypertarget{a00726_ab3826958cf55d970330f57e65b65f9f2}{void \hyperlink{a00726_ab3826958cf55d970330f57e65b65f9f2}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const Q\+String \&\+\_\+value)}\label{a00726_ab3826958cf55d970330f57e65b65f9f2}

\begin{DoxyCompactList}\small\item\em Addition / modification of a string entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a65f9de13c0d843fdec2ac949caccc776}{void \hyperlink{a00726_a65f9de13c0d843fdec2ac949caccc776}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const char $\ast$\+\_\+value)}\label{a00726_a65f9de13c0d843fdec2ac949caccc776}

\begin{DoxyCompactList}\small\item\em Addition / modification of a string entry, given as char array. \end{DoxyCompactList}\item 
\hypertarget{a00726_a971a3f75bc38c7748b52f73cb9aed8f4}{void \hyperlink{a00726_a971a3f75bc38c7748b52f73cb9aed8f4}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const double \&\+\_\+value)}\label{a00726_a971a3f75bc38c7748b52f73cb9aed8f4}

\begin{DoxyCompactList}\small\item\em Addition / modification of a double entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_adcbb891299c43ad75f94c394af528808}{void \hyperlink{a00726_adcbb891299c43ad75f94c394af528808}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const float \&\+\_\+value)}\label{a00726_adcbb891299c43ad75f94c394af528808}

\begin{DoxyCompactList}\small\item\em Addition / modification of a double entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a6db961a5c6d40d16ed7d203e1f3ed95e}{void \hyperlink{a00726_a6db961a5c6d40d16ed7d203e1f3ed95e}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const int \&\+\_\+value)}\label{a00726_a6db961a5c6d40d16ed7d203e1f3ed95e}

\begin{DoxyCompactList}\small\item\em Addition / modification of an int entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_aa6ddddea3638234879359d6f5d35e4b8}{void \hyperlink{a00726_aa6ddddea3638234879359d6f5d35e4b8}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const unsigned int \&\+\_\+value)}\label{a00726_aa6ddddea3638234879359d6f5d35e4b8}

\begin{DoxyCompactList}\small\item\em Addition / modification of an int entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a70647829b3c1fa36b2b8abf533329e7e}{void \hyperlink{a00726_a70647829b3c1fa36b2b8abf533329e7e}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const bool \&\+\_\+value)}\label{a00726_a70647829b3c1fa36b2b8abf533329e7e}

\begin{DoxyCompactList}\small\item\em Addition / modification of a boolean entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a20c42d31135ea3bcbdcc4b7ddc59ecc1}{void \hyperlink{a00726_a20c42d31135ea3bcbdcc4b7ddc59ecc1}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const std\+::vector$<$ float $>$ \&\+\_\+value)}\label{a00726_a20c42d31135ea3bcbdcc4b7ddc59ecc1}

\begin{DoxyCompactList}\small\item\em Addition / modification of a float vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a51fadb6d8bd7bc12475efa36de8bb46c}{void \hyperlink{a00726_a51fadb6d8bd7bc12475efa36de8bb46c}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const std\+::vector$<$ double $>$ \&\+\_\+value)}\label{a00726_a51fadb6d8bd7bc12475efa36de8bb46c}

\begin{DoxyCompactList}\small\item\em Addition / modification of a double vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_aa6c8c78bc193cdd61b5e77bf688e0fca}{void \hyperlink{a00726_aa6c8c78bc193cdd61b5e77bf688e0fca}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const std\+::vector$<$ bool $>$ \&\+\_\+value)}\label{a00726_aa6c8c78bc193cdd61b5e77bf688e0fca}

\begin{DoxyCompactList}\small\item\em Addition / modification of a bool vector. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vector\+T $>$ }\\void \hyperlink{a00726_a6b7e80b381c2dc7456a353971c2593a4}{add\+\_\+entry\+Vec} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const \hyperlink{a01410}{Vector\+T} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Addition of a Vec\+\_\+n\+\_\+something. \end{DoxyCompactList}\item 
\hypertarget{a00726_aaff4e8417cc024096308a1495891b24d}{{\footnotesize template$<$typename Vector\+T $>$ }\\void \hyperlink{a00726_aaff4e8417cc024096308a1495891b24d}{add\+\_\+entry\+Vec} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+value)}\label{a00726_aaff4e8417cc024096308a1495891b24d}

\begin{DoxyCompactList}\small\item\em Addition of a vector of Vec\+\_\+n\+\_\+something. \end{DoxyCompactList}\item 
\hypertarget{a00726_a9b868b7f1a7db8f4774b327f71b4b67b}{void \hyperlink{a00726_a9b868b7f1a7db8f4774b327f71b4b67b}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const std\+::vector$<$ int $>$ \&\+\_\+value)}\label{a00726_a9b868b7f1a7db8f4774b327f71b4b67b}

\begin{DoxyCompactList}\small\item\em Addition / modification of an int vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a7a421f5ecdf3d338bb1fc13b38c5c6f9}{void \hyperlink{a00726_a7a421f5ecdf3d338bb1fc13b38c5c6f9}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const std\+::vector$<$ Q\+String $>$ \&\+\_\+value)}\label{a00726_a7a421f5ecdf3d338bb1fc13b38c5c6f9}

\begin{DoxyCompactList}\small\item\em Addition / modification of an int vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a787e3ed324bbb9951d4a8d9875dcc36e}{void \hyperlink{a00726_a787e3ed324bbb9951d4a8d9875dcc36e}{add\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key, const Q\+String\+List \&\+\_\+value)}\label{a00726_a787e3ed324bbb9951d4a8d9875dcc36e}

\begin{DoxyCompactList}\small\item\em Addition / modification of an int vector. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Deletion of entities}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00726_aa0c373517e3108631860806770c65f10}{void \hyperlink{a00726_aa0c373517e3108631860806770c65f10}{delete\+\_\+entry} (const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key)}\label{a00726_aa0c373517e3108631860806770c65f10}

\begin{DoxyCompactList}\small\item\em Deletion of an entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_af2b979dfbc0266dc59ea8939e1a7242c}{void \hyperlink{a00726_af2b979dfbc0266dc59ea8939e1a7242c}{delete\+\_\+section} (const Q\+String \&\+\_\+sectionname)}\label{a00726_af2b979dfbc0266dc59ea8939e1a7242c}

\begin{DoxyCompactList}\small\item\em Deletion of an entire section. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Access to stored entries}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00726_a46208a933fd6b08fb1d39274813c71eb}{typedef std\+::map$<$ Q\+String, \\*
Q\+String $>$ \hyperlink{a00726_a46208a933fd6b08fb1d39274813c71eb}{Entry\+Map}}\label{a00726_a46208a933fd6b08fb1d39274813c71eb}

\begin{DoxyCompactList}\small\item\em Type for map of contained entries. \end{DoxyCompactList}\item 
\hypertarget{a00726_a2ba609082fab70d0232fd17905e8389e}{typedef std\+::map$<$ Q\+String, \\*
\hyperlink{a00726_a46208a933fd6b08fb1d39274813c71eb}{Entry\+Map} $>$ \hyperlink{a00726_a2ba609082fab70d0232fd17905e8389e}{Section\+Map}}\label{a00726_a2ba609082fab70d0232fd17905e8389e}

\begin{DoxyCompactList}\small\item\em Type for map of contained sections. \end{DoxyCompactList}\item 
\hypertarget{a00726_ae85c7ee649f6932f77436e0a070d2a8d}{Q\+String \hyperlink{a00726_ae85c7ee649f6932f77436e0a070d2a8d}{m\+\_\+filename}}\label{a00726_ae85c7ee649f6932f77436e0a070d2a8d}

\begin{DoxyCompactList}\small\item\em Name of current I\+N\+I file. \end{DoxyCompactList}\item 
\hypertarget{a00726_a8dbb5d020f9cbc1c58bab519f2fb1363}{bool \hyperlink{a00726_a8dbb5d020f9cbc1c58bab519f2fb1363}{mf\+\_\+is\+Connected}}\label{a00726_a8dbb5d020f9cbc1c58bab519f2fb1363}

\begin{DoxyCompactList}\small\item\em Flag\+: this object is connected to an I\+N\+I file. \end{DoxyCompactList}\item 
\hypertarget{a00726_ac6519b45be7fcd571d2e4e9e72584bcf}{\hyperlink{a00726_a2ba609082fab70d0232fd17905e8389e}{Section\+Map} \hyperlink{a00726_ac6519b45be7fcd571d2e4e9e72584bcf}{m\+\_\+ini\+Data}}\label{a00726_ac6519b45be7fcd571d2e4e9e72584bcf}

\begin{DoxyCompactList}\small\item\em Stored data of an I\+N\+I file. \end{DoxyCompactList}\item 
\hypertarget{a00726_a4b4ec384c81ffa2a8935eee28806ab81}{bool \hyperlink{a00726_a4b4ec384c81ffa2a8935eee28806ab81}{get\+\_\+entry} (Q\+String \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a4b4ec384c81ffa2a8935eee28806ab81}

\begin{DoxyCompactList}\small\item\em Access to a string entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a6c8ee038cb1048834fce004892e735ee}{bool \hyperlink{a00726_a6c8ee038cb1048834fce004892e735ee}{get\+\_\+entry} (double \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a6c8ee038cb1048834fce004892e735ee}

\begin{DoxyCompactList}\small\item\em Access to a floating point entry, stored as double value. \end{DoxyCompactList}\item 
\hypertarget{a00726_a0507b5d79c7818fbecd773e81f818fd6}{bool \hyperlink{a00726_a0507b5d79c7818fbecd773e81f818fd6}{get\+\_\+entry} (float \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a0507b5d79c7818fbecd773e81f818fd6}

\begin{DoxyCompactList}\small\item\em Access to a floating point entry, stored as float value. \end{DoxyCompactList}\item 
\hypertarget{a00726_a487bd8b3bb89eacfe85ffa52573cabaf}{bool \hyperlink{a00726_a487bd8b3bb89eacfe85ffa52573cabaf}{get\+\_\+entry} (int \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a487bd8b3bb89eacfe85ffa52573cabaf}

\begin{DoxyCompactList}\small\item\em Access to an int entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a9fe9c8ca644520579082f394248d9d3e}{bool \hyperlink{a00726_a9fe9c8ca644520579082f394248d9d3e}{get\+\_\+entry} (unsigned int \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a9fe9c8ca644520579082f394248d9d3e}

\begin{DoxyCompactList}\small\item\em Access to an unsigned int entry (which is actually stored as int!!!) \end{DoxyCompactList}\item 
\hypertarget{a00726_acbdea05d8a48af62d69ef3c4e226531d}{bool \hyperlink{a00726_acbdea05d8a48af62d69ef3c4e226531d}{get\+\_\+entry} (bool \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_acbdea05d8a48af62d69ef3c4e226531d}

\begin{DoxyCompactList}\small\item\em Access to a boolean entry. \end{DoxyCompactList}\item 
\hypertarget{a00726_a5b9df639b76a8662dd22106cfd1a9cef}{bool \hyperlink{a00726_a5b9df639b76a8662dd22106cfd1a9cef}{get\+\_\+entry} (std\+::vector$<$ float $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a5b9df639b76a8662dd22106cfd1a9cef}

\begin{DoxyCompactList}\small\item\em Access to a float vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a43086f65066983689eec88e2bb0f224c}{bool \hyperlink{a00726_a43086f65066983689eec88e2bb0f224c}{get\+\_\+entry} (std\+::vector$<$ double $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a43086f65066983689eec88e2bb0f224c}

\begin{DoxyCompactList}\small\item\em Access to a double vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_ab4bff84e6ec5ee340e0a91208ed76128}{bool \hyperlink{a00726_ab4bff84e6ec5ee340e0a91208ed76128}{get\+\_\+entry} (std\+::vector$<$ bool $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_ab4bff84e6ec5ee340e0a91208ed76128}

\begin{DoxyCompactList}\small\item\em Access to a bool vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a0bad9b76260ebc13a1417afe0e06330b}{bool \hyperlink{a00726_a0bad9b76260ebc13a1417afe0e06330b}{get\+\_\+entry} (std\+::vector$<$ int $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a0bad9b76260ebc13a1417afe0e06330b}

\begin{DoxyCompactList}\small\item\em Access to an int vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a6515b478e40ac29a37c7949a7334e9cf}{bool \hyperlink{a00726_a6515b478e40ac29a37c7949a7334e9cf}{get\+\_\+entry} (std\+::vector$<$ Q\+String $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a6515b478e40ac29a37c7949a7334e9cf}

\begin{DoxyCompactList}\small\item\em Access to a string vector. \end{DoxyCompactList}\item 
\hypertarget{a00726_a226b6a854a1f63bf21ec8e080601f16d}{bool \hyperlink{a00726_a226b6a854a1f63bf21ec8e080601f16d}{get\+\_\+entry} (Q\+String\+List \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a226b6a854a1f63bf21ec8e080601f16d}

\begin{DoxyCompactList}\small\item\em Access to a string\+List. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vector\+T $>$ }\\bool \hyperlink{a00726_ab572122562baa17d44dc757ad7286cc2}{get\+\_\+entry\+Vecd} (\hyperlink{a01410}{Vector\+T} \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const 
\begin{DoxyCompactList}\small\item\em Get a Vec\+\_\+n\+\_\+d (double) \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vector\+T $>$ }\\bool \hyperlink{a00726_abace2c28b0d28fd88b787be6d5a54a11}{get\+\_\+entry\+Vecf} (\hyperlink{a01410}{Vector\+T} \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const 
\begin{DoxyCompactList}\small\item\em Get a Vec\+\_\+n\+\_\+i (int) \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Vector\+T $>$ }\\bool \hyperlink{a00726_a720f34f759ab36d0a0f1eca13b8c676e}{get\+\_\+entry\+Veci} (\hyperlink{a01410}{Vector\+T} \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const 
\begin{DoxyCompactList}\small\item\em Get a Vec\+\_\+n\+\_\+i (int) \end{DoxyCompactList}\item 
\hypertarget{a00726_a3a1ca69b7ff945db7a4138cf19e72ea6}{{\footnotesize template$<$typename Vector\+T $>$ }\\bool \hyperlink{a00726_a3a1ca69b7ff945db7a4138cf19e72ea6}{get\+\_\+entry\+Vecd} (std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a3a1ca69b7ff945db7a4138cf19e72ea6}

\begin{DoxyCompactList}\small\item\em Get a Vec\+\_\+n\+\_\+d. \end{DoxyCompactList}\item 
\hypertarget{a00726_a994d3d75f0469ccedb5c258741a02acf}{{\footnotesize template$<$typename Vector\+T $>$ }\\bool \hyperlink{a00726_a994d3d75f0469ccedb5c258741a02acf}{get\+\_\+entry\+Vecf} (std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a994d3d75f0469ccedb5c258741a02acf}

\begin{DoxyCompactList}\small\item\em Get a Vec\+\_\+n\+\_\+f. \end{DoxyCompactList}\item 
\hypertarget{a00726_a7e6b9ce73465518b556ab9fbcb300b7a}{{\footnotesize template$<$typename Vector\+T $>$ }\\bool \hyperlink{a00726_a7e6b9ce73465518b556ab9fbcb300b7a}{get\+\_\+entry\+Veci} (std\+::vector$<$ \hyperlink{a01410}{Vector\+T} $>$ \&\+\_\+val, const Q\+String \&\+\_\+section, const Q\+String \&\+\_\+key) const }\label{a00726_a7e6b9ce73465518b556ab9fbcb300b7a}

\begin{DoxyCompactList}\small\item\em Get a Vec\+\_\+n\+\_\+i. \end{DoxyCompactList}\item 
\hypertarget{a00726_ae68ffbd65e630a75534aa204d56d8130}{bool \hyperlink{a00726_ae68ffbd65e630a75534aa204d56d8130}{parse\+File} (Q\+File \&\+\_\+input\+Stream)}\label{a00726_ae68ffbd65e630a75534aa204d56d8130}

\begin{DoxyCompactList}\small\item\em Read content of an I\+N\+I file. \end{DoxyCompactList}\item 
\hypertarget{a00726_a2d83bd8abb62033fdac574845efcdf89}{bool \hyperlink{a00726_a2d83bd8abb62033fdac574845efcdf89}{write\+File} (void)}\label{a00726_a2d83bd8abb62033fdac574845efcdf89}

\begin{DoxyCompactList}\small\item\em Write data to file we are currently connected to. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Class for the handling of simple configuration files. 

The file format used by this class is similar to that of M\+S Windows I\+N\+I files. It is possible to divide a file into sections which are denoted by brackets (e.\+g. {\ttfamily \mbox{[}Section\mbox{]}}). All values are stored in the form {\ttfamily $<$key$>$ = $<$value$>$} and are assigned to a section. The \hyperlink{a00726}{I\+N\+I\+File} class is able to store values of the types string, double, signed and unsigned int and bool.

The usual way to work with this class consists of the following steps\+:


\begin{DoxyItemize}
\item Open an existing or create a new I\+N\+I file with a call to \hyperlink{a00726_a48eb806e36ccd4c847265f69dad313d7}{connect()}
\item Check for the existence of entries (\hyperlink{a00726_aac3a4bdb558c749d2109f9bc1cad72ce}{entry\+\_\+exists()}), access stored values (\hyperlink{a00726_a4b4ec384c81ffa2a8935eee28806ab81}{get\+\_\+entry()}) or add new entries (\hyperlink{a00726_ab3826958cf55d970330f57e65b65f9f2}{add\+\_\+entry()}). Note that the function \hyperlink{a00726_ab4c3d0fec0fc322ccd3366cbc7fe35db}{add\+\_\+section()} is obsolete and only kept for backward compatibility. A new section is now implicitly generated by specifying it in a call to \hyperlink{a00726_ab3826958cf55d970330f57e65b65f9f2}{add\+\_\+entry()}.
\item \hyperlink{a00726_a7cea8921480878404645ab890eba0973}{disconnect()} from the I\+N\+I file. Only now are all entries and sections written to the file.
\end{DoxyItemize}

To be able to use the \hyperlink{a00726}{I\+N\+I\+File} class, an object is created. After that the object is connected to a given filename. This means that, if the file exists, it is opened and the content is parsed and stored in memory. The second (boolean) parameter to the \hyperlink{a00726_a48eb806e36ccd4c847265f69dad313d7}{connect()} function indicates that the file should be created if it does not exists. 
\begin{DoxyCodeInclude}

\end{DoxyCodeInclude}


Now a new section named {\ttfamily Main} is generated and several entries are added. Note that the I\+N\+I file is not written to disc until the \hyperlink{a00726_a7cea8921480878404645ab890eba0973}{disconnect()} function is called. All additions and modifications are only performed on the stored data in memory. 
\begin{DoxyCodeInclude}

\end{DoxyCodeInclude}


In the second part of this example the just created I\+N\+I file is opened (connected) again and the created entries are read and printed to {\ttfamily stdout}. 
\begin{DoxyCodeInclude}

\end{DoxyCodeInclude}
 

Definition at line 105 of file I\+N\+I\+File.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00726_a6b7e80b381c2dc7456a353971c2593a4}{\index{I\+N\+I\+File@{I\+N\+I\+File}!add\+\_\+entry\+Vec@{add\+\_\+entry\+Vec}}
\index{add\+\_\+entry\+Vec@{add\+\_\+entry\+Vec}!I\+N\+I\+File@{I\+N\+I\+File}}
\subsubsection[{add\+\_\+entry\+Vec}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Vector\+T $>$ void I\+N\+I\+File\+::add\+\_\+entry\+Vec (
\begin{DoxyParamCaption}
\item[{const Q\+String \&}]{\+\_\+section, }
\item[{const Q\+String \&}]{\+\_\+key, }
\item[{const {\bf Vector\+T} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a00726_a6b7e80b381c2dc7456a353971c2593a4}


Addition of a Vec\+\_\+n\+\_\+something. 

Addition of a vector of Vec\+\_\+n\+\_\+whatever. 

Definition at line 211 of file I\+N\+I\+File\+T.\+cc.

\hypertarget{a00726_ab572122562baa17d44dc757ad7286cc2}{\index{I\+N\+I\+File@{I\+N\+I\+File}!get\+\_\+entry\+Vecd@{get\+\_\+entry\+Vecd}}
\index{get\+\_\+entry\+Vecd@{get\+\_\+entry\+Vecd}!I\+N\+I\+File@{I\+N\+I\+File}}
\subsubsection[{get\+\_\+entry\+Vecd}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Vector\+T $>$ bool I\+N\+I\+File\+::get\+\_\+entry\+Vecd (
\begin{DoxyParamCaption}
\item[{{\bf Vector\+T} \&}]{\+\_\+val, }
\item[{const Q\+String \&}]{\+\_\+section, }
\item[{const Q\+String \&}]{\+\_\+key}
\end{DoxyParamCaption}
) const}}\label{a00726_ab572122562baa17d44dc757ad7286cc2}


Get a Vec\+\_\+n\+\_\+d (double) 

Get a Vec\+\_\+n\+\_\+d. 

Definition at line 127 of file I\+N\+I\+File\+T.\+cc.

\hypertarget{a00726_abace2c28b0d28fd88b787be6d5a54a11}{\index{I\+N\+I\+File@{I\+N\+I\+File}!get\+\_\+entry\+Vecf@{get\+\_\+entry\+Vecf}}
\index{get\+\_\+entry\+Vecf@{get\+\_\+entry\+Vecf}!I\+N\+I\+File@{I\+N\+I\+File}}
\subsubsection[{get\+\_\+entry\+Vecf}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Vector\+T $>$ bool I\+N\+I\+File\+::get\+\_\+entry\+Vecf (
\begin{DoxyParamCaption}
\item[{{\bf Vector\+T} \&}]{\+\_\+val, }
\item[{const Q\+String \&}]{\+\_\+section, }
\item[{const Q\+String \&}]{\+\_\+key}
\end{DoxyParamCaption}
) const}}\label{a00726_abace2c28b0d28fd88b787be6d5a54a11}


Get a Vec\+\_\+n\+\_\+i (int) 

Get a Vec\+\_\+n\+\_\+f. 

Definition at line 169 of file I\+N\+I\+File\+T.\+cc.

\hypertarget{a00726_a720f34f759ab36d0a0f1eca13b8c676e}{\index{I\+N\+I\+File@{I\+N\+I\+File}!get\+\_\+entry\+Veci@{get\+\_\+entry\+Veci}}
\index{get\+\_\+entry\+Veci@{get\+\_\+entry\+Veci}!I\+N\+I\+File@{I\+N\+I\+File}}
\subsubsection[{get\+\_\+entry\+Veci}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Vector\+T $>$ bool I\+N\+I\+File\+::get\+\_\+entry\+Veci (
\begin{DoxyParamCaption}
\item[{{\bf Vector\+T} \&}]{\+\_\+val, }
\item[{const Q\+String \&}]{\+\_\+section, }
\item[{const Q\+String \&}]{\+\_\+key}
\end{DoxyParamCaption}
) const}}\label{a00726_a720f34f759ab36d0a0f1eca13b8c676e}


Get a Vec\+\_\+n\+\_\+i (int) 

Get a Vec\+\_\+n\+\_\+i. 

Definition at line 85 of file I\+N\+I\+File\+T.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/\+I\+N\+I\+File/I\+N\+I\+File.\+hh\item 
Open\+Flipper/\+I\+N\+I\+File/I\+N\+I\+File.\+cc\item 
Open\+Flipper/\+I\+N\+I\+File/I\+N\+I\+File\+T.\+cc\end{DoxyCompactItemize}
