krh@27: #ifndef _RAZOR_H_ krh@27: #define _RAZOR_H_ krh@27: krh@43: #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) krh@43: krh@43: struct razor_set; krh@43: krh@43: struct razor_set *razor_set_open(const char *filename); krh@43: void razor_set_destroy(struct razor_set *set); krh@43: int razor_set_write(struct razor_set *set, const char *filename); krh@43: krh@43: void razor_set_list(struct razor_set *set); krh@43: void razor_set_list_requires(struct razor_set *set, const char *name); krh@43: void razor_set_list_provides(struct razor_set *set, const char *name); krh@43: void razor_set_list_requires_packages(struct razor_set *set, krh@43: const char *name, krh@43: const char *version); krh@43: void razor_set_list_provides_packages(struct razor_set *set, krh@43: const char *name, krh@43: const char *version); krh@49: void razor_set_list_files(struct razor_set *set, const char *prefix); krh@43: krh@43: void razor_set_list_unsatisfied(struct razor_set *set); krh@43: struct razor_set *razor_set_update(struct razor_set *set, krh@43: struct razor_set *upstream, krh@43: int count, const char **packages); krh@43: krh@44: typedef void (*razor_package_callback_t)(const char *name, krh@44: const char *old_version, krh@44: const char *new_version, krh@44: void *data); krh@44: void krh@44: razor_set_diff(struct razor_set *set, struct razor_set *upstream, krh@44: razor_package_callback_t callback, void *data); krh@44: krh@44: krh@44: /* Importer interface; for building a razor set from external sources, krh@44: * like yum, rpmdb or razor package files. */ krh@44: krh@30: struct razor_importer; krh@27: krh@30: struct razor_importer *razor_importer_new(void); krh@30: void razor_importer_begin_package(struct razor_importer *importer, krh@27: const char *name, const char *version); krh@30: void razor_importer_add_requires(struct razor_importer *importer, krh@27: const char *name, const char *version); krh@30: void razor_importer_add_provides(struct razor_importer *importer, krh@30: const char *name, const char *version); krh@46: void razor_importer_add_file(struct razor_importer *importer, krh@46: const char *name); krh@30: void razor_importer_finish_package(struct razor_importer *importer); krh@30: struct razor_set *razor_importer_finish(struct razor_importer *importer); krh@27: krh@27: struct razor_set *razor_import_rzr_files(int count, const char **files); krh@27: struct razor_set *razor_set_create_from_yum_filelist(int fd); krh@28: struct razor_set *razor_set_create_from_rpmdb(void); krh@27: krh@27: #endif /* _RAZOR_H_ */