1.1 --- a/razor.h Wed Sep 19 14:09:03 2007 -0400
1.2 +++ b/razor.h Wed Sep 19 17:19:11 2007 -0400
1.3 @@ -1,81 +1,17 @@
1.4 #ifndef _RAZOR_H_
1.5 #define _RAZOR_H_
1.6
1.7 -#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
1.8 +struct razor_importer;
1.9
1.10 -struct array {
1.11 - void *data;
1.12 - int size, alloc;
1.13 -};
1.14 -
1.15 -struct razor_set_section {
1.16 - unsigned int type;
1.17 - unsigned int offset;
1.18 - unsigned int size;
1.19 -};
1.20 -
1.21 -struct razor_set_header {
1.22 - unsigned int magic;
1.23 - unsigned int version;
1.24 - struct razor_set_section sections[0];
1.25 -};
1.26 -
1.27 -#define RAZOR_MAGIC 0x7a7a7a7a
1.28 -#define RAZOR_VERSION 1
1.29 -
1.30 -#define RAZOR_PACKAGES 0
1.31 -#define RAZOR_REQUIRES 1
1.32 -#define RAZOR_PROVIDES 2
1.33 -#define RAZOR_STRING_POOL 3
1.34 -#define RAZOR_PROPERTY_POOL 4
1.35 -
1.36 -struct razor_package {
1.37 - unsigned long name;
1.38 - unsigned long version;
1.39 - unsigned long requires;
1.40 - unsigned long provides;
1.41 -};
1.42 -
1.43 -struct razor_property {
1.44 - unsigned long name;
1.45 - unsigned long version;
1.46 - unsigned long packages;
1.47 -};
1.48 -
1.49 -struct razor_set {
1.50 - struct array buckets;
1.51 - struct array string_pool;
1.52 - struct array property_pool;
1.53 - struct array packages;
1.54 - struct array requires;
1.55 - struct array provides;
1.56 - struct razor_set_header *header;
1.57 -};
1.58 -
1.59 -struct import_property_context {
1.60 - struct array *all;
1.61 - struct array package;
1.62 -};
1.63 -
1.64 -struct import_context {
1.65 - struct razor_set *set;
1.66 - struct import_property_context requires;
1.67 - struct import_property_context provides;
1.68 - struct razor_package *package;
1.69 - unsigned long *requires_map;
1.70 - unsigned long *provides_map;
1.71 -};
1.72 -
1.73 -void import_context_add_package(struct import_context *ctx,
1.74 +struct razor_importer *razor_importer_new(void);
1.75 +void razor_importer_begin_package(struct razor_importer *importer,
1.76 const char *name, const char *version);
1.77 -void import_context_add_property(struct import_context *ctx,
1.78 - struct import_property_context *pctx,
1.79 +void razor_importer_add_requires(struct razor_importer *importer,
1.80 const char *name, const char *version);
1.81 -void import_context_finish_package(struct import_context *ctx);
1.82 -
1.83 -unsigned long razor_set_tokenize(struct razor_set *set, const char *string);
1.84 -void razor_prepare_import(struct import_context *ctx);
1.85 -struct razor_set *razor_finish_import(struct import_context *ctx);
1.86 +void razor_importer_add_provides(struct razor_importer *importer,
1.87 + const char *name, const char *version);
1.88 +void razor_importer_finish_package(struct razor_importer *importer);
1.89 +struct razor_set *razor_importer_finish(struct razor_importer *importer);
1.90
1.91 struct razor_set *razor_import_rzr_files(int count, const char **files);
1.92 struct razor_set *razor_set_create_from_yum_filelist(int fd);