home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / isethsh.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  6.0 KB  |  253 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 _ISETHSH_H
  19. #define _ISETHSH_H
  20.  
  21. #include <iaset.h>
  22. #include <iicset.h>
  23. #include <iivset.h>
  24. #include <iisethsh.h>
  25.  
  26.  
  27. #pragma info (nocls, nocnd, nocns, nocnv, noext, nognr, novft)
  28. #pragma pack (4)
  29.  
  30. #pragma SOMAsDefault (off)
  31.  
  32. template <class Element, class ElementOps>
  33. class IGSetAsHshTable;
  34.  
  35. template <class Element, class ElementOps>
  36. class IGSetAsHshTableCursor :
  37.   public IElementCursor <Element> {
  38.  
  39.   typedef  IElementCursor <Element> Inherited;
  40.  
  41.   typedef  IGSetAsHshTable
  42.             <Element, ElementOps>::
  43.               Implementation::Cursor Implementation;
  44.  
  45. public:
  46.  
  47.            IGSetAsHshTableCursor
  48.                             (IGSetAsHshTable
  49.                               <
  50.                                Element, ElementOps> const&);
  51.  
  52.   IGSetAsHshTableCursor <Element, ElementOps>&
  53.            operator=        (IGSetAsHshTableCursor
  54.                               <
  55.                                Element, ElementOps> const&);
  56.  
  57. protected:
  58.  
  59.            IGSetAsHshTableCursor
  60.                             (ICursorImpl*);
  61.  
  62. private:
  63.  
  64.  
  65. };
  66.  
  67. template <class Element, class ElementOps>
  68. class IGSetAsHshTable :
  69.   public IASet <Element> {
  70. protected:
  71.  
  72.   typedef  IGSetAsHshTable <Element, ElementOps> Self;
  73.  
  74.   typedef  ISetAsHshTableImpl PureImplementation;
  75.  
  76. #if defined (INO_CHECKS)
  77.   typedef  PureImplementation Implementation;
  78. #else
  79.   typedef  ICSetImpl
  80.             <PureImplementation> Implementation;
  81. #endif
  82.  
  83. #define IGSetAsHshTableTypedef(Element, ElementOps)\
  84.   typedef  ISetAsHshTableOps\
  85.             <Element,\
  86.              IWEHOps <Element, ElementOps>,\
  87.              Implementation> Instantiation
  88.  
  89.            IGSetAsHshTableTypedef (Element, ElementOps);
  90.  
  91. public:
  92.  
  93.   typedef  IGSetAsHshTableCursor
  94.             <Element, ElementOps> Cursor;
  95.  
  96.  
  97.            IGSetAsHshTable
  98.                             (INumber = 100);
  99.  
  100.            IGSetAsHshTable
  101.                             (IGSetAsHshTable
  102.                               <
  103.                                Element, ElementOps> const&);
  104.  
  105.   IGSetAsHshTable <Element, ElementOps>&
  106.            operator=        (IGSetAsHshTable
  107.                               <
  108.                                Element, ElementOps> const&);
  109.  
  110.  
  111. protected:
  112.  
  113.            IGSetAsHshTable
  114.                             (PureImplementation&);
  115.  
  116.   static
  117.   Implementation&
  118.            ImplOf           (IGSetAsHshTable
  119.                               <
  120.                                Element, ElementOps> const&);
  121.  
  122. private:
  123.  
  124.   friend
  125.   class    IGSetAsHshTableCursor
  126.             <Element, ElementOps>;
  127.  
  128.  
  129.  
  130. };
  131.  
  132. template <class Element>
  133. class ISetAsHshTable :
  134.   public IGSetAsHshTable
  135.           <Element, IEHOps <Element> > {
  136.  
  137.   typedef  IGSetAsHshTable
  138.             <Element,
  139.              IEHOps <Element> > Inherited;
  140.  
  141. protected:
  142.  
  143.   typedef  ISetAsHshTable <Element> Self;
  144.  
  145. #define ISetAsHshTableTypedef(Element)\
  146.   typedef  ISetAsHshTableOps\
  147.             <Element,\
  148.              IWEHOps <Element, IEHOps <Element> >,\
  149.              Implementation> Instantiation
  150.  
  151. public:
  152.  
  153.            ISetAsHshTable
  154.                             (INumber = 100);
  155.  
  156.  
  157. protected:
  158.  
  159.            ISetAsHshTable
  160.                               (PureImplementation&);
  161.  
  162. private:
  163.  
  164.  
  165. };
  166.  
  167. template <class Element, class ElementOps>
  168. class IVGSetAsHshTable :
  169.   public IGSetAsHshTable
  170.           <Element, ElementOps > {
  171.  
  172.   typedef  IVGSetAsHshTable
  173.             <Element, ElementOps> Inherited;
  174.  
  175. protected:
  176.  
  177. #if defined (INO_CHECKS)
  178.   typedef  IVSetImpl
  179.             <PureImplementation> Implementation;
  180. #else
  181.   typedef  ICSetImpl
  182.             <IVSetImpl
  183.               <PureImplementation> > Implementation;
  184. #endif
  185.  
  186. #define IVGSetAsHshTableTypedef(Element, ElementOps)\
  187.   typedef  ISetAsHshTableOps\
  188.             <Element,\
  189.              IWEHOps <Element, ElementOps>,\
  190.              Implementation> Instantiation
  191.  
  192.            IVGSetAsHshTableTypedef (Element, ElementOps);
  193.  
  194. public:
  195.  
  196.            IVGSetAsHshTable
  197.                             (INumber = 100);
  198.  
  199.  
  200. protected:
  201.  
  202.            IVGSetAsHshTable
  203.                               (PureImplementation&);
  204.  
  205. private:
  206.  
  207.  
  208. };
  209.  
  210. template <class Element>
  211. class IVSetAsHshTable :
  212.   public IVGSetAsHshTable
  213.           <Element, IEHOps <Element> > {
  214.  
  215.   typedef  IVGSetAsHshTable
  216.             <Element,
  217.              IEHOps <Element> > Inherited;
  218.  
  219. protected:
  220.  
  221.   typedef  IVSetAsHshTable <Element> Self;
  222.  
  223. #define IVSetAsHshTableTypedef(Element)\
  224.   typedef  IVSetAsHshTableOps\
  225.             <Element,\
  226.              IWEHOps <Element, IEHOps <Element> >,\
  227.              Implementation> Instantiation
  228.  
  229. public:
  230.  
  231.            IVSetAsHshTable
  232.                             (INumber = 100);
  233.  
  234.  
  235. protected:
  236.  
  237.            IVSetAsHshTable
  238.                               (PureImplementation&);
  239.  
  240. private:
  241.  
  242.  
  243. };
  244.  
  245. #pragma SOMAsDefault (pop)
  246.  
  247. #include <isethsh.inl>
  248.  
  249. #pragma info (restore)
  250. #pragma pack ()
  251.  
  252. #endif
  253.