Classes of the e4Graph Package
Author: Jacob Levy

The e4Graph Classes

The e4Graph C++ binding contains two groups of classes: elements and iterators. Elements, such as e4_Node, represent persistent elements in a storage. Iterators, such as e4_VertexVisitor, allow the user program to iterate over a selection of vertices in a storage.

The e4Graph Classes
e4_RefCount | Common base class for e4_Storage, e4_Node, and e4_Vertex. This class provides reference counting facilities that automate the storage management associated with using the e4Graph C++ binding. This class also provides a mechanism for safe type-casting to derived classes such as e4_Node.
e4_Storage | Derived from e4_RefCount. Stores persistent representations of e4_Node and e4_Vertex. A single storage can contain any number of nodes and fields.
e4_Node | Derived from e4_RefCount. An instance of this class represents a node in persistent storage.
e4_Vertex | Derived from e4_RefCount. An instance of this class represents an edge (or vertex in e4Graph terminology) originating in a node. Vertices are ordered by rank within a node. Vertices have a name, a type and a value.
e4_StorageVisitor | Iterates over all currently open storages in an implementation dependent order.
e4_NodeVisitor | Iterates over all nodes within a storage in an implementation dependent order.
e4_ParentVisitor | Iterates over all parent nodes of a given node
e4_VertexVisitor | Iterates over a collection of vertices within a storage according to flexible selection criteria. For example, this class allows the user to visit all vertices within a node or filter out vertices that do not have a specific name or value type.