\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_85062447ab8fc6ce1ace49ea19352da4}{
\index{ghash@{ghash}!count@{count}}
\index{count@{count}!ghash@{ghash}}
\subsubsection[count]{\setlength{\rightskip}{0pt plus 5cm}unsigned \hyperlink{structghash_85062447ab8fc6ce1ace49ea19352da4}{ghash::count}}}
\label{structghash_85062447ab8fc6ce1ace49ea19352da4}


The count is the number of items stored in the table. \begin{Desc}
\item[Examples: ]\par
\hyperlink{adt_2ghash__test_8c-example}{adt/ghash\_\-test.c}.\end{Desc}
\hypertarget{structghash_4cbd9f574c6f87da77716502f86edb9c}{
\index{ghash@{ghash}!datacopy@{datacopy}}
\index{datacopy@{datacopy}!ghash@{ghash}}
\subsubsection[datacopy]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{adt\_\-copy\_\-fn}$\ast$ \hyperlink{structghash_4cbd9f574c6f87da77716502f86edb9c}{ghash::datacopy}}}
\label{structghash_4cbd9f574c6f87da77716502f86edb9c}


Pointer to the function which copies a data item. \hypertarget{structghash_12837bf8bfcdc555608b0108c2e11231}{
\index{ghash@{ghash}!datafree@{datafree}}
\index{datafree@{datafree}!ghash@{ghash}}
\subsubsection[datafree]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_g87ba7ca9dce36c22fe75a730a1d768a9}{adt\_\-free\_\-fn}$\ast$ \hyperlink{structghash_12837bf8bfcdc555608b0108c2e11231}{ghash::datafree}}}
\label{structghash_12837bf8bfcdc555608b0108c2e11231}


Pointer to the function which fressa a data item. \hypertarget{structghash_329f39e342ffbe2785c98942d495e442}{
\index{ghash@{ghash}!entrysize@{entrysize}}
\index{entrysize@{entrysize}!ghash@{ghash}}
\subsubsection[entrysize]{\setlength{\rightskip}{0pt plus 5cm}unsigned long \hyperlink{structghash_329f39e342ffbe2785c98942d495e442}{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[hashfn]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_gd6ce53fbc11dbf67ca1c126cd17ee81a}{adt\_\-hash\_\-fn}$\ast$ \hyperlink{structghash_df5a40df7d67fc67ff491e62f1e424b2}{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[keycmp]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_g03ed35b7331128b069dc77ab33798782}{adt\_\-cmp\_\-fn}$\ast$ \hyperlink{structghash_e00fae5ef0ac14fb3585d1a9df7365ca}{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[keycopy]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{group__adt_ga98f7f3499407a5dc1afdcbb20df2e15}{adt\_\-copy\_\-fn}$\ast$ \hyperlink{structghash_3058447f36633ec2dd3648339199c03f}{ghash::keycopy}}}
\label{structghash_3058447f36633ec2dd3648339199c03f}


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


Pointer to the function which frees a key. \hypertarget{structghash_135a3980fc664e44994d77ae07732efe}{
\index{ghash@{ghash}!keysize@{keysize}}
\index{keysize@{keysize}!ghash@{ghash}}
\subsubsection[keysize]{\setlength{\rightskip}{0pt plus 5cm}unsigned long \hyperlink{structghash_135a3980fc664e44994d77ae07732efe}{ghash::keysize}}}
\label{structghash_135a3980fc664e44994d77ae07732efe}


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


The size is the number of slots available in the table. \begin{Desc}
\item[Examples: ]\par
\hyperlink{adt_2ghash__test_8c-example}{adt/ghash\_\-test.c}.\end{Desc}
\hypertarget{structghash_75a14a2d91ed8df59c5915d6ffa2a438}{
\index{ghash@{ghash}!table@{table}}
\index{table@{table}!ghash@{ghash}}
\subsubsection[table]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$$\ast$ \hyperlink{structghash_75a14a2d91ed8df59c5915d6ffa2a438}{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. 

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