\hypertarget{structghash}{
\section{ghash Struct Reference}
\label{structghash}\index{ghash@{ghash}}
}
{\tt \#include $<$ghash.h$>$}

\subsection*{Data Fields}
\begin{CompactItemize}
\item 
void $\ast$$\ast$ \hyperlink{structghash_75a14a2d91ed8df59c5915d6ffa2a438}{table}
\item 
unsigned \hyperlink{structghash_85062447ab8fc6ce1ace49ea19352da4}{count}
\item 
unsigned \hyperlink{structghash_5059677cb7a590ba556c018fb948160d}{size}
\item 
unsigned long \hyperlink{structghash_135a3980fc664e44994d77ae07732efe}{keysize}
\item 
unsigned long \hyperlink{structghash_329f39e342ffbe2785c98942d495e442}{entrysize}
\item 
\hyperlink{group__adt_gd6ce53fbc11dbf67ca1c126cd17ee81a}{adt\_\-hash\_\-fn} $\ast$ \hyperlink{structghash_df5a40df7d67fc67ff491e62f1e424b2}{hashfn}
\item 
\hyperlink{group__adt_g03ed35b7331128b069dc77ab33798782}{adt\_\-cmp\_\-fn} $\ast$ \hyperlink{structghash_e00fae5ef0ac14fb3585d1a9df7365ca}{keycmp}
\item 
\hyperlink{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{adt\_\-copy\_\-fn} $\ast$ \hyperlink{structghash_3058447f36633ec2dd3648339199c03f}{keycopy}
\item 
\hyperlink{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{adt\_\-copy\_\-fn} $\ast$ \hyperlink{structghash_4cbd9f574c6f87da77716502f86edb9c}{datacopy}
\item 
\hyperlink{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}{adt\_\-free\_\-fn} $\ast$ \hyperlink{structghash_bb606fc7cd6c3a8c6e25b571648bd372}{keyfree}
\item 
\hyperlink{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}{adt\_\-free\_\-fn} $\ast$ \hyperlink{structghash_12837bf8bfcdc555608b0108c2e11231}{datafree}
\end{CompactItemize}


\subsection{Detailed Description}
The core generic hash table structure. \begin{Desc}
\item[Examples: ]\par


\hyperlink{adt_2ghash__test_8c-example}{adt/ghash\_\-test.c}.\end{Desc}


\subsection{Field Documentation}
\hypertarget{structghash_75a14a2d91ed8df59c5915d6ffa2a438}{
\index{ghash@{ghash}!table@{table}}
\index{table@{table}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void$\ast$$\ast$ {\bf ghash::table}}}
\label{structghash_75a14a2d91ed8df59c5915d6ffa2a438}


The hash table itself is an array of pointers, the actual type of which is dependant on the declaration of the table. \hypertarget{structghash_85062447ab8fc6ce1ace49ea19352da4}{
\index{ghash@{ghash}!count@{count}}
\index{count@{count}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned {\bf ghash::count}}}
\label{structghash_85062447ab8fc6ce1ace49ea19352da4}


The count is the number of items stored in the table. \hypertarget{structghash_5059677cb7a590ba556c018fb948160d}{
\index{ghash@{ghash}!size@{size}}
\index{size@{size}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned {\bf ghash::size}}}
\label{structghash_5059677cb7a590ba556c018fb948160d}


The size is the number of slots available in the table. \hypertarget{structghash_135a3980fc664e44994d77ae07732efe}{
\index{ghash@{ghash}!keysize@{keysize}}
\index{keysize@{keysize}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long {\bf ghash::keysize}}}
\label{structghash_135a3980fc664e44994d77ae07732efe}


The size, in bytes, of the key structure in each table entry. \hypertarget{structghash_329f39e342ffbe2785c98942d495e442}{
\index{ghash@{ghash}!entrysize@{entrysize}}
\index{entrysize@{entrysize}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long {\bf ghash::entrysize}}}
\label{structghash_329f39e342ffbe2785c98942d495e442}


The total size, in bytes, of an entry (key and data). \hypertarget{structghash_df5a40df7d67fc67ff491e62f1e424b2}{
\index{ghash@{ghash}!hashfn@{hashfn}}
\index{hashfn@{hashfn}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf adt\_\-hash\_\-fn}$\ast$ {\bf ghash::hashfn}}}
\label{structghash_df5a40df7d67fc67ff491e62f1e424b2}


Pointer to the function which produces a hash of a key. \hypertarget{structghash_e00fae5ef0ac14fb3585d1a9df7365ca}{
\index{ghash@{ghash}!keycmp@{keycmp}}
\index{keycmp@{keycmp}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf adt\_\-cmp\_\-fn}$\ast$ {\bf ghash::keycmp}}}
\label{structghash_e00fae5ef0ac14fb3585d1a9df7365ca}


Pointer to the function which compares two keys. \hypertarget{structghash_3058447f36633ec2dd3648339199c03f}{
\index{ghash@{ghash}!keycopy@{keycopy}}
\index{keycopy@{keycopy}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf adt\_\-copy\_\-fn}$\ast$ {\bf ghash::keycopy}}}
\label{structghash_3058447f36633ec2dd3648339199c03f}


Pointer to the function which copies a key. \hypertarget{structghash_4cbd9f574c6f87da77716502f86edb9c}{
\index{ghash@{ghash}!datacopy@{datacopy}}
\index{datacopy@{datacopy}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf adt\_\-copy\_\-fn}$\ast$ {\bf ghash::datacopy}}}
\label{structghash_4cbd9f574c6f87da77716502f86edb9c}


Pointer to the function which copies a data item. \hypertarget{structghash_bb606fc7cd6c3a8c6e25b571648bd372}{
\index{ghash@{ghash}!keyfree@{keyfree}}
\index{keyfree@{keyfree}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf adt\_\-free\_\-fn}$\ast$ {\bf ghash::keyfree}}}
\label{structghash_bb606fc7cd6c3a8c6e25b571648bd372}


Pointer to the function which frees a key. \hypertarget{structghash_12837bf8bfcdc555608b0108c2e11231}{
\index{ghash@{ghash}!datafree@{datafree}}
\index{datafree@{datafree}!ghash@{ghash}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf adt\_\-free\_\-fn}$\ast$ {\bf ghash::datafree}}}
\label{structghash_12837bf8bfcdc555608b0108c2e11231}


Pointer to the function which fressa a data item. 

The documentation for this struct was generated from the following file:\begin{CompactItemize}
\item 
ghash.h\end{CompactItemize}
