createrepo_c library
C library for metadata manipulation
|
00001 /* createrepo_c - Library of routines for manipulation with repodata 00002 * Copyright (C) 2012 Tomas Mlcoch 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 00017 * USA. 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 00036 typedef enum { 00037 CR_HT_KEY_DEFAULT, 00038 CR_HT_KEY_HASH = CR_HT_KEY_DEFAULT, 00039 CR_HT_KEY_NAME, 00040 CR_HT_KEY_FILENAME 00042 } cr_HashTableKey; 00043 00044 #define cr_metadata_key(X) ((X)->key) 00045 #define cr_metadata_hashtable(X) ((X)->ht) 00046 #define cr_metadata_chunk(X) ((X)->chunk) 00047 00051 struct _cr_Metadata { 00052 cr_HashTableKey key; 00053 GHashTable *ht; 00054 GStringChunk *chunk; 00055 GHashTable *pkglist_ht; 00056 }; 00057 00061 typedef struct _cr_Metadata *cr_Metadata; 00062 00064 #define CR_LOAD_METADATA_OK 0 00065 #define CR_LOAD_METADATA_ERR 1 00083 cr_Metadata cr_new_metadata(cr_HashTableKey key, 00084 int use_single_chunk, 00085 GSList *pkglist); 00086 00091 void cr_destroy_metadata(cr_Metadata md); 00092 00099 int cr_load_xml_metadata(cr_Metadata md, 00100 struct cr_MetadataLocation *ml); 00101 00108 int cr_locate_and_load_xml_metadata(cr_Metadata md, 00109 const char *repopath); 00110 00111 #ifdef __cplusplus 00112 } 00113 #endif 00114 00115 #endif /* __C_CREATEREPOLIB_LOAD_METADATA_H__ */