diff -r c8958f67afd8 -r 50fd9002d5ee razor.h --- a/razor.h Wed Sep 19 14:09:03 2007 -0400 +++ b/razor.h Wed Sep 19 15:28:19 2007 -0400 @@ -1,81 +1,17 @@ #ifndef _RAZOR_H_ #define _RAZOR_H_ -#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) +struct razor_importer; -struct array { - void *data; - int size, alloc; -}; - -struct razor_set_section { - unsigned int type; - unsigned int offset; - unsigned int size; -}; - -struct razor_set_header { - unsigned int magic; - unsigned int version; - struct razor_set_section sections[0]; -}; - -#define RAZOR_MAGIC 0x7a7a7a7a -#define RAZOR_VERSION 1 - -#define RAZOR_PACKAGES 0 -#define RAZOR_REQUIRES 1 -#define RAZOR_PROVIDES 2 -#define RAZOR_STRING_POOL 3 -#define RAZOR_PROPERTY_POOL 4 - -struct razor_package { - unsigned long name; - unsigned long version; - unsigned long requires; - unsigned long provides; -}; - -struct razor_property { - unsigned long name; - unsigned long version; - unsigned long packages; -}; - -struct razor_set { - struct array buckets; - struct array string_pool; - struct array property_pool; - struct array packages; - struct array requires; - struct array provides; - struct razor_set_header *header; -}; - -struct import_property_context { - struct array *all; - struct array package; -}; - -struct import_context { - struct razor_set *set; - struct import_property_context requires; - struct import_property_context provides; - struct razor_package *package; - unsigned long *requires_map; - unsigned long *provides_map; -}; - -void import_context_add_package(struct import_context *ctx, +struct razor_importer *razor_importer_new(void); +void razor_importer_begin_package(struct razor_importer *importer, const char *name, const char *version); -void import_context_add_property(struct import_context *ctx, - struct import_property_context *pctx, +void razor_importer_add_requires(struct razor_importer *importer, const char *name, const char *version); -void import_context_finish_package(struct import_context *ctx); - -unsigned long razor_set_tokenize(struct razor_set *set, const char *string); -void razor_prepare_import(struct import_context *ctx); -struct razor_set *razor_finish_import(struct import_context *ctx); +void razor_importer_add_provides(struct razor_importer *importer, + const char *name, const char *version); +void razor_importer_finish_package(struct razor_importer *importer); +struct razor_set *razor_importer_finish(struct razor_importer *importer); struct razor_set *razor_import_rzr_files(int count, const char **files); struct razor_set *razor_set_create_from_yum_filelist(int fd);