diff options
Diffstat (limited to 'rpmdb/header.h')
-rw-r--r-- | rpmdb/header.h | 367 |
1 files changed, 1 insertions, 366 deletions
diff --git a/rpmdb/header.h b/rpmdb/header.h index ef6cc7db3..1eee67b32 100644 --- a/rpmdb/header.h +++ b/rpmdb/header.h @@ -288,372 +288,7 @@ typedef struct HE_s { hCNT_t cnt; } * HE_t; -/** \ingroup header - * Create new (empty) header instance. - * @return header - */ -typedef -Header (*HDRnew) (void); - -/** \ingroup header - * Dereference a header instance. - * @param h header - * @return NULL always - */ -typedef -Header (*HDRfree) (Header h); - -/** \ingroup header - * Reference a header instance. - * @param h header - * @return referenced header instance - */ -typedef -Header (*HDRlink) (Header h); - -/** \ingroup header - * Dereference a header instance. - * @param h header - * @return NULL always - */ -typedef -Header (*HDRunlink) (Header h); - -/** \ingroup header - * Sort tags in header. - * @todo Eliminate from API. - * @param h header - */ -typedef -void (*HDRsort) (Header h); - -/** \ingroup header - * Restore tags in header to original ordering. - * @todo Eliminate from API. - * @param h header - */ -typedef -void (*HDRunsort) (Header h); - -/** \ingroup header - * Return size of on-disk header representation in bytes. - * @param h header - * @param magicp include size of 8 bytes for (magic, 0)? - * @return size of on-disk header - */ -typedef -unsigned int (*HDRsizeof) (Header h, enum hMagic magicp); - -/** \ingroup header - * Convert header to on-disk representation. - * @param h header (with pointers) - * @return on-disk header blob (i.e. with offsets) - */ -typedef -void * (*HDRunload) (Header h); - -/** \ingroup header - * Convert header to on-disk representation, and then reload. - * This is used to insure that all header data is in one chunk. - * @param h header (with pointers) - * @param tag region tag - * @return on-disk header (with offsets) - */ -typedef -Header (*HDRreload) (Header h, int tag); - -/** \ingroup header - * Duplicate a header. - * @param h header - * @return new header instance - */ -typedef -Header (*HDRcopy) (Header h); - -/** \ingroup header - * Convert header to in-memory representation. - * @param uh on-disk header blob (i.e. with offsets) - * @return header - */ -typedef -Header (*HDRload) (void * uh); - -/** \ingroup header - * Make a copy and convert header to in-memory representation. - * @param uh on-disk header blob (i.e. with offsets) - * @return header - */ -typedef -Header (*HDRcopyload) (const void * uh); - -/** \ingroup header - * Read (and load) header from file handle. - * @param fd file handle - * @param magicp read (and verify) 8 bytes of (magic, 0)? - * @return header (or NULL on error) - */ -typedef -Header (*HDRread) (FD_t fd, enum hMagic magicp); - -/** \ingroup header - * Write (with unload) header to file handle. - * @param fd file handle - * @param h header - * @param magicp prefix write with 8 bytes of (magic, 0)? - * @return 0 on success, 1 on error - */ -typedef -int (*HDRwrite) (FD_t fd, Header h, enum hMagic magicp); - -/** \ingroup header - * Check if tag is in header. - * @param h header - * @param tag tag - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRisentry) (Header h, int_32 tag); - -/** \ingroup header - * Free data allocated when retrieved from header. - * @param h header - * @param data address of data (or NULL) - * @param type type of data (or -1 to force free) - * @return NULL always - */ -typedef -void * (*HDRfreetag) (Header h, - const void * data, rpmTagType type); - -/** \ingroup header - * Retrieve tag value. - * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with - * RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE - * entry is present). - * - * @param h header - * @param tag tag - * @retval type address of tag value data type (or NULL) - * @retval p address of pointer to tag value(s) (or NULL) - * @retval c address of number of values (or NULL) - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRget) (Header h, int_32 tag, - hTYP_t type, - void ** p, - hCNT_t c); - -/** \ingroup header - * Retrieve tag value using header internal array. - * Get an entry using as little extra RAM as possible to return the tag value. - * This is only an issue for RPM_STRING_ARRAY_TYPE. - * - * @param h header - * @param tag tag - * @retval type address of tag value data type (or NULL) - * @retval p address of pointer to tag value(s) (or NULL) - * @retval c address of number of values (or NULL) - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRgetmin) (Header h, int_32 tag, - hTYP_t type, - hPTR_t * p, - hCNT_t c); - -/** \ingroup header - * Add tag to header. - * Duplicate tags are okay, but only defined for iteration (with the - * exceptions noted below). While you are allowed to add i18n string - * arrays through this function, you probably don't mean to. See - * headerAddI18NString() instead. - * - * @param h header - * @param tag tag - * @param type tag value data type - * @param p pointer to tag value(s) - * @param c number of values - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRadd) (Header h, int_32 tag, int_32 type, const void * p, int_32 c); - -/** \ingroup header - * Append element to tag array in header. - * Appends item p to entry w/ tag and type as passed. Won't work on - * RPM_STRING_TYPE. Any pointers into header memory returned from - * headerGetEntryMinMemory() for this entry are invalid after this - * call has been made! - * - * @param h header - * @param tag tag - * @param type tag value data type - * @param p pointer to tag value(s) - * @param c number of values - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRappend) (Header h, int_32 tag, int_32 type, const void * p, int_32 c); - -/** \ingroup header - * Add or append element to tag array in header. - * @todo Arg "p" should have const. - * @param h header - * @param tag tag - * @param type tag value data type - * @param p pointer to tag value(s) - * @param c number of values - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRaddorappend) (Header h, int_32 tag, int_32 type, const void * p, int_32 c); - -/** \ingroup header - * Add locale specific tag to header. - * A NULL lang is interpreted as the C locale. Here are the rules: - * \verbatim - * - If the tag isn't in the header, it's added with the passed string - * as new value. - * - If the tag occurs multiple times in entry, which tag is affected - * by the operation is undefined. - * - If the tag is in the header w/ this language, the entry is - * *replaced* (like headerModifyEntry()). - * \endverbatim - * This function is intended to just "do the right thing". If you need - * more fine grained control use headerAddEntry() and headerModifyEntry(). - * - * @param h header - * @param tag tag - * @param string tag value - * @param lang locale - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRaddi18n) (Header h, int_32 tag, const char * string, - const char * lang); - -/** \ingroup header - * Modify tag in header. - * If there are multiple entries with this tag, the first one gets replaced. - * @param h header - * @param tag tag - * @param type tag value data type - * @param p pointer to tag value(s) - * @param c number of values - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRmodify) (Header h, int_32 tag, int_32 type, const void * p, int_32 c); - -/** \ingroup header - * Delete tag in header. - * Removes all entries of type tag from the header, returns 1 if none were - * found. - * - * @param h header - * @param tag tag - * @return 0 on success, 1 on failure (INCONSISTENT) - */ -typedef -int (*HDRremove) (Header h, int_32 tag); - -/** \ingroup header - * Return formatted output string from header tags. - * The returned string must be free()d. - * - * @param h header - * @param fmt format to use - * @param tags array of tag name/value pairs - * @param extensions chained table of formatting extensions. - * @retval errmsg error message (if any) - * @return formatted output string (malloc'ed) - */ -typedef -char * (*HDRsprintf) (Header h, const char * fmt, - const struct headerTagTableEntry_s * tags, - const struct headerSprintfExtension_s * extensions, - errmsg_t * errmsg); - -/** \ingroup header - * Duplicate tag values from one header into another. - * @param headerFrom source header - * @param headerTo destination header - * @param tagstocopy array of tags that are copied - */ -typedef -void (*HDRcopytags) (Header headerFrom, Header headerTo, hTAG_t tagstocopy); - -/** \ingroup header - * Destroy header tag iterator. - * @param hi header tag iterator - * @return NULL always - */ -typedef -HeaderIterator (*HDRfreeiter) (HeaderIterator hi); - -/** \ingroup header - * Create header tag iterator. - * @param h header - * @return header tag iterator - */ -typedef -HeaderIterator (*HDRinititer) (Header h); - -/** \ingroup header - * Return next tag from header. - * @param hi header tag iterator - * @retval tag address of tag - * @retval type address of tag value data type - * @retval p address of pointer to tag value(s) - * @retval c address of number of values - * @return 1 on success, 0 on failure - */ -typedef -int (*HDRnextiter) (HeaderIterator hi, - hTAG_t tag, - hTYP_t type, - hPTR_t * p, - hCNT_t c); - -/** \ingroup header - * Header method vectors. - */ -typedef struct HV_s * HV_t; -struct HV_s { - HDRlink hdrlink; - HDRunlink hdrunlink; - HDRfree hdrfree; - HDRnew hdrnew; - HDRsort hdrsort; - HDRunsort hdrunsort; - HDRsizeof hdrsizeof; - HDRunload hdrunload; - HDRreload hdrreload; - HDRcopy hdrcopy; - HDRload hdrload; - HDRcopyload hdrcopyload; - HDRread hdrread; - HDRwrite hdrwrite; - HDRisentry hdrisentry; - HDRfreetag hdrfreetag; - HDRget hdrget; - HDRgetmin hdrgetmin; - HDRadd hdradd; - HDRappend hdrappend; - HDRaddorappend hdraddorappend; - HDRaddi18n hdraddi18n; - HDRmodify hdrmodify; - HDRremove hdrremove; - HDRsprintf hdrsprintf; - HDRcopytags hdrcopytags; - HDRfreeiter hdrfreeiter; - HDRinititer hdrinititer; - HDRnextiter hdrnextiter; - void * hdrvecs; - void * hdrdata; - int hdrversion; -}; +#include "header_method.h" /** \ingroup header * Free data allocated when retrieved from header. |