/
githubmirror
/
rpm
Обзор
Документация
Войти
/
githubmirror
/
rpm
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lib/fprint.hh
93 строки
3 KB
Panu Matilainen
Eliminate all uses of now redundant RPM_GNUC_INTERNAL
09 авг 2026, 23:36
09 авг 2026, 23:36
3f3cc23
Код
Авторство
О чём код?
#ifndef H_FINGERPRINT #define H_FINGERPRINT /** \ingroup rpmtrans * \file fprint.h * Identify a file name path by a unique "finger print". */ #include <vector> #include <rpm/rpmtypes.h> /** */ typedef struct fprintCache_s * fingerPrintCache; struct fingerPrint; struct rpmffi_s { rpmte p; int fileno; }; /** * Create finger print cache. * @param sizeHint number of elements expected * @param pool string pool (or NULL for private) * @return pointer to initialized fingerprint cache */ fingerPrintCache fpCacheCreate(int sizeHint, rpmstrPool pool); /** * Destroy finger print cache. * @param cache pointer to fingerprint cache * @return NULL always */ fingerPrintCache fpCacheFree(fingerPrintCache cache); fingerPrint * fpCacheGetByFp(fingerPrintCache cache, struct fingerPrint * fp, int ix, std::vector<struct rpmffi_s> & recs); void fpCachePopulate(fingerPrintCache cache, rpmts ts, int fileCount); /* compare an existing fingerprint with a looked-up fingerprint for db/bn */ int fpLookupEquals(fingerPrintCache cache, fingerPrint * fp, const char * dirName, const char * baseName); int fpLookupEqualsId(fingerPrintCache cache, fingerPrint * fp, rpmsid dirNameId, rpmsid baseNameId); const char *fpEntryDir(fingerPrintCache cache, fingerPrint *fp); dev_t fpEntryDev(fingerPrintCache cache, fingerPrint *fp); /** * Return finger print of a file path. * @param cache pointer to fingerprint cache * @param dirName leading directory name of file path * @param baseName base name of file path * @param[out] fp pointer of fingerprint struct to fill out * @return 0 on success */ int fpLookup(fingerPrintCache cache, const char * dirName, const char * baseName, fingerPrint **fp); /** * Return finger print of a file path given as ids. * @param cache pointer to fingerprint cache * @param dirNameId id of leading directory name of file path * @param baseNameId id of base name of file path * @param[out] fp pointer of fingerprint struct to fill out * @return 0 on success */ int fpLookupId(fingerPrintCache cache, rpmsid dirNameId, rpmsid BaseNameId, fingerPrint **fp); /** * Return finger prints of an array of file paths. * @param cache pointer to fingerprint cache * @param pool pointer to file name pool * @param dirNames directory names * @param baseNames file base names * @param dirIndexes index into dirNames for each baseNames * @param fileCount number of file entries * @return pointer to array of finger prints */ fingerPrint * fpLookupList(fingerPrintCache cache, rpmstrPool pool, rpmsid * dirNames, rpmsid * baseNames, const uint32_t * dirIndexes, int fileCount); #endif