#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) |
Definition in file hash.c.
#define CHUNK 1 |
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, ht_iterator::item, and hash_table::size.
void htIterStart | ( | htIterator * | iter | ) |
struct hash_table* htNewTable | ( | int | size | ) |
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 | ) |
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().