Make all public libsolv headers C++ safe
[platform/upstream/libsolv.git] / src / poolid.h
1 /*
2  * Copyright (c) 2007, Novell Inc.
3  *
4  * This program is licensed under the BSD license, read LICENSE.BSD
5  * for further information
6  */
7
8 /*
9  * poolid.h
10  * 
11  */
12
13 #ifndef LIBSOLV_POOLID_H
14 #define LIBSOLV_POOLID_H
15
16 #include "pooltypes.h"
17 #include "hash.h"
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 /*-----------------------------------------------
24  * Ids with relation
25  */
26
27 typedef struct _Reldep {
28   Id name;              /* "package" */
29   Id evr;               /* "0:42-3" */
30   int flags;            /* operation/relation, see REL_x in pool.h */
31 } Reldep;
32
33 extern Id pool_str2id(Pool *pool, const char *, int);
34 extern Id pool_strn2id(Pool *pool, const char *, unsigned int, int);
35 extern Id pool_rel2id(Pool *pool, Id, Id, int, int);
36 extern const char *pool_id2str(const Pool *pool, Id);
37 extern const char *pool_id2rel(const Pool *pool, Id);
38 extern const char *pool_id2evr(const Pool *pool, Id);
39 extern const char *pool_dep2str(Pool *pool, Id); /* might alloc tmpspace */
40
41 extern void pool_shrink_strings(Pool *pool);
42 extern void pool_shrink_rels(Pool *pool);
43 extern void pool_freeidhashes(Pool *pool);
44
45 #ifdef __cplusplus
46 }
47 #endif
48
49 #endif /* LIBSOLV_POOLID_H */