librazor/razor.h
changeset 447 0a5e583393e1
parent 446 4277359896dc
child 448 8476d35b048f
     1.1 --- a/librazor/razor.h	Tue Sep 09 15:04:24 2014 +0100
     1.2 +++ b/librazor/razor.h	Tue Sep 09 15:27:12 2014 +0100
     1.3 @@ -114,13 +114,14 @@
     1.4   */
     1.5  struct razor_error;
     1.6  
     1.7 -struct razor_error *razor_error_new_str(const char *path, const char *str);
     1.8 +struct razor_error *razor_error_new_str(int domain, int code,
     1.9 +					const char *object, const char *str);
    1.10  struct razor_error *razor_error_dup(struct razor_error *src,
    1.11  				    const char *summary);
    1.12  
    1.13 -#define razor_set_error(error, path, str) \
    1.14 +#define razor_set_error(error, domain, code, object, str) \
    1.15  	if (error) \
    1.16 -		*(error) = razor_error_new_str(path, str); \
    1.17 +		*(error) = razor_error_new_str(domain, code, object, str); \
    1.18  	else
    1.19  
    1.20  #define razor_propagate_error(dest, src, summary) \
    1.21 @@ -128,6 +129,26 @@
    1.22  		*(dest) = razor_error_dup(src, summary); \
    1.23  	else
    1.24  
    1.25 +#define RAZOR_ERROR_DOMAIN(i1,i2,i3,c) \
    1.26 +	(((i1)&0xff)<<24|((i2)&0xff)<<16|((i3)&0xff)<<8|(c)&0xff)
    1.27 +
    1.28 +#define RAZOR_GENERAL_ERROR	RAZOR_ERROR_DOMAIN('R','z','r',0)
    1.29 +#define RAZOR_POSIX_ERROR	RAZOR_ERROR_DOMAIN('R','z','r',1)
    1.30 +#define RAZOR_MSWIN_ERROR	RAZOR_ERROR_DOMAIN('R','z','r',2)
    1.31 +#define RAZOR_ZLIB_ERROR	RAZOR_ERROR_DOMAIN('R','z','r',3)
    1.32 +
    1.33 +enum razor_general_error {
    1.34 +	RAZOR_GENERAL_ERROR_FAILED,
    1.35 +	RAZOR_GENERAL_ERROR_DATABASE_CORRUPTED,
    1.36 +	RAZOR_GENERAL_ERROR_DATABASE_INCOMPATIBLE,
    1.37 +	RAZOR_GENERAL_ERROR_DATABASE_EXISTS,
    1.38 +	RAZOR_GENERAL_ERROR_DATABASE_LOCKED,
    1.39 +	RAZOR_GENERAL_ERROR_RPM_UNSUPPORTED,
    1.40 +};
    1.41 +
    1.42 +int razor_error_get_domain(struct razor_error *error);
    1.43 +int razor_error_get_code(struct razor_error *error);
    1.44 +const char *razor_error_get_object(struct razor_error *error);
    1.45  const char *razor_error_get_primary_text(struct razor_error *error);
    1.46  const char *razor_error_get_secondary_text(struct razor_error *error);
    1.47  const char *razor_error_get_msg(struct razor_error *error);
    1.48 @@ -215,7 +236,10 @@
    1.49    const void *data, size_t size);
    1.50  int razor_atomic_close(struct razor_atomic *atomic, int handle);
    1.51  int razor_atomic_sync(struct razor_atomic *atomic, int handle);
    1.52 -void razor_atomic_abort(struct razor_atomic *atomic, const char *error_msg);
    1.53 +void razor_atomic_abort(struct razor_atomic *atomic, int domain, int code,
    1.54 +  const char *error_msg);
    1.55 +void razor_atomic_propagate_error(struct razor_atomic *atomic,
    1.56 +  struct razor_error *error, const char *summary);
    1.57  int razor_atomic_in_error_state(struct razor_atomic *atomic);
    1.58  
    1.59  /**