home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / iapqu.inl < prev    next >
Encoding:
Text File  |  1996-02-22  |  5.4 KB  |  188 lines

  1. /**********************************************************************
  2. *                                                                     *
  3. *  IBM(R) VisualAge(TM) for C++ for Windows(R), Version 3.5           *
  4. *                                                                     *
  5. *  PID: 5622-880                                                      *
  6. *  - Licensed Material - Program-Property of IBM                      *
  7. *  (C) Copyright IBM Corp. 1991, 1995 - All Right Reserved.           *
  8. *                                                                     *
  9. *  US Government Users Restricted Rights - Use, duplication or        *
  10. *  disclosure restricted by GSA ADP Schedule Contract with IBM Corp.  *
  11. *                                                                     *
  12. *  VisualAge, and IBM are trademarks or registered trademarks of      *
  13. *  International Business Machines Corporation.                       *
  14. *  Windows is a registered trademark of Microsoft Corporation.        *
  15. *                                                                     *
  16. **********************************************************************/
  17.  
  18. // ---
  19. // IAPriorityQueue
  20. // ---
  21.  
  22. template <class Element, class Key>
  23. inline
  24. IAPriorityQueue <Element, Key>::
  25. IAPriorityQueue (INotifier& notifier)
  26. { SetImpl ((Implementation*)¬ifier);
  27. }
  28.  
  29. template <class Element, class Key>
  30. inline
  31. IAPriorityQueue <Element, Key>::
  32. ~IAPriorityQueue ()
  33. {
  34. }
  35.  
  36. template <class Element, class Key>
  37. inline long
  38. IAPriorityQueue <Element, Key>::
  39. compare (IAPriorityQueue <Element, Key> const& collection,
  40.          long (*compFunc) (Element const&, Element const&)) const
  41. { return ImplOf (*this).
  42.     Compare (ImplOf (collection), (ICompFunc)compFunc, 0);
  43. }
  44.  
  45. template <class Element, class Key>
  46. inline IBoolean
  47. IAPriorityQueue <Element, Key>::
  48. containsAllKeysFrom
  49.   (IARestrictedAccessCollection <Element> const& collection) const
  50. { return ImplOf (*this).
  51.     ContainsAllKeysFrom (Inherited::ImplOf (collection));
  52. }
  53.  
  54. template <class Element, class Key>
  55. inline IBoolean
  56. IAPriorityQueue <Element, Key>::
  57. containsElementWithKey (Key const& key) const
  58. { return ImplOf (*this).ContainsElementWithKey (&key);
  59. }
  60.  
  61. template <class Element, class Key>
  62. inline void
  63. IAPriorityQueue <Element, Key>::
  64. dequeue ()
  65. { ImplOf (*this).RemoveFirst ();
  66. }
  67.  
  68. template <class Element, class Key>
  69. inline void
  70. IAPriorityQueue <Element, Key>::
  71. dequeue (Element& element)
  72. { element = *(Element*) ImplOf (*this).First ();
  73.   ImplOf (*this).RemoveFirst ();
  74. }
  75.  
  76. template <class Element, class Key>
  77. inline Element const&
  78. IAPriorityQueue <Element, Key>::
  79. elementWithKey (Key const& key) const
  80. { return *(Element const*) ImplOf (*this).ElementWithKey (&key);
  81. }
  82.  
  83. template <class Element, class Key>
  84. inline void
  85. IAPriorityQueue <Element, Key>::
  86. enqueue (Element const& element)
  87. { ImplOf (*this).Add (&element);
  88. }
  89.  
  90. template <class Element, class Key>
  91. inline void
  92. IAPriorityQueue <Element, Key>::
  93. enqueue (Element const& element, ICursor& cursor)
  94. { ImplOf (*this).Add (&element, CrsrImplOf (cursor));
  95. }
  96.  
  97. template <class Element, class Key>
  98. inline Key const&
  99. IAPriorityQueue <Element, Key>::
  100. key (Element const& element) const
  101. { return *(Key const*) ImplOf (*this).Key (&element);
  102. }
  103.  
  104. template <class Element, class Key>
  105. inline IBoolean
  106. IAPriorityQueue <Element, Key>::
  107. locateElementWithKey (Key const& key, ICursor& cursor) const
  108. { return ImplOf (*this).
  109.     LocateElementWithKey (&key, CrsrImplOf (cursor));
  110. }
  111.  
  112. template <class Element, class Key>
  113. inline IBoolean
  114. IAPriorityQueue <Element, Key>::
  115. locateNextElementWithKey (Key const& key, ICursor& cursor) const
  116. { return ImplOf (*this).
  117.     LocateNextElementWithKey (&key, CrsrImplOf (cursor));
  118. }
  119.  
  120. template <class Element, class Key>
  121. inline IBoolean
  122. IAPriorityQueue <Element, Key>::
  123. locateOrAddElementWithKey (Element const& element)
  124. { return ImplOf (*this).LocateOrAddElementWithKey (&element);
  125. }
  126.  
  127. template <class Element, class Key>
  128. inline IBoolean
  129. IAPriorityQueue <Element, Key>::
  130. locateOrAddElementWithKey (Element const& element, ICursor& cursor)
  131. { return ImplOf (*this).
  132.     LocateOrAddElementWithKey (&element, CrsrImplOf (cursor));
  133. }
  134.  
  135. template <class Element, class Key>
  136. inline INumber
  137. IAPriorityQueue <Element, Key>::
  138. numberOfDifferentKeys () const
  139. { return ImplOf (*this).NumberOfDifferentKeys ();
  140. }
  141.  
  142. template <class Element, class Key>
  143. inline INumber
  144. IAPriorityQueue <Element, Key>::
  145. numberOfElementsWithKey (Key const& key) const
  146. { return ImplOf (*this).NumberOfElementsWithKey (&key);
  147. }
  148.  
  149. template <class Element, class Key>
  150. inline void
  151. IAPriorityQueue <Element, Key>::
  152. removeFirst ()
  153. { ImplOf (*this).RemoveFirst ();
  154. }
  155.  
  156. template <class Element, class Key>
  157. inline IBoolean
  158. IAPriorityQueue <Element, Key>::
  159. setToNextWithDifferentKey (ICursor& cursor) const
  160. { return ImplOf (*this).SetToNextWithDifferentKey (CrsrImplOf (cursor));
  161. }
  162.  
  163. // protected members
  164.  
  165. template <class Element, class Key>
  166. inline
  167. IAPriorityQueue <Element, Key>::
  168. IAPriorityQueue ()
  169. {
  170. }
  171.  
  172. template <class Element, class Key>
  173. inline
  174. IAPriorityQueue <Element, Key>::
  175. IAPriorityQueue (IAPriorityQueue <Element, Key> const& collection)
  176. : Inherited (collection)
  177. {
  178. }
  179.  
  180. // private members
  181.  
  182. template <class Element, class Key>
  183. inline IAPriorityQueue <Element, Key>::Implementation&
  184. IAPriorityQueue <Element, Key>::
  185. ImplOf (IAPriorityQueue <Element, Key> const& collection)
  186. { return *(Implementation*)collection.ivImpl;
  187. }
  188.