
/*
**  This file forms part of the GOBLIN C++ Class Library.
**
**  Written by Christian Fremuth-Paeger, December 1998.
**  
**  Copying, compiling, distribution and modification
**  of this source code is permitted only in accordance
**  with the GOBLIN general licence information.
*/             


#if !defined(_ABSFAM_H_)

#define _ABSFAM_H_

#include <absobj.h>


template <class TItem>
class goblinDisjointSetSystem : public virtual goblinDataObject
{
public:

    virtual void            Init() throw() = 0;
    virtual unsigned long   Size() throw() = 0;

    virtual void            Bud(TItem v) throw(ERRange,ERRejected) = 0;
    virtual void            Merge(TItem u,TItem v) throw(ERRange,ERRejected) = 0;
    virtual TItem           Find(TItem v) throw(ERRange) = 0;

    virtual bool            Reversible() throw() = 0;

};
	

#endif
