rpmdb/fprint.h - Identify a file name path by a unique 'finger print'.
#include 'rpmhash.h'
#include 'header.h'
struct fingerPrint_s
Associates a trailing sub-directory and final base name with an existing directory finger print.
struct fprintCache_s
Finger print cache.
struct fprintCacheEntry_s
Finger print cache entry.
#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)
typedef fprintCache_s * fingerPrintCache
typedef fingerPrint_s fingerPrint
int rpmdbFindFpList (rpmdb db, fingerPrint *fpList, dbiIndexSet *matchList, int numItems)
fingerPrintCache fpCacheCreate (int sizeHint)
Create finger print cache.
void fpCacheFree (fingerPrintCache cache)
Destroy finger print cache.
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.
void fpLookupHeader (fingerPrintCache cache, Header h, fingerPrint *fpList)
Return finger prints of all file names in header.
Identify a file name path by a unique 'finger print'.
Definition at line 58 of file fprint.h.
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().
Definition at line 55 of file fprint.h.
Todo:
Convert to pointer and make abstract.
Definition at line 19 of file fprint.h.
Definition at line 14 of file fprint.h.
Create finger print cache.
Parameters:
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 rpmRunTransactions().
Destroy finger print cache.
Parameters:
Definition at line 23 of file fprint.c.
References fprintCache_s::ht, and htFree().
Referenced by rpmdbFindByFile(), rpmdbFindFpList(), and rpmRunTransactions().
Compare two finger print entries.
exactly equivalent to FP_EQUAL macro.
Parameters:
Returns: result of comparing key1 and key2
Definition at line 209 of file fprint.c.
Return hash value for a finger print.
Hash based on dev and inode only!
Parameters:
Returns: hash value
Definition at line 191 of file fprint.c.
References fingerPrint_s::baseName, fprintCacheEntry_s::dev, fingerPrint_s::entry, and fprintCacheEntry_s::ino.
Return finger print of a file path.
Parameters:
Definition at line 185 of file fprint.c.
References doLookup().
Referenced by rpmdbFindByFile().
Return finger prints of all file names in header.
@warning: scareMemory is assumed!
Parameters:
Return values:
Definition at line 247 of file fprint.c.
References fpLookupList(), HFD_t, HGE_t, int_32, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, and rpmTagType.
Return finger prints of an array of file paths.
@warning: scareMemory is assumed!
Parameters:
Return values:
Definition at line 227 of file fprint.c.
References fingerPrint_s::baseName, doLookup(), fingerPrint_s::entry, and fingerPrint_s::subDir.
Referenced by fpLookupHeader(), rpmdbFindFpList(), and rpmRunTransactions().
Generated automatically by Doxygen for rpm from the source code.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |