Cube manual

Table of Contents

[in package MGL-CUBE]

1 Introduction

This is the libray on which MGL-MAT (see MAT manual) is built. The idea of automatically translating between various representations may be useful for other applications, so this got its own package and all ties to MGL-MAT has been severed.

This package defines CUBE, an abstract base class that provides a framework for automatic conversion between various representations of the same data. To define a cube, CUBE needs to be subclassed and the Facet extension API be implemented.

If you are only interested in how to use cubes in general, read Basics, Destroying cubes and Facet barriers.

If you want to implement a new cube datatype, then see Facet extension API, The default implementation of CALL-WITH-FACET* and Views.

2 Basics

Here we learn what a CUBE is and how to access the data in it with WITH-FACET.

3 Facet extension API

Also see The default implementation of CALL-WITH-FACET*.

4 The default implementation of CALL-WITH-FACET*

5 Views

We learn what a VIEW is, how it's related to facets. See VIEWS, FIND-VIEW, and the default method of SET-UP-TO-DATE-P*. Views are only visible to those implementing the Facet extension API.

6 Destroying cubes

Lifetime management of facets is manual (but facets of garbage cubes are freed automatically by a finalizer, see MAKE-FACET*). One may destroy a single facet or all facets of a cube with DESTROY-FACET and DESTROY-CUBE, respectively. Also see Facet barriers.

7 Facet barriers

A facility to control lifetime of facets tied to a dynamic extent. Also see Destroying cubes.


[generated by MGL-PAX]