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_sfingerPrintCache
typedef struct fingerPrint_s fingerPrint

Functions

int rpmdbFindFpList (rpmdb db, fingerPrint *fpList, dbiIndexSet *matchList, int numItems)
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 58 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 61 of file fprint.h.

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

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

Definition at line 55 of file fprint.h.


Typedef Documentation

typedef struct fingerPrint_s fingerPrint
 

Todo:
Convert to pointer and make abstract.

Definition at line 19 of file fprint.h.

typedef struct fprintCache_s * fingerPrintCache
 

Definition at line 14 of file fprint.h.


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 13 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 23 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 209 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 191 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 185 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 247 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 227 of file fprint.c.

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


Generated at Fri Aug 2 00:04:15 2002 for rpm by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001