//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / UNI
//
//File: uniset.h
//
//Version: $Revision: 1.3 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/10/19 18:04:44 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Jari Katajavuori
//
//Description:
//      Set class for PMP book keeping at uni protocol conduit.
//
//Copyright:
//      Copyright 1999 Helsinki University of Technology
//      ALL RIGHTS RESERVED BETWEEN JANUARY 1996 AND JUNE 1999.
//
//Licence:
//
//
//History: 

#ifndef __UNI_UNISET_H__
#define __UNI_UNISET_H__

#include <typeinfo>
#include "pf/types.h"
#include <set>

class uniSet
{
    public:
        uniSet(void);
        uniSet(const uniSet &other_);
        ~uniSet(void);

        void insert(pfUlong value_);
        void erase(pfUlong value_);
        void clear(void);
        bool empty(void);
        bool exists(pfUlong value_);

        void beginGoThrough(void);
        void next(void);
        bool isDone(void) const;
        pfUlong currentItem(void) const;
        
    private:
        typedef set<pfUlong, less<pfUlong> > setType;
        typedef setType::iterator setIterType;
        typedef setType::const_iterator setConstIterType;
        
        setType _set;
        setConstIterType _iter;
};

#endif // __UNI_UNISET_H__
