home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / iimapavl.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  3.0 KB  |  113 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. #ifndef _IIMAPAVL_H
  19. #define _IIMAPAVL_H
  20.  
  21. #include <iimapks.h>
  22.  
  23.  
  24. #include <iiksavl.h>
  25.  
  26.  
  27. #pragma info (nocls, nocnd, nocns, nocnv, noext, nognr, novft)
  28. #pragma pack (4)
  29.  
  30. #pragma SOMAsDefault (off)
  31.  
  32. typedef IMapOnKeySetImpl
  33.          <IKeySetAsAvlTreeImpl> IMapAsAvlTreeImpl;
  34.  
  35. typedef IAMapOnKeySetOps
  36.          <IKeySetAsAvlTreeImpl> IAMapAsAsAvlTreeOps;
  37.  
  38. template <class Element, class _Key,
  39.           class ElementOps, class Implementation>
  40. class IMapAsAvlTreeOps :
  41.   public IAMapAsAsAvlTreeOps {
  42.  
  43.   typedef  IMapAsAvlTreeOps
  44.             <Element, _Key, ElementOps, Implementation> Self;
  45.  
  46.   typedef  IKeySetAsAvlTreeOps
  47.             <Element, _Key,
  48.              ElementOps, IKeySetAsAvlTreeImpl> Base;
  49.  
  50. public:
  51.  
  52.   typedef  Implementation ImplType;
  53.  
  54.   typedef  Element ElementType;
  55.  
  56.   typedef  _Key KeyType;
  57.  
  58.            IMapAsAvlTreeOps
  59.                            (INumber);
  60.  
  61.            IMapAsAvlTreeOps
  62.                            (INumber, void*);
  63.  
  64.            IMapAsAvlTreeOps
  65.                            (IMapAsAvlTreeOps
  66.                              <Element, _Key,
  67.                               ElementOps, Implementation> const&);
  68.  
  69.           ~IMapAsAvlTreeOps
  70.                            ();
  71.  
  72.   IACollectionImpl*
  73.            Clone           () const;
  74.  
  75.   IBoolean EqualElements    (void const*, void const*) const;
  76.  
  77.   TStream& operator<<=     (TStream&);
  78.  
  79.   TStream& operator>>=     (TStream&) const;
  80.  
  81.            operator IKeySetAsAvlTreeImpl&
  82.                            ();
  83.  
  84.            operator Implementation*
  85.                            ();
  86.  
  87.  
  88. protected:
  89.  
  90. private:
  91.  
  92.   ElementOps
  93.            ivElementOps;
  94.  
  95.   Base     ivBase;
  96.  
  97.   Implementation
  98.            ivImpl;
  99.  
  100.  
  101. };
  102.  
  103. #pragma SOMAsDefault (pop)
  104.  
  105. #if ! defined (__TEMPINC__)
  106. #include <iimapavl.c>
  107. #endif
  108.  
  109. #pragma info (restore)
  110. #pragma pack ()
  111.  
  112. #endif
  113.