00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __C_CREATEREPOLIB_LOAD_METADATA_H__
00021 #define __C_CREATEREPOLIB_LOAD_METADATA_H__
00022
00023 #include <glib.h>
00024 #include "locate_metadata.h"
00025
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029
00059 typedef enum {
00060 CR_HT_KEY_DEFAULT,
00061 CR_HT_KEY_HASH = CR_HT_KEY_DEFAULT,
00062 CR_HT_KEY_NAME,
00063 CR_HT_KEY_FILENAME,
00065 CR_HT_KEY_SENTINEL,
00066 } cr_HashTableKey;
00067
00074 typedef enum {
00075 CR_HT_DUPACT_KEEPFIRST = 0,
00077 CR_HT_DUPACT_REMOVEALL,
00079 CR_HT_DUPACT_SENTINEL,
00081 } cr_HashTableKeyDupAction;
00082
00085 typedef struct _cr_Metadata cr_Metadata;
00086
00091 cr_HashTableKey cr_metadata_key(cr_Metadata *md);
00092
00097 GHashTable *cr_metadata_hashtable(cr_Metadata *md);
00098
00113 cr_Metadata *cr_metadata_new(cr_HashTableKey key,
00114 int use_single_chunk,
00115 GSList *pkglist);
00116
00119 gboolean
00120 cr_metadata_set_dupaction(cr_Metadata *md, cr_HashTableKeyDupAction dupaction);
00121
00125 void cr_metadata_free(cr_Metadata *md);
00126
00133 int cr_metadata_load_xml(cr_Metadata *md,
00134 struct cr_MetadataLocation *ml,
00135 GError **err);
00136
00143 int cr_metadata_locate_and_load_xml(cr_Metadata *md,
00144 const char *repopath,
00145 GError **err);
00146
00149 #ifdef __cplusplus
00150 }
00151 #endif
00152
00153 #endif