librazor/razor.h
changeset 247 63444a10fb8e
parent 241 c3eb520e2219
child 248 057933050c42
     1.1 --- a/librazor/razor.h	Mon Jun 16 15:40:30 2008 -0400
     1.2 +++ b/librazor/razor.h	Fri Jun 20 14:18:52 2008 -0400
     1.3 @@ -26,21 +26,31 @@
     1.4  struct razor_package;
     1.5  struct razor_property;
     1.6  
     1.7 -enum razor_property_type {
     1.8 -	RAZOR_PROPERTY_REQUIRES,
     1.9 -	RAZOR_PROPERTY_PROVIDES,
    1.10 -	RAZOR_PROPERTY_CONFLICTS,
    1.11 -	RAZOR_PROPERTY_OBSOLETES
    1.12 +enum razor_property_flags {
    1.13 +	RAZOR_PROPERTY_LESS		= 1 << 0,
    1.14 +	RAZOR_PROPERTY_GREATER		= 1 << 1,
    1.15 +	RAZOR_PROPERTY_EQUAL		= 1 << 2,
    1.16 +	RAZOR_PROPERTY_RELATION_MASK	=
    1.17 +		RAZOR_PROPERTY_LESS |
    1.18 +		RAZOR_PROPERTY_GREATER |
    1.19 +		RAZOR_PROPERTY_EQUAL,
    1.20 +
    1.21 +	RAZOR_PROPERTY_REQUIRES		= 0 << 3,
    1.22 +	RAZOR_PROPERTY_PROVIDES		= 1 << 3,
    1.23 +	RAZOR_PROPERTY_CONFLICTS	= 2 << 3,
    1.24 +	RAZOR_PROPERTY_OBSOLETES	= 3 << 3,
    1.25 +	RAZOR_PROPERTY_TYPE_MASK	= 3 << 3,
    1.26 +		
    1.27 +	RAZOR_PROPERTY_PRE		= 1 << 5,
    1.28 +	RAZOR_PROPERTY_POST		= 1 << 6,
    1.29 +	RAZOR_PROPERTY_PREUN		= 1 << 7,
    1.30 +	RAZOR_PROPERTY_POSTUN		= 1 << 8
    1.31  };
    1.32  
    1.33 -enum razor_version_relation {
    1.34 -	RAZOR_VERSION_LESS,
    1.35 -	RAZOR_VERSION_LESS_OR_EQUAL,
    1.36 -	RAZOR_VERSION_EQUAL,
    1.37 -	RAZOR_VERSION_GREATER_OR_EQUAL,
    1.38 -	RAZOR_VERSION_GREATER
    1.39 -};
    1.40 -extern const char * const razor_version_relations[];
    1.41 +const char *
    1.42 +razor_property_relation_to_string(struct razor_property *p);
    1.43 +const char *
    1.44 +razor_property_type_to_string(struct razor_property *p);
    1.45  
    1.46  struct razor_set *razor_set_create(void);
    1.47  struct razor_set *razor_set_open(const char *filename);
    1.48 @@ -86,9 +96,8 @@
    1.49  int razor_property_iterator_next(struct razor_property_iterator *pi,
    1.50  				 struct razor_property **property,
    1.51  				 const char **name,
    1.52 -				 enum razor_version_relation *relation,
    1.53 -				 const char **version,
    1.54 -				 enum razor_property_type *type);
    1.55 +				 uint32_t *flags,
    1.56 +				 const char **version);
    1.57  void
    1.58  razor_property_iterator_destroy(struct razor_property_iterator *pi);
    1.59  
    1.60 @@ -125,9 +134,8 @@
    1.61  /* Temporary helper for test suite. */
    1.62  int razor_transaction_unsatisfied_property(struct razor_transaction *trans,
    1.63  					   const char *name,
    1.64 -					   enum razor_version_relation rel,
    1.65 -					   const char *version,
    1.66 -					   enum razor_property_type type);
    1.67 +					   uint32_t flags,
    1.68 +					   const char *version);
    1.69  
    1.70  /* Importer interface; for building a razor set from external sources,
    1.71   * like yum, rpmdb or razor package files. */
    1.72 @@ -143,9 +151,8 @@
    1.73  				  const char *arch);
    1.74  void razor_importer_add_property(struct razor_importer *importer,
    1.75  				 const char *name,
    1.76 -				 enum razor_version_relation relation,
    1.77 -				 const char *version,
    1.78 -				 enum razor_property_type type);
    1.79 +				 uint32_t flags,
    1.80 +				 const char *version);
    1.81  void razor_importer_add_file(struct razor_importer *importer,
    1.82  			     const char *name);
    1.83  void razor_importer_finish_package(struct razor_importer *importer);