home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v1.zip
/
IBMCPP
/
IBMCLASS
/
IAPRIOQU.H
< prev
next >
Wrap
Text File
|
1993-09-22
|
6KB
|
142 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 _IAPRIOQU_H
#define _IAPRIOQU_H
#include <iglobals.h>
#include <icursor.h>
template < class Element, class Key >
class IAPriorityQueue {
public:
virtual ~IAPriorityQueue ();
virtual IBoolean add (Element const&) = 0;
virtual IBoolean add (Element const&,
ICursor&) = 0;
virtual void addAllFrom (IAPriorityQueue
< Element, Key > const&);
virtual void copy (IAPriorityQueue
< Element, Key > const&);
virtual Element const& elementAt (ICursor const&) const = 0;
virtual Element const& anyElement () const = 0;
virtual void removeAll () = 0;
virtual IBoolean isBounded () const = 0;
virtual INumber maxNumberOfElements () const = 0;
virtual INumber numberOfElements () const = 0;
virtual IBoolean isEmpty () const = 0;
virtual IBoolean isFull () const = 0;
virtual ICursor* newCursor () const = 0;
virtual IBoolean setToFirst (ICursor&) const = 0;
virtual IBoolean setToNext (ICursor&) const = 0;
virtual IBoolean allElementsDo (IBoolean (*function)
(Element const&, void*),
void* additionalArgument = 0)
const = 0;
virtual IBoolean allElementsDo (IConstantIterator
<Element>&) const = 0;
virtual IBoolean isConsistent () const = 0;
virtual Key const& key (Element const&) const = 0;
virtual IBoolean containsElementWithKey (Key const&) const = 0;
virtual IBoolean containsAllKeysFrom (IAPriorityQueue
< Element, Key > const&)
const;
virtual IBoolean locateElementWithKey (Key const&, ICursor&)
const = 0;
virtual IBoolean locateOrAddElementWithKey (Element const&) = 0;
virtual IBoolean locateOrAddElementWithKey (Element const&,
ICursor&) = 0;
virtual Element const& elementWithKey (Key const&) const = 0;
virtual INumber numberOfElementsWithKey (Key const&) const = 0;
virtual IBoolean locateNextElementWithKey (Key const&,
ICursor&) const = 0;
virtual INumber numberOfDifferentKeys () const = 0;
virtual IBoolean setToNextWithDifferentKey (ICursor&) const = 0;
virtual void removeFirst () = 0;
virtual Element const& firstElement () const = 0;
virtual Element const& lastElement () const = 0;
virtual Element const& elementAtPosition (IPosition) const = 0;
virtual IBoolean setToLast (ICursor&) const = 0;
virtual IBoolean setToPrevious (ICursor&) const = 0;
virtual void setToPosition (IPosition, ICursor&) const = 0;
virtual IBoolean isFirst (ICursor const&) const = 0;
virtual IBoolean isLast (ICursor const&) const = 0;
virtual long compare (IAPriorityQueue
< Element, Key > const&,
long (*comparisonFunction)
(Element const&,
Element const&)) const;
virtual void enqueue (Element const&) = 0;
virtual void enqueue (Element const&, ICursor&) = 0;
virtual void dequeue () = 0;
virtual void dequeue (Element&) = 0;
protected:
virtual void* identity () const;
Boolean isIdentical (IAPriorityQueue < Element, Key > const&
collection) const
{ return identity () == collection.identity ();
}
};
#ifdef __IBMCPP__
#ifndef __TEMPINC__
#include <iaprioqu.c>
#endif
#endif
#endif