Next: , Previous: , Up: conditions   [Contents][Index]


6.7 The error exceptional–condition object

The error exceptional–condition object–type has the purpose of describing an exceptional condition caused by an unspecified error; this condition type is meant to be the base of more specialised object–types.

There should be only one error exceptional–condition object: the one predefined by CCExceptions and built into the library as statically allocated structure. Subtyping from this object–type is fine.

All the following definitions are accessible from the header file ccexceptions.h.

Struct Typedef: cce_descriptor_error_t

Structure type representing the exceptional–condition object–type descriptor. This descriptor has the descriptor cce_descriptor_root_t as parent. It has the following public fields:

cce_descriptor_t descriptor

Core values of the exceptional–condition object–type descriptor.

Struct Typedef: cce_condition_error_t

Structure type representing the exceptional–condition object. It has the following public fields:

cce_condition_root_t root

Core values of the exceptional–condition object.

Function: cce_condition_t const * cce_condition_new_error (void)

Return a pointer to the predefined, statically allocated, structure representing the exceptional–condition object of type cce_condition_error_t.

Function: bool cce_condition_is_error (cce_condition_t const * C)

Return true if the exceptional–condition object referenced by C is of type cce_condition_error_t or it is derived from it; otherwise return false.

Facilities to derive an exceptional–condition object subtype

When deriving a subtype from cce_condition_error_t we need the following functions.

Function: void cce_descriptor_set_parent_to(cce_descriptor_error_t) (cce_descriptor_t * D)

Mutate the exceptional–condition object–type descriptor referenced by D so that its parent is the descriptor of cce_descriptor_error_t. We should call this function in the initialisation module of the derived type.

Function: void cce_condition_init_error (cce_condition_error_t * C)

Initialise an already allocated exceptional–condition object. We should call this function from the initialisation function of the derived type.

Subtyping example

To define a subtype of cce_condition_error_t we can copy the code in the files:

condition-subtyping-error.c
condition-subtyping-error-header.h
condition-subtyping-error-body.c

under the tests directory of the source distribution; the code defines a new exceptional–condition object–type my_condition_error_subtype_t.


Next: , Previous: , Up: conditions   [Contents][Index]

This document describes version 0.9.0-devel.3 of CCExceptions.