Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

rpmdb/fprint.c File Reference

More...

#include "system.h"
#include <rpmdb.h>
#include <rpmmacro.h>
#include "fprint.h"
#include "debug.h"

Go to the source code of this file.

Functions

fingerPrintCache fpCacheCreate (int sizeHint)
 Create finger print cache.

fingerPrintCache fpCacheFree (fingerPrintCache cache)
 Destroy finger print cache.

const struct fprintCacheEntry_scacheContainsDirectory (fingerPrintCache cache, const char *dirName)
 Find directory name entry in cache.

fingerPrint doLookup (fingerPrintCache cache, const char *dirName, const char *baseName, int scareMemory)
 Return finger print of a file path.

fingerPrint fpLookup (fingerPrintCache cache, const char *dirName, const char *baseName, int scareMemory)
 Return finger print of a file path.

unsigned int fpHashFunction (const void *key)
 Return hash value for a finger print.

int fpEqual (const void *key1, const void *key2)
 Compare two finger print entries.

void fpLookupList (fingerPrintCache cache, const char **dirNames, const char **baseNames, const int *dirIndexes, int fileCount, fingerPrint *fpList)
 Return finger prints of an array of file paths.


Detailed Description

Definition in file fprint.c.


Function Documentation

const struct fprintCacheEntry_s* cacheContainsDirectory fingerPrintCache    cache,
const char *    dirName
[static]
 

Find directory name entry in cache.

Parameters:
cache  pointer to fingerprint cache
dirName  string to locate in cache
Returns:
pointer to directory name entry (or NULL if not found).

Definition at line 36 of file fprint.c.

References htGetEntry().

Referenced by doLookup().

fingerPrint doLookup fingerPrintCache    cache,
const char *    dirName,
const char *    baseName,
int    scareMemory
[static]
 

Return finger print of a file path.

Parameters:
cache  pointer to fingerprint cache
dirName  leading directory name of path
baseName  file name of path
scareMemory 
Returns:
pointer to the finger print associated with a file path.

Definition at line 59 of file fprint.c.

References alloca(), fingerPrint_s::baseName, cacheContainsDirectory(), fprintCacheEntry_s::dev, fprintCacheEntry_s::dirName, fingerPrint_s::entry, fprintCache_s::ht, htAddEntry(), fprintCacheEntry_s::ino, PATH_MAX, realpath(), rpmCleanPath(), stpncpy(), fingerPrint_s::subDir, xmalloc(), and xstrdup().

Referenced by fpLookup(), and fpLookupList().

fingerPrintCache fpCacheCreate int    sizeHint
 

Create finger print cache.

Parameters:
sizeHint  number of elements expected
Returns:
pointer to initialized fingerprint cache

Definition at line 13 of file fprint.c.

References fprintCache_s::ht, htCreate(), and xmalloc().

Referenced by rpmdbFindByFile(), rpmdbFindFpList(), and rpmtsRun().

fingerPrintCache fpCacheFree fingerPrintCache    cache
 

Destroy finger print cache.

Parameters:
cache  pointer to fingerprint cache
Returns:
NULL always

Definition at line 23 of file fprint.c.

References fprintCache_s::ht, and htFree().

Referenced by rpmdbFindByFile(), rpmdbFindFpList(), and rpmtsRun().

int fpEqual const void *    key1,
const void *    key2
 

Compare two finger print entries.

This routine is exactly equivalent to the FP_EQUAL macro.

Parameters:
key1  finger print 1
key2  finger print 2
Returns:
result of comparing key1 and key2

Definition at line 216 of file fprint.c.

References FP_EQUAL.

unsigned int fpHashFunction const void *    key
 

Return hash value for a finger print.

Hash based on dev and inode only!

Parameters:
key  pointer to finger print entry
Returns:
hash value

Definition at line 195 of file fprint.c.

References fingerPrint_s::baseName, fprintCacheEntry_s::dev, fingerPrint_s::entry, and fprintCacheEntry_s::ino.

fingerPrint fpLookup fingerPrintCache    cache,
const char *    dirName,
const char *    baseName,
int    scareMemory
 

Return finger print of a file path.

Parameters:
cache  pointer to fingerprint cache
dirName  leading directory name of file path
baseName  base name of file path
scareMemory 
Returns:
pointer to the finger print associated with a file path.

Definition at line 189 of file fprint.c.

References doLookup().

Referenced by rpmdbFindByFile().

void fpLookupList fingerPrintCache    cache,
const char **    dirNames,
const char **    baseNames,
const int *    dirIndexes,
int    fileCount,
fingerPrint   fpList
 

Return finger prints of an array of file paths.

@warning: scareMemory is assumed!

Parameters:
cache  pointer to fingerprint cache
dirNames  directory names
baseNames  file base names
dirIndexes  index into dirNames for each baseNames
fileCount  number of file entries
Return values:
fpList  pointer to array of finger prints

Definition at line 236 of file fprint.c.

References fingerPrint_s::baseName, doLookup(), fingerPrint_s::entry, and fingerPrint_s::subDir.

Referenced by rpmdbFindFpList(), and rpmtsRun().


Generated on Sun Oct 26 13:02:07 2003 for rpm by doxygen1.2.18