home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v1.zip
/
IBMCPP
/
IBMCLASS
/
IRBAG.H
< prev
next >
Wrap
Text File
|
1993-09-22
|
5KB
|
129 lines
/*******************************************************************************
* *
* COPYRIGHT: *
* IBM C/C++ Tools Version 2.01 - Collection Class Library *
* Licensed Materials - Property of IBM *
* (C) Copyright IBM Corporation 1992, 1993 *
* All Rights Reserved *
* US Government Users Restricted Rights - Use, duplication, or disclosure *
* restricted by GSA ADP Schedule Contract with IBM Corp. *
* *
*******************************************************************************/
#ifndef _IRBAG_H
#define _IRBAG_H
#include <iabag.h>
template < class Element, class Base >
class IRBag : public virtual IABag < Element > {
Base &ivBase;
public:
IRBag (Base& base) : ivBase (base) {};
~IRBag ();
IBoolean add (Element const&);
IBoolean add (Element const&,
ICursor&);
Element const& elementAt (ICursor const&) const;
Element& elementAt (ICursor const&);
Element const& anyElement () const;
void removeAt (ICursor const&);
INumber removeAll (IBoolean (*property)
(Element const&, void*),
void* additionalArgument = 0);
void replaceAt (ICursor const&,
Element const&);
void removeAll ();
IBoolean isBounded () const;
INumber maxNumberOfElements () const;
INumber numberOfElements () const;
IBoolean isEmpty () const;
IBoolean isFull () const;
ICursor* newCursor () const;
IBoolean setToFirst (ICursor&) const;
IBoolean setToNext (ICursor&) const;
IBoolean allElementsDo (IBoolean (*function)
(Element&, void*),
void* additionalArgument = 0);
IBoolean allElementsDo (IIterator <Element>&);
IBoolean allElementsDo (IBoolean (*function)
(Element const&, void*),
void* additionalArgument = 0)
const;
IBoolean allElementsDo (IConstantIterator
<Element>&) const;
IBoolean isConsistent () const;
IBoolean contains (Element const&) const;
IBoolean locate (Element const&, ICursor&)
const;
IBoolean locateOrAdd (Element const&);
IBoolean locateOrAdd (Element const&,
ICursor&);
IBoolean remove (Element const&);
INumber numberOfOccurrences (Element const&) const;
IBoolean locateNext (Element const&, ICursor&)
const;
INumber removeAllOccurrences (Element const&);
INumber numberOfDifferentElements () const;
IBoolean setToNextDifferentElement (ICursor&) const;
void unionWith (IABag < Element > const&);
void intersectionWith (IABag < Element > const&);
void differenceWith (IABag < Element > const&);
void addUnion (IABag < Element > const&,
IABag < Element > const&);
void addIntersection (IABag < Element > const&,
IABag < Element > const&);
void addDifference (IABag < Element > const&,
IABag < Element > const&);
protected:
void* identity () const;
};
#ifdef __IBMCPP__
#ifndef __TEMPINC__
#include <irbag.c>
#endif
#endif
#endif