diff options
Diffstat (limited to 'rpmconstant/rpmconstant.h')
-rw-r--r-- | rpmconstant/rpmconstant.h | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/rpmconstant/rpmconstant.h b/rpmconstant/rpmconstant.h new file mode 100644 index 0000000..bc0cfbb --- /dev/null +++ b/rpmconstant/rpmconstant.h @@ -0,0 +1,209 @@ +/* Nanar <nanardon@mandrake.org> + * $Id$ + */ + +#ifndef H_RPMCONSTANT +#define H_RPMCONSTANT + +#ifndef xcalloc +#define xcalloc(n,s) calloc((n),(s)) +#endif + +#define PREFIXED_YES 0 +#define PREFIXED_NO 1 + +#define WITH_PREFIX (1 << 0) +#define WITHOUT_PREFIX (1 << 1) +#define ALLCASE_PREFIX (WITH_PREFIX | WITHOUT_PREFIX) + +/** + * \ingroup rpmconstant + * \file rpmconstant.h + * + */ + +#include <stdio.h> +#include <rpm/header.h> +#include <rpm/rpmio.h> +#include <rpm/rpmdb.h> +#include <rpm/rpmts.h> +#include <rpm/rpmte.h> +#include <rpm/rpmps.h> +#include <rpm/rpmds.h> +#include <rpm/rpmfi.h> +#include <rpm/rpmpgp.h> +#include <rpm/misc.h> +#include <rpm/rpmbuild.h> +#include <rpm/rpmlib.h> + +/** + * A constant pair name/value + */ +typedef /*@abstract@*/ struct rpmconstant_s *rpmconstant; + + +/** + * A constant list set + */ +typedef /*@abstract@*/ struct rpmconstantlist_s * rpmconstantlist; + +typedef struct rpmconst_s * rpmconst; + +#ifdef RPMCONSTANT_INTERNAL + +/** + * A constant pair name/value + */ +struct rpmconstant_s { + const char * name; /*!< Constant name. */ +/*@null@*/ + int value; /*!< Constant value. */ +}; + +/** + * A contantlist entry + */ +struct rpmconstantlist_s { + const rpmconstant constant; /*<! Constant pointer */ +/*@null@*/ + char *context; /*<! Name of the list */ + char *prefix; /*<! Common prefix of constant name */ +/*@null@*/ +}; + +struct rpmconst_s { + rpmconstantlist list; + rpmconstant constant; +}; + +/** + * Pointer to first element of rpmconstantlist. + */ +/*@-redecl@*/ +/*@observer@*/ /*@unchecked@*/ +extern const struct rpmconstantlist_s * rpmconstanttype; +/*@=redecl@*/ + +/** + * Return name from contant item. + * + * @param c constant item + * @return pointer to name from item + */ +const char * rpmConstantName(rpmconstant c) + /*@*/; + +/** + * Return value from constant item. + * + * @param c constant item + * @return value from current item + */ +int rpmConstantValue(rpmconstant c) + /*@*/; + +/** + * Return next constant item from constant list (or NULL at end of list). + * + * @param c current constant item + * @return next constant item + */ +/*@null@*/ +rpmconstant rpmConstantNext(rpmconstant c) + /*@*/; + + +/** + * Get a pointer to first rpmconstantlist item + * + * @return first constantlist item + */ +rpmconstantlist rpmGetConstantList() + /*@*/; + +/** + * Return next constantlist item from list (or NULL at the end of list). + * + * @param cl current constantlist item + * @return next constantlist item + */ +/*@null@*/ +rpmconstantlist rpmConstantListNext(rpmconstantlist cl) + /*@*/; + +/** + * Return constantlist item corresponding to context + * + * @param context ptr to constext + * @return constant list item matching context + */ +rpmconstantlist rpmGetConstantListFromContext(const char * context) + /*@*/; + +/** + * Return a pointer to first constant item from constantlist. + * + * @param cl constantlist item + * @retval first constant item from list + */ +rpmconstant rpmConstantListC(rpmconstantlist cl) + /*@*/; + +/** + * Return the common prefix of constant name. + * + * @param cl constantlist item + * @return pointer to prefix string (or NULL is not availlable) + */ +/*@null@*/ +const char * rpmConstantListPrefix (rpmconstantlist cl) + /*@*/; + +/** + * Return context name from constantlist item + * + * @param cl constantlist item + * @return pointer to context name + */ +const char * rpmConstantListContext (rpmconstantlist cl) + /*@*/; + +#endif + +rpmconst rpmconstNew(); + +rpmconst rpmconstFree(rpmconst c); + +void rpmconstInitC(rpmconst c); + +int rpmconstNextC(rpmconst c); + +void rpmconstInitL(rpmconst c); + +int rpmconstNextL(rpmconst c); + +const char * rpmconstContext(rpmconst c); + +const char * rpmconstPrefix(rpmconst c); + +const char * rpmconstName(rpmconst c, int stripprefix); + +int rpmconstValue(rpmconst c); + +int rpmconstInitToContext(rpmconst c, const char * context); + +int rpmconstNameMatch(rpmconst c, const char * name, int prefixed); + +int rpmconstFindValue(rpmconst c, const int val); + +int rpmconstFindMask(rpmconst c, const int val); + +int rpmconstFindName(rpmconst c, const char * name, int prefixed); + +int rpmconstantFindValue(char * context, const int val, const char **name, int prefixed); + +int rpmconstantFindMask(char * context, const int val, const char **name, int prefixed); + +int rpmconstantFindName(char * context, const char * name, int *val, int prefixed); + +#endif /* H_RPMCONSTANT */ |