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