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_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.