nestedFamily Class Template Reference
[Set families]

Implements the process of merging disjoint sets and splitting sets into the former components. More...

#include <nestedFamily.h>

Inheritance diagram for nestedFamily:

managedObject goblinRootObject

Public Member Functions

 nestedFamily (TItem nn, TItem mm, goblinController &thisContext=goblinDefaultContext) throw ()
 ~nestedFamily () throw ()
void Init () throw ()
unsigned long Size () const throw ()
unsigned long Allocated () const throw ()
void Display (TItem v) const throw (ERRange)
char * Display () const throw ()
void Bud (TItem v) throw (ERRange,ERRejected)
TItem MakeSet () throw (ERRejected)
void Merge (TItem s, TItem v) throw (ERRange,ERRejected)
void FixSet (TItem s) throw (ERRange,ERRejected)
bool Top (TItem v) const throw (ERRange)
TItem Set (TItem v) const throw (ERRange)
TItem First (TItem v) const throw (ERRange)
TItem Next (TItem v) const throw (ERRange,ERRejected)
void Split (TItem v) throw (ERRange,ERRejected)
void Block (TItem v) const throw (ERRange,ERRejected)
void UnBlock (TItem v) const throw (ERRange,ERRejected)

Detailed Description

template<class TItem>
class nestedFamily< TItem >

Implements the process of merging disjoint sets and splitting sets into the former components.


Constructor & Destructor Documentation

nestedFamily (  TItem  nn,
TItem  mm,
goblinController &  thisContext = goblinDefaultContext
)  throw ()
 

~nestedFamily (   )  throw ()
 


Member Function Documentation

unsigned long Allocated (   )  const throw ()
 

Reimplemented from managedObject.

void Block (  TItem  v  )  const throw (ERRange,ERRejected)
 

Like Split(), but reversible.

void Bud (  TItem  v  )  throw (ERRange,ERRejected)
 

Prepares a real element for merge operations.

char * Display (   )  const throw () [virtual]
 

Display the complete nested set family.

Reimplemented from managedObject.

void Display (  TItem  v  )  const throw (ERRange)
 

Display the set family nested into a given element.

TItem First (  TItem  v  )  const throw (ERRange)
 

Public interface of the array first[].

void FixSet (  TItem  s  )  throw (ERRange,ERRejected)
 

Finalize the merging elements into a toplevel set and assign a canonical element.

void Init (   )  throw ()
 

TItem MakeSet (   )  throw (ERRejected)
 

Prepares a new toplevel set, returning its index.

void Merge (  TItem  s,
TItem  v
)  throw (ERRange,ERRejected)
 

Merges a toplevel element into a set which is not fixed yet.

TItem Next (  TItem  v  )  const throw (ERRange,ERRejected)
 

Public interface of the array next[].

TItem Set (  TItem  v  )  const throw (ERRange)
 

Returns the toplevel set containing a given item.

unsigned long Size (   )  const throw () [virtual]
 

Implements goblinRootObject.

void Split (  TItem  v  )  throw (ERRange,ERRejected)
 

Destroy a toplevel set and, if path compression is enabled, re-arrange B-labels.

bool Top (  TItem  v  )  const throw (ERRange)
 

Decides wether v is a toplevel element.

void UnBlock (  TItem  v  )  const throw (ERRange,ERRejected)
 

Inverse operation of Block().