\hypertarget{group__adt}{
\section{adt: Abstract Data Types.}
\label{group__adt}\index{adt: Abstract Data Types.@{adt: Abstract Data Types.}}
}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef unsigned long \hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t}
\item 
typedef void \hyperlink{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}{adt\_\-free\_\-fn} (void $\ast$)
\item 
typedef int \hyperlink{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{adt\_\-copy\_\-fn} (void $\ast$, const void $\ast$)
\item 
typedef int \hyperlink{group__adt_g03ed35b7331128b069dc77ab33798782}{adt\_\-cmp\_\-fn} (const void $\ast$, const void $\ast$)
\item 
typedef \hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} \hyperlink{group__adt_gd6ce53fbc11dbf67ca1c126cd17ee81a}{adt\_\-hash\_\-fn} (const void $\ast$)
\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
\hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} \hyperlink{group__adt_gd9ce9e50c1be3b099d94315960807237}{adt\_\-hashb} (const unsigned char $\ast$, unsigned long)
\item 
\hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} \hyperlink{group__adt_g9b98c9ab4f62ccca61ad6903a0ebd798}{adt\_\-hashs} (const unsigned char $\ast$)
\item 
\hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} \hyperlink{group__adt_g7e68b73378693c9b0945a11f849f3063}{adt\_\-hashsp} (const char $\ast$const $\ast$)
\item 
int \hyperlink{group__adt_g84ea1556ed78318147cfc5d9a6674e13}{adt\_\-cmpsp} (const char $\ast$const $\ast$a, const char $\ast$const $\ast$b)
\item 
int \hyperlink{group__adt_g6fa5c9c6df55cb8f4b73cfede896ed66}{adt\_\-copysp} (const char $\ast$$\ast$a, const char $\ast$const $\ast$b)
\item 
void \hyperlink{group__adt_g28e2128b21e2a458f09423111ade4595}{adt\_\-freesp} (const char $\ast$$\ast$a)
\end{CompactItemize}


\subsection{Typedef Documentation}
\hypertarget{group__adt_g03ed35b7331128b069dc77ab33798782}{
\index{adt@{adt}!adt_cmp_fn@{adt\_\-cmp\_\-fn}}
\index{adt_cmp_fn@{adt\_\-cmp\_\-fn}!adt@{adt}}
\subsubsection[adt\_\-cmp\_\-fn]{\setlength{\rightskip}{0pt plus 5cm}typedef int \hyperlink{group__adt_g03ed35b7331128b069dc77ab33798782}{adt\_\-cmp\_\-fn}(const void $\ast$, const void $\ast$)}}
\label{group__adt_g03ed35b7331128b069dc77ab33798782}


A function prototype for comparing two items. Such functions must return zero if the two items are identical, positive if the first is larger, and negative if the first is smaller. \hypertarget{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{
\index{adt@{adt}!adt_copy_fn@{adt\_\-copy\_\-fn}}
\index{adt_copy_fn@{adt\_\-copy\_\-fn}!adt@{adt}}
\subsubsection[adt\_\-copy\_\-fn]{\setlength{\rightskip}{0pt plus 5cm}typedef int \hyperlink{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{adt\_\-copy\_\-fn}(void $\ast$, const void $\ast$)}}
\label{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}


A function prototype for copying something. The function is expected to return false (zero) if the copy failed for any reason (ie could not allocate memory). \hypertarget{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}{
\index{adt@{adt}!adt_free_fn@{adt\_\-free\_\-fn}}
\index{adt_free_fn@{adt\_\-free\_\-fn}!adt@{adt}}
\subsubsection[adt\_\-free\_\-fn]{\setlength{\rightskip}{0pt plus 5cm}typedef void \hyperlink{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}{adt\_\-free\_\-fn}(void $\ast$)}}
\label{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}


A function prototype used for freeing something. \hypertarget{group__adt_gd6ce53fbc11dbf67ca1c126cd17ee81a}{
\index{adt@{adt}!adt_hash_fn@{adt\_\-hash\_\-fn}}
\index{adt_hash_fn@{adt\_\-hash\_\-fn}!adt@{adt}}
\subsubsection[adt\_\-hash\_\-fn]{\setlength{\rightskip}{0pt plus 5cm}typedef \hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} \hyperlink{group__adt_gd6ce53fbc11dbf67ca1c126cd17ee81a}{adt\_\-hash\_\-fn}(const void $\ast$)}}
\label{group__adt_gd6ce53fbc11dbf67ca1c126cd17ee81a}


A function prototype for hasing an item (typically a key). \hypertarget{group__adt_gab1a0335d8d46afee323cf2b3d132145}{
\index{adt@{adt}!adt_hash_t@{adt\_\-hash\_\-t}}
\index{adt_hash_t@{adt\_\-hash\_\-t}!adt@{adt}}
\subsubsection[adt\_\-hash\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long \hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t}}}
\label{group__adt_gab1a0335d8d46afee323cf2b3d132145}


