librazor/razor.h
changeset 269 03fc85294bc9
parent 259 5b0601d184ed
child 271 3980d1d9148e
     1.1 --- a/librazor/razor.h	Mon Jun 23 09:59:08 2008 -0400
     1.2 +++ b/librazor/razor.h	Mon Jun 23 17:19:20 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_ */