1.1 --- a/librazor/razor.h Mon Jun 23 09:59:08 2008 -0400
1.2 +++ b/librazor/razor.h Mon Jun 23 14:07:07 2008 -0400
1.3 @@ -22,10 +22,6 @@
1.4
1.5 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
1.6
1.7 -struct razor_set;
1.8 -struct razor_package;
1.9 -struct razor_property;
1.10 -
1.11 enum razor_repo_file_type {
1.12 RAZOR_REPO_FILE_MAIN,
1.13 RAZOR_REPO_FILE_DETAILS,
1.14 @@ -53,11 +49,26 @@
1.15 RAZOR_PROPERTY_POSTUN = 1 << 8
1.16 };
1.17
1.18 -const char *
1.19 -razor_property_relation_to_string(struct razor_property *p);
1.20 -const char *
1.21 -razor_property_type_to_string(struct razor_property *p);
1.22 +/**
1.23 + * SECTION:set
1.24 + * @title: Package Set
1.25 + * @short_description: Represents a set of packages and their metadata.
1.26 + *
1.27 + * This object represents a set of packages, their dependency
1.28 + * information, the file lists and a number of other details.
1.29 + **/
1.30
1.31 +struct razor_set;
1.32 +struct razor_package;
1.33 +struct razor_property;
1.34 +
1.35 +/**
1.36 + * razor_set_create:
1.37 + *
1.38 + * Create a new #razor_set object.
1.39 + *
1.40 + * Returns: the new #razor_set object.
1.41 + **/
1.42 struct razor_set *razor_set_create(void);
1.43 struct razor_set *razor_set_open(const char *filename);
1.44 void razor_set_destroy(struct razor_set *set);
1.45 @@ -77,9 +88,37 @@
1.46 const char **summary, const char **description,
1.47 const char **url, const char **license);
1.48
1.49 +
1.50 +/**
1.51 + * SECTION:iterator
1.52 + * @title: Iterators
1.53 + * @short_description: Objects for traversing packages or properties.
1.54 + *
1.55 + * The razor iterator objects provides a way to iterate through a set
1.56 + * of packages or properties.
1.57 + **/
1.58 +
1.59 struct razor_package_iterator;
1.60 +
1.61 +/**
1.62 + * razor_package_iterator_create:
1.63 + *
1.64 + * Create a new #razor_package_iterator object.
1.65 + *
1.66 + * Returns: the new #razor_package_iterator object.
1.67 + **/
1.68 +
1.69 struct razor_package_iterator *
1.70 razor_package_iterator_create(struct razor_set *set);
1.71 +
1.72 +/**
1.73 + * razor_package_iterator_create_for_property:
1.74 + *
1.75 + * Create a new #razor_package_iterator object for the packages that
1.76 + * own the given property.
1.77 + *
1.78 + * Returns: the new #razor_package_iterator object.
1.79 + **/
1.80 struct razor_package_iterator *
1.81 razor_package_iterator_create_for_property(struct razor_set *set,
1.82 struct razor_property *property);
1.83 @@ -144,7 +183,14 @@
1.84 razor_set_create_install_iterator(struct razor_set *set,
1.85 struct razor_set *next);
1.86
1.87 -/* Package transactions */
1.88 +/**
1.89 + * SECTION:transaction
1.90 + * @title: Transaction
1.91 + * @short_description: Create a new package set by merging two or more sets.
1.92 + *
1.93 + * The razor transaction object provides a way to create a new package set
1.94 + * from packages from one or more other package sets.
1.95 + **/
1.96
1.97 struct razor_transaction *
1.98 razor_transaction_create(struct razor_set *system, struct razor_set *upstream);
1.99 @@ -166,11 +212,30 @@
1.100 uint32_t flags,
1.101 const char *version);
1.102
1.103 -/* Importer interface; for building a razor set from external sources,
1.104 - * like yum, rpmdb or razor package files. */
1.105 +/**
1.106 + * SECTION:rpm
1.107 + * @title: Razor RPM
1.108 + * @short_description: Operating on RPM files.
1.109 + *
1.110 + * Functions for open RPM files and extracting information and
1.111 + * installing or removing RPM files.
1.112 + **/
1.113
1.114 +struct razor_rpm;
1.115 +
1.116 +struct razor_rpm *razor_rpm_open(const char *filename);
1.117 +int razor_rpm_install(struct razor_rpm *rpm, const char *root);
1.118 +int razor_rpm_close(struct razor_rpm *rpm);
1.119 +
1.120 +/**
1.121 + * SECTION:importer
1.122 + * @title: Importer
1.123 + * @short_description: A mechanism for building #razor_set objects
1.124 + *
1.125 + * For building a razor set from external sources, like yum, rpmdb or
1.126 + * RPM files.
1.127 + **/
1.128 struct razor_importer;
1.129 -struct razor_rpm;
1.130
1.131 struct razor_importer *razor_importer_create(void);
1.132 void razor_importer_destroy(struct razor_importer *importer);
1.133 @@ -196,23 +261,17 @@
1.134
1.135 struct razor_set *razor_importer_finish(struct razor_importer *importer);
1.136
1.137 -void razor_build_evr(char *evr_buf, int size, const char *epoch,
1.138 - const char *version, const char *release);
1.139 -int razor_versioncmp(const char *s1, const char *s2);
1.140 -
1.141 struct razor_set *razor_set_create_from_yum(void);
1.142 struct razor_set *razor_set_create_from_rpmdb(void);
1.143
1.144 -/* RPM functions */
1.145 -
1.146 -struct razor_rpm *razor_rpm_open(const char *filename);
1.147 -int razor_rpm_install(struct razor_rpm *rpm, const char *root);
1.148 -int razor_rpm_close(struct razor_rpm *rpm);
1.149 -
1.150 -
1.151 -/* Razor root functions. The root data structure encapsulates
1.152 - * filesystem conventions and the locking protocol. */
1.153 -
1.154 +/**
1.155 + * SECTION:root
1.156 + * @title: Root
1.157 + * @short_description: Functions for accessing an install root.
1.158 + *
1.159 + * The #razor_root object encapsulate access to and locking of a razor
1.160 + * install root.
1.161 + **/
1.162 struct razor_root;
1.163
1.164 int razor_root_create(const char *root);
1.165 @@ -223,4 +282,23 @@
1.166 void razor_root_update(struct razor_root *root, struct razor_set *next);
1.167 int razor_root_commit(struct razor_root *root);
1.168
1.169 +
1.170 +/**
1.171 + * SECTION:misc
1.172 + * @title: Miscellaneous Functions
1.173 + * @short_description: Various helper functions
1.174 + *
1.175 + * Functions that doesn't fit anywhere else.
1.176 + **/
1.177 +
1.178 +const char *
1.179 +razor_property_relation_to_string(struct razor_property *p);
1.180 +const char *
1.181 +razor_property_type_to_string(struct razor_property *p);
1.182 +
1.183 +void razor_build_evr(char *evr_buf, int size, const char *epoch,
1.184 + const char *version, const char *release);
1.185 +int razor_versioncmp(const char *s1, const char *s2);
1.186 +
1.187 +
1.188 #endif /* _RAZOR_H_ */