/* * Copyright (c) 2007, Novell Inc. * * This program is licensed under the BSD license, read LICENSE.BSD * for further information */ /* * repo_write.h * */ #ifndef REPO_WRITE_H #define REPO_WRITE_H #include #include "repo.h" #include "queue.h" #ifdef __cplusplus extern "C" { #endif typedef struct s_Repowriter { Repo *repo; int flags; int repodatastart; int repodataend; int solvablestart; int solvableend; int (*keyfilter)(Repo *repo, Repokey *key, void *kfdata); void *kfdata; Queue *keyq; } Repowriter; /* repowriter flags */ #define REPOWRITER_NO_STORAGE_SOLVABLE (1 << 0) #define REPOWRITER_KEEP_TYPE_DELETED (1 << 1) #define REPOWRITER_LEGACY (1 << 30) Repowriter *repowriter_create(Repo *repo); Repowriter *repowriter_free(Repowriter *writer); void repowriter_set_flags(Repowriter *writer, int flags); void repowriter_set_keyfilter(Repowriter *writer, int (*keyfilter)(Repo *repo, Repokey *key, void *kfdata), void *kfdata); void repowriter_set_keyqueue(Repowriter *writer, Queue *keyq); void repowriter_set_repodatarange(Repowriter *writer, int repodatastart, int repodataend); void repowriter_set_solvablerange(Repowriter *writer, int solvablestart, int solvableend); int repowriter_write(Repowriter *writer, FILE *fp); /* convenience functions */ extern int repo_write(Repo *repo, FILE *fp); extern int repodata_write(Repodata *data , FILE *fp); extern int repo_write_stdkeyfilter(Repo *repo, Repokey *key, void *kfdata); /* deprecated functions, do not use in new code! */ extern int repo_write_filtered(Repo *repo, FILE *fp, int (*keyfilter)(Repo *repo, Repokey *key, void *kfdata), void *kfdata, Queue *keyq); extern int repodata_write_filtered(Repodata *data , FILE *fp, int (*keyfilter)(Repo *repo, Repokey *key, void *kfdata), void *kfdata, Queue *keyq); #ifdef __cplusplus } #endif #endif