UMap - maintains a mapping between two sets of pointers
SYNOPSIS
#include <Unidraw/umap.h>
DESCRIPTION
UMap is an abstract class for objects that store an arbi-
trary number of pointer pairs and can search to find
either member of a pair given the other. A UMapElem
object stores each pointer pair in the UMap. UMapElem is
an abstract class that defines virtuals for returning
either member of the pair, referred to as the id and the
tag. Subclasses of UMapElem redefine these virtuals to
return either member of the pair they store.
UMAPELEM PUBLIC OPERATIONS
UMapElem()
The base class constructor does nothing by default.
virtual void* id()
virtual void* tag()
Return the id or the tag that the UMapElem stores.
Subclasses typically define two member variables
that store pair's values and redefine these opera-
tions to return them.
UMAP PUBLIC OPERATIONS
virtual ~UMap()
The destructor deletes all UMapElem objects in the
UMap.
int Count()
Return the number of mappings in the UMap, corre-
sponding to the number of UMapElems that have been
registered.
void Clear()
Delete all the UMapElem mappings in the UMap with-
out destroying the UMap.
UMAP PROTECTED OPERATIONS
UMap() The base class constructor does nothing by default.
void Register(UMapElem*)
void Unregister(UMapElem*)
Register or remove a UMapElem from the UMap.
int Index(UMapElem*)
UMapElem* Elem(int index)
A UMap stores its UMapElem in its _elems UArray
protected member variable. The Index operations
returns the index of the given UMapElem in the UAr-
sponding operations on the UArray.
virtual UMapElem* FindId(void* id)
virtual UMapElem* FindTag(void* tag)
FindId searches the UMap for the UMapElem element
containing the given id, while FindTag searches for
the one with the given tag. These operations per-
form linear searches by default, comparing their
arguments against the values that the UMapElems' id
and tag operations return. The comparison is based
on the pointer values; subclasses can redefine
these operations to make more sophisticated compar-
isons based on the id or tags actual type. For
example, if either the id is a string, then FindId
might do a string comparison to detect a match.
SEE ALSO
UArray(3U)
Man(1) output converted with
man2html