\doxysection{workspace/post-\/scarcity/src/memory/hashmap.h File Reference}
\hypertarget{hashmap_8h}{}\label{hashmap_8h}\index{workspace/post-\/scarcity/src/memory/hashmap.h@{workspace/post-\/scarcity/src/memory/hashmap.h}}
{\ttfamily \#include "{}arith/integer.\+h"{}}\newline
{\ttfamily \#include "{}memory/conspage.\+h"{}}\newline
{\ttfamily \#include "{}memory/consspaceobject.\+h"{}}\newline
{\ttfamily \#include "{}memory/vectorspace.\+h"{}}\newline
Include dependency graph for hashmap.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{hashmap_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{hashmap_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{hashmap_8h_abc679bf03fc1ed8dccee8cc2a08d4211}{DFLT\+\_\+\+HASHMAP\+\_\+\+BUCKETS}}~32
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{hashmap_8h_a5031fd9c2432819ee4e7d1ba5f4812ce}{lisp\+\_\+get\+\_\+hash}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em A lisp function signature conforming wrapper around get\+\_\+hash, q.\+v. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{hashmap_8h_a8d0c095179bda2196eae01f111f59ff0}{lisp\+\_\+hashmap\+\_\+put}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Expects {\ttfamily frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}1\mbox{]}} to be a hashmap or namespace; {\ttfamily frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}2\mbox{]}} to be a string-\/like-\/thing (perhaps necessarily a keyword); frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}3\mbox{]} to be any value. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{hashmap_8h_a12025927fdfc09645ee5fade9eba4a5e}{lisp\+\_\+hashmap\+\_\+put\+\_\+all}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Lisp function expecting two arguments, a hashmap and an assoc list. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{hashmap_8h_a9a1bd4ba729b966b71e32d61ba7c116a}{lisp\+\_\+make\+\_\+hashmap}} (struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)
\begin{DoxyCompactList}\small\item\em Lisp funtion of up to four args (all optional), where. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\Hypertarget{hashmap_8h_abc679bf03fc1ed8dccee8cc2a08d4211}\label{hashmap_8h_abc679bf03fc1ed8dccee8cc2a08d4211} 
\index{hashmap.h@{hashmap.h}!DFLT\_HASHMAP\_BUCKETS@{DFLT\_HASHMAP\_BUCKETS}}
\index{DFLT\_HASHMAP\_BUCKETS@{DFLT\_HASHMAP\_BUCKETS}!hashmap.h@{hashmap.h}}
\doxysubsubsection{\texorpdfstring{DFLT\_HASHMAP\_BUCKETS}{DFLT\_HASHMAP\_BUCKETS}}
{\footnotesize\ttfamily \#define DFLT\+\_\+\+HASHMAP\+\_\+\+BUCKETS~32}



Definition at line \mbox{\hyperlink{hashmap_8h_source_l00018}{18}} of file \mbox{\hyperlink{hashmap_8h_source}{hashmap.\+h}}.



\doxysubsection{Function Documentation}
\Hypertarget{hashmap_8h_a5031fd9c2432819ee4e7d1ba5f4812ce}\label{hashmap_8h_a5031fd9c2432819ee4e7d1ba5f4812ce} 
\index{hashmap.h@{hashmap.h}!lisp\_get\_hash@{lisp\_get\_hash}}
\index{lisp\_get\_hash@{lisp\_get\_hash}!hashmap.h@{hashmap.h}}
\doxysubsubsection{\texorpdfstring{lisp\_get\_hash()}{lisp\_get\_hash()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+get\+\_\+hash (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



A lisp function signature conforming wrapper around get\+\_\+hash, q.\+v. 



Definition at line \mbox{\hyperlink{hashmap_8c_source_l00025}{25}} of file \mbox{\hyperlink{hashmap_8c_source}{hashmap.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00081}{get\+\_\+hash()}}, \mbox{\hyperlink{integer_8c_source_l00089}{make\+\_\+integer()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{hashmap_8h_a8d0c095179bda2196eae01f111f59ff0}\label{hashmap_8h_a8d0c095179bda2196eae01f111f59ff0} 
\index{hashmap.h@{hashmap.h}!lisp\_hashmap\_put@{lisp\_hashmap\_put}}
\index{lisp\_hashmap\_put@{lisp\_hashmap\_put}!hashmap.h@{hashmap.h}}
\doxysubsubsection{\texorpdfstring{lisp\_hashmap\_put()}{lisp\_hashmap\_put()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+hashmap\+\_\+put (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Expects {\ttfamily frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}1\mbox{]}} to be a hashmap or namespace; {\ttfamily frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}2\mbox{]}} to be a string-\/like-\/thing (perhaps necessarily a keyword); frame-\/\texorpdfstring{$>$}{>}arg\mbox{[}3\mbox{]} to be any value. 

If current user is authorised to write to this hashmap, modifies the hashmap and returns it; if not, clones the hashmap, modifies the clone, and returns that. 

Definition at line \mbox{\hyperlink{hashmap_8c_source_l00106}{106}} of file \mbox{\hyperlink{hashmap_8c_source}{hashmap.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00385}{hashmap\+\_\+put()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{hashmap_8h_a12025927fdfc09645ee5fade9eba4a5e}\label{hashmap_8h_a12025927fdfc09645ee5fade9eba4a5e} 
\index{hashmap.h@{hashmap.h}!lisp\_hashmap\_put\_all@{lisp\_hashmap\_put\_all}}
\index{lisp\_hashmap\_put\_all@{lisp\_hashmap\_put\_all}!hashmap.h@{hashmap.h}}
\doxysubsubsection{\texorpdfstring{lisp\_hashmap\_put\_all()}{lisp\_hashmap\_put\_all()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+hashmap\+\_\+put\+\_\+all (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Lisp function expecting two arguments, a hashmap and an assoc list. 

Copies all key/value pairs from the assoc list into the map. 

Definition at line \mbox{\hyperlink{hashmap_8c_source_l00126}{126}} of file \mbox{\hyperlink{hashmap_8c_source}{hashmap.\+c}}.



References \mbox{\hyperlink{intern_8c_source_l00183}{hashmap\+\_\+put\+\_\+all()}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{hashmap_8h_a9a1bd4ba729b966b71e32d61ba7c116a}\label{hashmap_8h_a9a1bd4ba729b966b71e32d61ba7c116a} 
\index{hashmap.h@{hashmap.h}!lisp\_make\_hashmap@{lisp\_make\_hashmap}}
\index{lisp\_make\_hashmap@{lisp\_make\_hashmap}!hashmap.h@{hashmap.h}}
\doxysubsubsection{\texorpdfstring{lisp\_make\_hashmap()}{lisp\_make\_hashmap()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} lisp\+\_\+make\+\_\+hashmap (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}}]{frame,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{env }\end{DoxyParamCaption})}



Lisp funtion of up to four args (all optional), where. 

first is expected to be an integer, the number of buckets, or nil; second is expected to be a hashing function, or nil; third is expected to be an assocable, or nil; fourth is a list of user tokens, to be used as a write ACL, or nil. 

Definition at line \mbox{\hyperlink{hashmap_8c_source_l00039}{39}} of file \mbox{\hyperlink{hashmap_8c_source}{hashmap.\+c}}.



References \mbox{\hyperlink{authorise_8c_source_l00018}{authorised()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00125}{c\+\_\+car()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{hashmap_8h_source_l00018}{DFLT\+\_\+\+HASHMAP\+\_\+\+BUCKETS}}, \mbox{\hyperlink{consspaceobject_8h_source_l00318}{functionp}}, \mbox{\hyperlink{intern_8c_source_l00081}{get\+\_\+hash()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00353}{integerp}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00200}{make\+\_\+exception()}}, \mbox{\hyperlink{intern_8c_source_l00137}{make\+\_\+hashmap()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{vectorspace_8h_a52100a8d038844c00250f5356f1b9a3f}{vector\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{vectorspace_8h_source_l00055}{pointer\+\_\+to\+\_\+vso}}, \mbox{\hyperlink{peano_8c_source_l00176}{to\+\_\+long\+\_\+int()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00410}{truep}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

