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


6.10 The unimplemented exceptional–condition object

The unimplemented exceptional–condition object–type has the purpose of describing an exceptional condition caused by attempting to use an unimplemented feature. For example: attempting to call a system function adapter for which the underlying function is not available on the current platform.

There should be only one unimplemented 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_unimplemented_t

Structure type representing the exceptional–condition object–type descriptor. This descriptor has the descriptor cce_descriptor_logic_error_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_unimplemented_t

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

cce_condition_logic_error_t logic_error

Core values of the exceptional–condition object.

Function: cce_condition_t const * cce_condition_new_unimplemented (void)

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

Function: bool cce_condition_is_unimplemented (cce_condition_t const * C)

Return true if the exceptional–condition object referenced by C is of type cce_condition_unimplemented_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_unimplemented_t we need the following functions.

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

Function: void cce_condition_init_unimplemented (cce_condition_unimplemented_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_unimplemented_t we can copy the code in the files:

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

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


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

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