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
00070 typedef struct _cr_Metadata cr_Metadata;
00071
00076 cr_HashTableKey cr_metadata_key(cr_Metadata *md);
00077
00082 GHashTable *cr_metadata_hashtable(cr_Metadata *md);
00083
00098 cr_Metadata *cr_metadata_new(cr_HashTableKey key,
00099 int use_single_chunk,
00100 GSList *pkglist);
00101
00105 void cr_metadata_free(cr_Metadata *md);
00106
00113 int cr_metadata_load_xml(cr_Metadata *md,
00114 struct cr_MetadataLocation *ml,
00115 GError **err);
00116
00123 int cr_metadata_locate_and_load_xml(cr_Metadata *md,
00124 const char *repopath,
00125 GError **err);
00126
00129 #ifdef __cplusplus
00130 }
00131 #endif
00132
00133 #endif