razor.h
changeset 37 094daff9a8dc
parent 28 c8958f67afd8
child 43 d37d57c99cac
     1.1 --- a/razor.h	Wed Sep 19 14:09:03 2007 -0400
     1.2 +++ b/razor.h	Thu Sep 20 14:21:28 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);