home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional Developers Kit 1992 November / Disc01 / Disc01.mdf / runnable / ibmc / ibmclass / ibagks.c < prev    next >
Encoding:
Text File  |  1992-10-26  |  1.2 KB  |  37 lines

  1. /* Copyright (c) IBM Corp. 1992 */
  2. template <class Element, class ElementOps, class Base>
  3. Boolean IWBagOnKeySet <Element, ElementOps, Base>::Cursor::setToFirst ()
  4. { occurrence = 1;
  5.   return ivCollection->setToFirst (*this);
  6. }
  7.  
  8. template <class Element, class ElementOps, class Base>
  9. Boolean IWBagOnKeySet <Element, ElementOps, Base>::Cursor::setToNext ()
  10. { if (occurrence == Base::Cursor::element().occurrences) {
  11.     occurrence = 1;
  12.     return Base::Cursor::setToNext ();
  13.   }
  14.   else {
  15.     occurrence++;
  16.     return True;
  17.   }
  18. }
  19.  
  20. template <class Element, class ElementOps, class Base>
  21. Boolean IWBagOnKeySet <Element, ElementOps, Base>::
  22. removePredicate (IBKeyElm < Element > const& element, void* env)
  23. { RemoveEnv* re = (RemoveEnv*)env;
  24.   re->removeCount += element.occurrences;
  25.   return (*re->predicate) (element.elem, re->env);
  26. }
  27.  
  28. template <class Element, class ElementOps, class Base>
  29. Boolean IWBagOnKeySet <Element, ElementOps, Base>::
  30. cleanupPredicate (IBKeyElm < Element > const& element, void* env)
  31. { return element.occurrences == 0;
  32. }
  33.  
  34. template <class Element, class ElementOps, class Base>
  35. ElementOps IWBagOnKeySet <Element, ElementOps, Base>::
  36. cvElementOps;
  37.