Stash rpmdb struct definition out of sight into dbi.h
[platform/upstream/rpm.git] / lib / rpmdb_internal.h
1 #ifndef H_RPMDB_INTERNAL
2 #define H_RPMDB_INTERNAL
3
4 #include <assert.h>
5 #include <db.h>
6
7 #include <rpm/rpmsw.h>
8 #include <rpm/rpmtypes.h>
9 #include <rpm/rpmutil.h>
10 #include "lib/backend/dbi.h"
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 /** \ingroup rpmdb
17  * Return rpmdb home directory (depending on chroot state)
18  * param db             rpmdb handle
19  * return               db home directory (or NULL on error)
20  */
21 RPM_GNUC_INTERNAL
22 const char *rpmdbHome(rpmdb db);
23
24 /** \ingroup rpmdb
25  * Return database iterator.
26  * @param mi            rpm database iterator
27  * @param keyp          key data (NULL for sequential access)
28  * @param keylen        key data length (0 will use strlen(keyp))
29  * @return              0 on success
30  */
31 int rpmdbExtendIterator(rpmdbMatchIterator mi,
32                         const void * keyp, size_t keylen);
33
34 /** \ingroup rpmdb
35  * sort the iterator by (recnum, filenum)
36  * Return database iterator.
37  * @param mi            rpm database iterator
38  */
39 void rpmdbSortIterator(rpmdbMatchIterator mi);
40
41 #ifndef __APPLE__
42 /**
43  *  * Mergesort, same arguments as qsort(2).
44  *   */
45 RPM_GNUC_INTERNAL
46 int mergesort(void *base, size_t nmemb, size_t size,
47                 int (*cmp) (const void *, const void *));
48 #else
49 /* mergesort is defined in stdlib.h on Mac OS X */
50 #endif /* __APPLE__ */
51
52 #endif