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


6.4 The root exceptional–condition object

The root exceptional–condition object–type descriptor has the only purpose of being the root of the descriptors tree; there should be no exceptional–condition objects having this as descriptor. The root descriptor has parent field set to NULL; this must be the only descriptor with such a property.

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

Struct Typedef: cce_descriptor_root_t

Structure type representing the root exceptional–condition object–type descriptor, the root of the descriptors hierarchy tree. This descriptor has a single instance built into the library. It has the following public fields:

cce_descriptor_t descriptor

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

Struct Typedef: cce_condition_root_t

Structure type representing the root exceptional–condition object; this struct type must never be instantiated. It has the following public fields:

cce_condition_t condition

Core values of the exceptional–condition object.

Function: bool cce_condition_is_root (cce_condition_t const * C)

Return true if the object referenced by C is derived from the root type; otherwise return false. With a correctly built conditions hierarchy: this function always returns true.

Facilities to derive an exceptional–condition object subtype

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

Function: void cce_descriptor_set_parent_to(cce_descriptor_root_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_root_t. We should call this function in the initialisation module of the derived type.

Function: void cce_condition_init_root (cce_condition_root_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_root_t we can copy the code in the files:

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

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


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

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