The hash value type. All hash functions must output a value of this type, and all functions that use a hash store it in this type. 

\subsection{Function Documentation}
\hypertarget{group__adt_g84ea1556ed78318147cfc5d9a6674e13}{
\index{adt@{adt}!adt_cmpsp@{adt\_\-cmpsp}}
\index{adt_cmpsp@{adt\_\-cmpsp}!adt@{adt}}
\subsubsection[adt\_\-cmpsp]{\setlength{\rightskip}{0pt plus 5cm}int adt\_\-cmpsp (const char $\ast$const $\ast$ {\em a}, const char $\ast$const $\ast$ {\em b})}}
\label{group__adt_g84ea1556ed78318147cfc5d9a6674e13}


A sample function for comparing two C string pointers. \hypertarget{group__adt_g6fa5c9c6df55cb8f4b73cfede896ed66}{
\index{adt@{adt}!adt_copysp@{adt\_\-copysp}}
\index{adt_copysp@{adt\_\-copysp}!adt@{adt}}
\subsubsection[adt\_\-copysp]{\setlength{\rightskip}{0pt plus 5cm}int adt\_\-copysp (const char $\ast$$\ast$ {\em a}, const char $\ast$const $\ast$ {\em b})}}
\label{group__adt_g6fa5c9c6df55cb8f4b73cfede896ed66}


A sample function for copying a C string pointer. \hypertarget{group__adt_g28e2128b21e2a458f09423111ade4595}{
\index{adt@{adt}!adt_freesp@{adt\_\-freesp}}
\index{adt_freesp@{adt\_\-freesp}!adt@{adt}}
\subsubsection[adt\_\-freesp]{\setlength{\rightskip}{0pt plus 5cm}void adt\_\-freesp (const char $\ast$$\ast$ {\em a})}}
\label{group__adt_g28e2128b21e2a458f09423111ade4595}


A sample function for freeing a C string pointer. \hypertarget{group__adt_gd9ce9e50c1be3b099d94315960807237}{
\index{adt@{adt}!adt_hashb@{adt\_\-hashb}}
\index{adt_hashb@{adt\_\-hashb}!adt@{adt}}
\subsubsection[adt\_\-hashb]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} adt\_\-hashb (const unsigned char $\ast$, unsigned {\em long})}}
\label{group__adt_gd9ce9e50c1be3b099d94315960807237}


A sample function for hasing a block of memory. \hypertarget{group__adt_g9b98c9ab4f62ccca61ad6903a0ebd798}{
\index{adt@{adt}!adt_hashs@{adt\_\-hashs}}
\index{adt_hashs@{adt\_\-hashs}!adt@{adt}}
\subsubsection[adt\_\-hashs]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} adt\_\-hashs (const unsigned char $\ast$)}}
\label{group__adt_g9b98c9ab4f62ccca61ad6903a0ebd798}


A sample function for hashing a C string. \hypertarget{group__adt_g7e68b73378693c9b0945a11f849f3063}{
\index{adt@{adt}!adt_hashsp@{adt\_\-hashsp}}
\index{adt_hashsp@{adt\_\-hashsp}!adt@{adt}}
\subsubsection[adt\_\-hashsp]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_gab1a0335d8d46afee323cf2b3d132145}{adt\_\-hash\_\-t} adt\_\-hashsp (const char $\ast$const $\ast$)}}
\label{group__adt_g7e68b73378693c9b0945a11f849f3063}


A sample function for hashing a C string pointer. 