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

rpmdb/fprint.h File Reference

Identify a file name path by a unique "finger print". More...

#include "rpmhash.h"
#include "header.h"

Go to the source code of this file.

Data Structures

struct  fingerPrint_s
 Associates a trailing sub-directory and final base name with an existing directory finger print. More...

struct  fprintCache_s
 Finger print cache. More...

struct  fprintCacheEntry_s
 Finger print cache entry. More...


Defines

#define fpFree(a)   free((void *)(a).baseName)
#define FP_ENTRY_EQUAL(a, b)   (((a)->dev == (b)->dev) && ((a)->ino == (b)->ino))
#define FP_EQUAL(a, b)

Typedefs

typedef struct fprintCache_s *  fingerPrintCache
 Finger print cache. More...

typedef struct fingerPrint_s  fingerPrint
 Associates a trailing sub-directory and final base name with an existing directory finger print. More...


Functions

fingerPrintCache fpCacheCreate (int sizeHint)
 Create finger print cache. More...

void fpCacheFree (fingerPrintCache cache)
 Destroy finger print cache. More...

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

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

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

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. More...

void fpLookupHeader (fingerPrintCache cache, Header h, fingerPrint *fpList)
 Return finger prints of all file names in header. More...


Detailed Description

Identify a file name path by a unique "finger print".

Definition in file fprint.h.


Define Documentation

#define FP_ENTRY_EQUAL( a, b )   (((a)->dev == (b)->dev) && ((a)->ino == (b)->ino))
 

Definition at line 49 of file fprint.h.

#define FP_EQUAL( a, b )
 

Value:

        ( \
        FP_ENTRY_EQUAL((a).entry, (b).entry) && \
        !strcmp((a).baseName, (b).baseName) && ( \
            ((a).subDir == (b).subDir) || \
            ((a).subDir && (b).subDir && !strcmp((a).subDir, (b).subDir)) \
        ) \
    )

Definition at line 52 of file fprint.h.

Referenced by fpEqual(), handleOverlappedFiles(), rpmdbFindByFile(), and rpmdbFindFpList().

#define fpFree( a )   free((void *)(a).baseName)
 

Definition at line 46 of file fprint.h.


Typedef Documentation

typedef struct fingerPrint_s fingerPrint
 

Associates a trailing sub-directory and final base name with an existing directory finger print.

typedef struct fprintCache_s * fingerPrintCache
 

Finger print cache.


Function Documentation

fingerPrintCache fpCacheCreate ( int sizeHint )
 

Create finger print cache.

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

Definition at line 12 of file fprint.c.

Referenced by FP_EQUAL(), rpmRunTransactions(), rpmdbFindByFile(), and rpmdbFindFpList().

void fpCacheFree ( fingerPrintCache cache )
 

Destroy finger print cache.

Parameters:
cache   pointer to fingerprint cache

Definition at line 22 of file fprint.c.

Referenced by FP_EQUAL(), rpmRunTransactions(), rpmdbFindByFile(), and rpmdbFindFpList().

int fpEqual ( const void * key1,
const void * key2 )
 

Compare two finger print entries.

exactly equivalent to FP_EQUAL macro.

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

Definition at line 198 of file fprint.c.

Referenced by 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 180 of file fprint.c.

Referenced by FP_EQUAL().

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 174 of file fprint.c.

Referenced by FP_EQUAL(), and rpmdbFindByFile().

void fpLookupHeader ( fingerPrintCache cache,
Header h,
fingerPrint * fpList )
 

Return finger prints of all file names in header.

@warning: scareMemory is assumed!

Parameters:
cache   pointer to fingerprint cache
h   package header
Return values:
fpList   pointer to array of finger prints

Definition at line 236 of file fprint.c.

Referenced by FP_EQUAL().

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 216 of file fprint.c.

Referenced by FP_EQUAL(), fpLookupHeader(), rpmRunTransactions(), and rpmdbFindFpList().


Generated at Mon Sep 24 10:37:48 2001 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001