home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v1.zip
/
IBMCPP
/
IBMCLASS
/
IBAGKSS.C
< prev
next >
Wrap
Text File
|
1993-09-22
|
2KB
|
46 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. *
* *
*******************************************************************************/
template <class Element, class ElementOps, class Base>
IBoolean IWBagOnKSSet <Element, ElementOps, Base>::Cursor::setToFirst ()
{ occurrence = 1;
return ivCollection->setToFirst (*this);
}
template <class Element, class ElementOps, class Base>
IBoolean IWBagOnKSSet <Element, ElementOps, Base>::Cursor::setToNext ()
{ ICHECK (isValid (), ICursorInvalidException, IInvalidCursorText)
if (occurrence == Base::Cursor::element().occurrences) {
occurrence = 1;
return Base::Cursor::setToNext ();
}
else {
occurrence++;
return True;
}
}
template <class Element, class ElementOps, class Base>
IBoolean IWBagOnKSSet <Element, ElementOps, Base>::
removePredicate (IBKSElm < Element > const& element, void* env)
{ RemoveEnv* re = (RemoveEnv*)env;
IBoolean result = (*re->predicate) (element.elem, re->env);
if (result)
re->removeCount += element.occurrences;
return result;
}
template <class Element, class ElementOps, class Base>
IBoolean IWBagOnKSSet <Element, ElementOps, Base>::
cleanupPredicate (IBKSElm < Element > const& element, void* env)
{ return element.occurrences == 0;
}