# python/hash.c File Reference

`#include <stdlib.h>`
`#include <unistd.h>`
`#include <stdio.h>`
`#include <string.h>`
`#include "hash.h"`

Go to the source code of this file.

## Data Structures

struct | filePath
struct | bucket
struct | hash_table

## Defines

#define | CHUNK 1

## Functions

hash_table * | htNewTable (int size)
void | htFreeHashTable (struct hash_table *ht)
void | htHashStats (const struct hash_table *t)
static unsigned int | htHashStrings (const char *s, const char *t)
static int | in_table_aux (struct hash_table *t, int hash, const char *dir, const char *base)
int | htInTable (struct hash_table *t, const char *dir, const char *base)
void | htAddToTable (struct hash_table *t, const char *dir, const char *base)
void | htRemoveFromTable (struct hash_table *t, const char *dir, const char *base)
int | htNumEntries (struct hash_table *t)
void | htIterStart (htIterator *iter)
int | htIterGetNext (struct hash_table *t, htIterator *iter, const char **dir, const char **base)

## Detailed Description

Definition in file hash.c.

## Define Documentation

#define CHUNK 1

Definition at line 12 of file hash.c.

Referenced by htAddToTable(), and htNewTable().

## Function Documentation

void htAddToTable | ( | struct hash_table * | t,
|  | const char * | dir,
|  | const char * | base |
| ) |  |  |

Definition at line 133 of file hash.c.

References bucket::allocated, filePath::base, hash_table::bucket, CHUNK, bucket::data, filePath::dir, hash_table::entries, bucket::firstFree, htHashStrings(), in_table_aux(), hash_table::overHead, and hash_table::size.

Referenced by compareFileList().

void htFreeHashTable | ( | struct hash_table * | ht | ) |

Definition at line 53 of file hash.c.

References filePath::base, hash_table::bucket, bucket::data, filePath::dir, bucket::firstFree, and hash_table::size.

Referenced by ugFindUpgradePackages().

void htHashStats | ( | const struct hash_table * | t | ) |

Definition at line 71 of file hash.c.

References hash_table::bucket, hash_table::entries, bucket::firstFree, hash_table::overHead, and hash_table::size.

static unsigned int htHashStrings | ( | const char * | s,
|  | const char * | t |
| ) |  |  | `[static]`

Definition at line 92 of file hash.c.

Referenced by htAddToTable(), htInTable(), and htRemoveFromTable().

int htInTable | ( | struct hash_table * | t,
|  | const char * | dir,
|  | const char * | base |
| ) |  |  |

Definition at line 122 of file hash.c.

References htHashStrings(), in_table_aux(), and hash_table::size.

Referenced by findPackagesWithRelocatedFiles(), and removeMovedFilesAlreadyHandled().

int htIterGetNext | ( | struct hash_table * | t,
|  | htIterator * | iter,
|  | const char ** | dir,
|  | const char ** | base |
| ) |  |  |

Definition at line 185 of file hash.c.

References filePath::base, ht_iterator::bucket, hash_table::bucket, bucket::data, filePath::dir, bucket::firstFree, ht_iterator::item, and hash_table::size.

void htIterStart | ( | htIterator * | iter | ) |

Definition at line 180 of file hash.c.

References ht_iterator::bucket, and ht_iterator::item.

struct hash_table* htNewTable | ( | int | size | ) | `[read]`

Definition at line 32 of file hash.c.

References bucket::allocated, hash_table::bucket, CHUNK, bucket::data, hash_table::entries, bucket::firstFree, hash_table::overHead, and hash_table::size.

Referenced by ugFindUpgradePackages().

int htNumEntries | ( | struct hash_table * | t | ) |

Definition at line 176 of file hash.c.

References hash_table::entries.

void htRemoveFromTable | ( | struct hash_table * | t,
|  | const char * | dir,
|  | const char * | base |
| ) |  |  |

Definition at line 158 of file hash.c.

References filePath::base, hash_table::bucket, bucket::data, filePath::dir, bucket::firstFree, htHashStrings(), in_table_aux(), and hash_table::size.

Referenced by findPackagesWithRelocatedFiles(), and removeMovedFilesAlreadyHandled().

static int in_table_aux | ( | struct hash_table * | t,
|  | int | hash,
|  | const char * | dir,
|  | const char * | base |
| ) |  |  | `[static]`

Definition at line 105 of file hash.c.

References filePath::base, hash_table::bucket, bucket::data, filePath::dir, and bucket::firstFree.

Referenced by htAddToTable(), htInTable(), and htRemoveFromTable().