\doxysection{docs Directory Reference}
\hypertarget{dir_49e56c817e5e54854c35e136979f97ca}{}\label{dir_49e56c817e5e54854c35e136979f97ca}\index{docs Directory Reference@{docs Directory Reference}}
\doxysubsubsection*{Directories}
\begin{DoxyCompactItemize}
\item 
directory \mbox{\hyperlink{dir_2d423acf5473bc48906ca316d2995d8f}{basic}}
\item 
directory \mbox{\hyperlink{dir_771164b9325b04f1442f7a3ffa8ecb89}{core}}
\item 
directory \mbox{\hyperlink{dir_68588e5a097ce704ed28814d68b1b590}{hash}}
\item 
directory \mbox{\hyperlink{dir_abd30d11711bae4cb17b258a1e3909ca}{list}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This documentation provides details on all functions available in {\ttfamily Arma\+RAMDb}. These functions allow you to interact with the in-\/memory database system for Arma 3.\hypertarget{README.md_autotoc_md424}{}\doxysubsection{\texorpdfstring{Function Categories}{Function Categories}}\label{README.md_autotoc_md424}
The functions are categorized by their purpose\+:\hypertarget{README.md_autotoc_md425}{}\doxysubsubsection{\texorpdfstring{Core Functions}{Core Functions}}\label{README.md_autotoc_md425}

\begin{DoxyItemize}
\item \doxysectlink{md_docs_2core_2init}{init}{0} -\/ Initialize the database system
\item \doxysectlink{md_docs_2core_2handler}{handler}{0} -\/ Handle callbacks from the extension
\item \doxysectlink{md_docs_2core_2process_queue}{process\+Queue}{0} -\/ Process queued database operations
\item \doxysectlink{md_docs_2core_2scheduler}{scheduler}{0} -\/ Schedule database operations
\item \doxysectlink{md_docs_2core_2add_task}{add\+Task}{0} -\/ Add a task to the scheduler
\item \doxysectlink{md_docs_2core_2print_addon_name}{print\+Addon\+Name}{0} -\/ Print the addon name
\item \doxysectlink{md_docs_2core_2test}{test}{0} -\/ Test the database connection
\end{DoxyItemize}\hypertarget{README.md_autotoc_md426}{}\doxysubsubsection{\texorpdfstring{Basic Data Operations}{Basic Data Operations}}\label{README.md_autotoc_md426}

\begin{DoxyItemize}
\item \doxysectlink{md_docs_2basic_2get}{get}{0} -\/ Get a value from the database
\item \doxysectlink{md_docs_2basic_2set}{set}{0} -\/ Set a value in the database
\item \doxysectlink{md_docs_2basic_2delete}{delete}{0} -\/ Delete a value from the database
\item \doxysectlink{md_docs_2basic_2save}{save}{0} -\/ Save the database to disk
\item \doxysectlink{md_docs_2basic_2load}{load}{0} -\/ Load the database from disk
\item \doxysectlink{md_docs_2basic_2fetch}{fetch}{0} -\/ Fetch a value from the database
\end{DoxyItemize}\hypertarget{README.md_autotoc_md427}{}\doxysubsubsection{\texorpdfstring{Hash Operations}{Hash Operations}}\label{README.md_autotoc_md427}

\begin{DoxyItemize}
\item \doxysectlink{md_docs_2hash_2hash_delete}{hash\+Delete}{0} -\/ Delete a hash
\item \doxysectlink{md_docs_2hash_2hash_delete_id}{hash\+Delete\+Id}{0} -\/ Delete a hash for a specific ID
\item \doxysectlink{md_docs_2hash_2hash_get}{hash\+Get}{0} -\/ Get a field from a hash
\item \doxysectlink{md_docs_2hash_2hash_get_all}{hash\+Get\+All}{0} -\/ Get all fields from a hash
\item \doxysectlink{md_docs_2hash_2hash_get_all_id}{hash\+Get\+All\+Id}{0} -\/ Get all fields from a hash for a specific ID
\item \doxysectlink{md_docs_2hash_2hash_get_id}{hash\+Get\+Id}{0} -\/ Get a field from a hash for a specific ID
\item \doxysectlink{md_docs_2hash_2hash_remove}{hash\+Remove}{0} -\/ Remove a field from a hash
\item \doxysectlink{md_docs_2hash_2hash_remove_id}{hash\+Remove\+Id}{0} -\/ Remove a field from a hash for a specific ID
\item \doxysectlink{md_docs_2hash_2hash_set}{hash\+Set}{0} -\/ Set a field in a hash
\item \doxysectlink{md_docs_2hash_2hash_set_bulk}{hash\+Set\+Bulk}{0} -\/ Set multiple fields in a hash in one operation
\item \doxysectlink{md_docs_2hash_2hash_set_id}{hash\+Set\+Id}{0} -\/ Set a field in a hash for a specific ID
\item \doxysectlink{md_docs_2hash_2hash_set_id_bulk}{hash\+Set\+Id\+Bulk}{0} -\/ Set multiple fields in a hash for a specific ID in one operation
\end{DoxyItemize}\hypertarget{README.md_autotoc_md428}{}\doxysubsubsection{\texorpdfstring{List Operations}{List Operations}}\label{README.md_autotoc_md428}

\begin{DoxyItemize}
\item \doxysectlink{md_docs_2list_2list_add}{list\+Add}{0} -\/ Add an item to a list
\item \doxysectlink{md_docs_2list_2list_delete}{list\+Delete}{0} -\/ Delete a list
\item \doxysectlink{md_docs_2list_2list_get}{list\+Get}{0} -\/ Get items from a list
\item \doxysectlink{md_docs_2list_2list_load}{list\+Load}{0} -\/ Load a list from the database
\item \doxysectlink{md_docs_2list_2list_remove}{list\+Remove}{0} -\/ Remove an item from a list
\item \doxysectlink{md_docs_2list_2list_set}{list\+Set}{0} -\/ Set an item in a list
\end{DoxyItemize}\hypertarget{README.md_autotoc_md429}{}\doxysubsection{\texorpdfstring{Usage Examples}{Usage Examples}}\label{README.md_autotoc_md429}
\hypertarget{README.md_autotoc_md430}{}\doxysubsubsection{\texorpdfstring{Basic Usage}{Basic Usage}}\label{README.md_autotoc_md430}

\begin{DoxyCode}{0}
\DoxyCodeLine{//\ Initialize\ the\ database}
\DoxyCodeLine{[]\ call\ ramdb\_db\_fnc\_init;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Set\ a\ value}
\DoxyCodeLine{["{}myKey"{},\ [myValue]]\ call\ ramdb\_db\_fnc\_set;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ a\ value}
\DoxyCodeLine{["{}myKey"{},\ "{}myFunction"{}]\ call\ ramdb\_db\_fnc\_get;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Delete\ a\ key}
\DoxyCodeLine{["{}myKey"{}]\ call\ ramdb\_db\_fnc\_delete;}

\end{DoxyCode}
\hypertarget{README.md_autotoc_md431}{}\doxysubsubsection{\texorpdfstring{Hash Operations}{Hash Operations}}\label{README.md_autotoc_md431}

\begin{DoxyCode}{0}
\DoxyCodeLine{//\ Set\ a\ hash\ field\ (context\ mode)}
\DoxyCodeLine{["{}myField"{},\ [myValue]]\ call\ ramdb\_db\_fnc\_hashSet;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ a\ hash\ field\ (context\ mode)}
\DoxyCodeLine{["{}myField"{},\ "{}myFunction"{}]\ call\ ramdb\_db\_fnc\_hashGet;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ all\ hash\ fields\ (context\ mode)}
\DoxyCodeLine{["{}myFunction"{}]\ call\ ramdb\_db\_fnc\_hashGetAll;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Set\ multiple\ hash\ fields\ (context\ mode)}
\DoxyCodeLine{[[}
\DoxyCodeLine{\ \ \ \ "{}loadout"{},\ [getUnitLoadout\ player],}
\DoxyCodeLine{\ \ \ \ "{}position"{},\ [getPosASL\ player],}
\DoxyCodeLine{\ \ \ \ "{}direction"{},\ [getDir\ player],}
\DoxyCodeLine{\ \ \ \ "{}stance"{},\ [stance\ player]}
\DoxyCodeLine{]]\ call\ ramdb\_db\_fnc\_hashSetBulk;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Remove\ a\ hash\ field\ (context\ mode)}
\DoxyCodeLine{["{}myField"{}]\ call\ ramdb\_db\_fnc\_hashRemove;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Delete\ a\ hash\ table\ (context\ mode)}
\DoxyCodeLine{[]\ call\ ramdb\_db\_fnc\_hashDelete;}

\end{DoxyCode}
 
\begin{DoxyCode}{0}
\DoxyCodeLine{//\ Set\ a\ hash\ field\ for\ specific\ ID}
\DoxyCodeLine{["{}myHash"{},\ "{}myField"{},\ [myValue]]\ call\ ramdb\_db\_fnc\_hashSetId;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ a\ hash\ field\ for\ specific\ ID}
\DoxyCodeLine{["{}myHash"{},\ "{}myField"{},\ "{}myFunction"{}]\ call\ ramdb\_db\_fnc\_hashGetId;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ all\ hash\ fields\ for\ specific\ ID}
\DoxyCodeLine{["{}myHash"{}]\ call\ ramdb\_db\_fnc\_hashGetAllId;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Set\ multiple\ hash\ fields\ for\ specific\ ID}
\DoxyCodeLine{[[}
\DoxyCodeLine{\ \ \ \ getPlayerUID\ player,}
\DoxyCodeLine{\ \ \ \ "{}loadout"{},\ [getUnitLoadout\ player],}
\DoxyCodeLine{\ \ \ \ "{}position"{},\ [getPosASL\ player],}
\DoxyCodeLine{\ \ \ \ "{}direction"{},\ [getDir\ player],}
\DoxyCodeLine{\ \ \ \ "{}stance"{},\ [stance\ player]}
\DoxyCodeLine{]]\ call\ ramdb\_db\_fnc\_hashSetIdBulk;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Remove\ a\ hash\ field\ for\ specific\ ID}
\DoxyCodeLine{["{}myHash"{},\ "{}myField"{}]\ call\ ramdb\_db\_fnc\_hashRemoveId;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Delete\ a\ hash\ table\ for\ specific\ ID}
\DoxyCodeLine{["{}myHash"{}]\ call\ ramdb\_db\_fnc\_hashDeleteId;}

\end{DoxyCode}
\hypertarget{README.md_autotoc_md432}{}\doxysubsubsection{\texorpdfstring{List Operations}{List Operations}}\label{README.md_autotoc_md432}

\begin{DoxyCode}{0}
\DoxyCodeLine{//\ Add\ an\ item\ to\ a\ list}
\DoxyCodeLine{["{}myList"{},\ ["{}myItem"{}]]\ call\ ramdb\_db\_fnc\_listAdd;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Set\ an\ item\ from\ a\ list}
\DoxyCodeLine{["{}myList"{},\ 0,\ [myNewValue]]\ call\ ramdb\_db\_fnc\_listSet;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ an\ item\ from\ a\ list}
\DoxyCodeLine{["{}myList"{},\ 0,\ "{}myFunction"{}]\ call\ ramdb\_db\_fnc\_listGet;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Get\ items\ from\ a\ list}
\DoxyCodeLine{["{}myList"{},\ "{}myFunction"{}]\ call\ ramdb\_db\_fnc\_listLoad;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Remove\ an\ item\ from\ a\ list}
\DoxyCodeLine{["{}myList"{},\ 0]\ call\ ramdb\_db\_fnc\_listRemove;}
\DoxyCodeLine{}
\DoxyCodeLine{//\ Delete\ a\ list}
\DoxyCodeLine{["{}myList"{}]\ call\ ramdb\_db\_fnc\_listDelete;}

\end{DoxyCode}
\hypertarget{README.md_autotoc_md433}{}\doxysubsection{\texorpdfstring{Function Documentation Structure}{Function Documentation Structure}}\label{README.md_autotoc_md433}
Each function documentation includes\+:
\begin{DoxyItemize}
\item Function name and purpose
\item Parameters
\item Return value
\item Examples
\item Notes and warnings
\end{DoxyItemize}\hypertarget{README.md_autotoc_md434}{}\doxysubsection{\texorpdfstring{License}{License}}\label{README.md_autotoc_md434}
This work is licensed under the Creative Commons Attribution-\/\+Non\+Commercial-\/\+Share\+Alike 4.\+0 International License. To view a copy of this license, visit \href{https://creativecommons.org/licenses/by-nc-sa/4.0/}{\texttt{ https\+://creativecommons.\+org/licenses/by-\/nc-\/sa/4.\+0/}} or send a letter to Creative Commons, ~\newline
PO Box 1866, Mountain View, CA 94042 