camel-exception

camel-exception

Synopsis




enum                ExceptionId;
struct              CamelException;
#define             CAMEL_EXCEPTION_INITIALISER
CamelException*     camel_exception_new                 (void);
void                camel_exception_free                (CamelException *ex);
void                camel_exception_init                (CamelException *ex);
void                camel_exception_clear               (CamelException *ex);
void                camel_exception_set                 (CamelException *ex,
                                                         ExceptionId id,
                                                         const char *desc);
void                camel_exception_setv                (CamelException *ex,
                                                         ExceptionId id,
                                                         const char *format,
                                                         ...);
void                camel_exception_xfer                (CamelException *ex_dst,
                                                         CamelException *ex_src);
ExceptionId         camel_exception_get_id              (CamelException *ex);
const char*         camel_exception_get_description     (CamelException *ex);
#define             camel_exception_is_set              (ex)

Description

Details

enum ExceptionId

typedef enum {
#include "camel-exception-list.def"

} ExceptionId;


struct CamelException

struct CamelException {
	/* do not access the fields directly */
	ExceptionId id;
	char *desc;
};


CAMEL_EXCEPTION_INITIALISER

#define CAMEL_EXCEPTION_INITIALISER { 0, NULL }


camel_exception_new ()

CamelException*     camel_exception_new                 (void);

Create and returns a new exception object.

Returns : the newly allocated exception object

camel_exception_free ()

void                camel_exception_free                (CamelException *ex);

Free an exception object. If the exception is NULL, nothing is done, the routine simply returns.

ex : a CamelException

camel_exception_init ()

void                camel_exception_init                (CamelException *ex);

Init an exception. This routine is mainly useful when using a statically allocated exception.

ex : a CamelException

camel_exception_clear ()

void                camel_exception_clear               (CamelException *ex);

Clear an exception, that is, set the exception ID to CAMEL_EXCEPTION_NONE and free the description text. If the exception is NULL, this funtion just returns.

ex : a CamelException

camel_exception_set ()

void                camel_exception_set                 (CamelException *ex,
                                                         ExceptionId id,
                                                         const char *desc);

Set the value of an exception. The exception id is a unique number representing the exception. The textual description is a small text explaining what happened and provoked the exception.

When ex is NULL, nothing is done, this routine simply returns.

ex : a CamelException
id : exception id
desc : textual description of the exception

camel_exception_setv ()

void                camel_exception_setv                (CamelException *ex,
                                                         ExceptionId id,
                                                         const char *format,
                                                         ...);

Set the value of an exception. The exception id is a unique number representing the exception. The textual description is a small text explaining what happened and provoked the exception. In this version, the string is created from the format string and the variable argument list.

It is safe to say: camel_exception_setv (ex, ..., camel_exception_get_description (ex), ...);

When ex is NULL, nothing is done, this routine simply returns.

ex : a CamelException
id : exception id
format : format of the description string. The format string is used as in printf().
... :

camel_exception_xfer ()

void                camel_exception_xfer                (CamelException *ex_dst,
                                                         CamelException *ex_src);

Transfer the content of an exception from an exception object to another. The destination exception receives the id and the description text of the source exception.

ex_dst : Destination exception object
ex_src : Source exception object

camel_exception_get_id ()

ExceptionId         camel_exception_get_id              (CamelException *ex);

Get the id of an exception.

ex : a CamelException
Returns : the exception id (CAMEL_EXCEPTION_NONE will be returned if ex is NULL or unset)

camel_exception_get_description ()

const char*         camel_exception_get_description     (CamelException *ex);

Get the exception description text.

ex : a CamelException
Returns : the exception description text (NULL will be returned if ex is NULL or unset)

camel_exception_is_set()

#define camel_exception_is_set(ex) (camel_exception_get_id (ex) != CAMEL_EXCEPTION_NONE)

ex :