home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / tpll.idl < prev    next >
Text File  |  1999-02-22  |  4KB  |  153 lines

  1. //#  @(#) 2.10 src/somuc/tpll.idl, somuc, som2.1 12/26/95 15:37:11 [7/30/96 14:50:05]
  2. //
  3. //   COMPONENT_NAME: somuc
  4. //
  5. //   ORIGINS: 82, 81, 27
  6. //
  7. //
  8. //    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,1996  
  9. //   All Rights Reserved
  10. //   Licensed Materials - Property of IBM
  11. //   US Government Users Restricted Rights - Use, duplication or
  12. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  13. //
  14. //   Copyright ⌐ 1988, 1989 Apple Computer, Inc. All rights reserved.
  15.  
  16.  
  17. /*
  18.  * CLASS_NAME: somf_TPrimitiveLinkedList
  19.  *
  20.  * DESCRIPTION: This class describes a primitive linked list, a sequence on 0
  21.  *              or more items, with a link from one item to it's following
  22.  *              item.
  23.  *
  24.  */
  25. #ifndef TPLL_idl
  26. #define TPLL_idl
  27.  
  28. #include <somobj.idl>
  29.  
  30. interface somf_MLinkable;
  31.  
  32. interface somf_TPrimitiveLinkedList : SOMObject
  33. {
  34.   //# friend class TPrimitiveLinkedListIterator;
  35.  
  36.   unsigned long somfCount();
  37.  
  38.   // Return the number of objects in this.
  39.   //#   unsigned long Count() const;
  40.  
  41.   void somfRemove(in somf_MLinkable aLink);
  42.  
  43.   // Remove the somf_MLinkable object from the List.
  44.   //#   void Remove(MLinkable&);
  45.  
  46.   void somfRemoveAll();
  47.  
  48.   // Remove all of the objects from this.
  49.   //#   void RemoveAll();
  50.  
  51.   somf_MLinkable somfRemoveFirst();
  52.  
  53.   // Remove the first object in the List.
  54.   //#   MLinkable* RemoveFirst();
  55.  
  56.   somf_MLinkable somfRemoveLast();
  57.  
  58.   // Remove the last object in the List.
  59.   //#   MLinkable* RemoveLast();
  60.  
  61.   void somfAddBefore(in somf_MLinkable existing,
  62.             in somf_MLinkable obj);
  63.  
  64.   // Add the obj object into the List before the existing object.
  65.   //#   void AddBefore(MLinkable& existing, MLinkable* obj);
  66.  
  67.   void somfAddAfter(in somf_MLinkable existing,
  68.            in somf_MLinkable obj);
  69.  
  70.   // Add the obj object into the List after the existing object.
  71.   //#   void AddAfter(MLinkable& existing, MLinkable* obj);
  72.  
  73.   void somfAddFirst(in somf_MLinkable obj);
  74.  
  75.   // Add the obj object as the first object in the List.
  76.   //#   void AddFirst(MLinkable* obj);
  77.  
  78.   void somfAddLast(in somf_MLinkable obj);
  79.  
  80.   // Add the obj object as the last object in the List.
  81.   //#   void AddLast(MLinkable* obj);
  82.  
  83.   somf_MLinkable somfAfter(in somf_MLinkable existingobj);
  84.  
  85.   // Return the object that comes after the existingobj object in the List.
  86.   //#   MLinkable* After(const MLinkable&) const;
  87.  
  88.   somf_MLinkable somfBefore(in somf_MLinkable existingobj);
  89.  
  90.   // Return the object that comes before the existingobj object in the List.
  91.   //#   MLinkable* Before(const MLinkable&) const;
  92.  
  93.   somf_MLinkable somfFirst();
  94.  
  95.   // Return the first object in the List.
  96.   //#   MLinkable* First() const;
  97.  
  98.   somf_MLinkable somfLast();
  99.  
  100.   // Return the last object in the List.
  101.   //#   MLinkable* Last() const;
  102.  
  103.   //#private:
  104.   //#
  105.   //#  // Don't allow these operations.
  106.   //#  TPrimitiveLinkedList(const TPrimitiveLinkedList&);
  107.   //#  void operator=(const TPrimitiveLinkedList&);
  108.  
  109.  
  110. #ifdef __SOMIDL__
  111.   implementation {
  112.  
  113.     releaseorder: somfCount,somfRemove,somfRemoveAll,somfRemoveFirst,somfRemoveLast,
  114.           somfAddBefore,somfAddAfter,somfAddFirst,somfAddLast,
  115.           somfAfter,somfBefore,somfFirst,somfLast;
  116.  
  117.     //# Class Modifiers
  118.     majorversion = 2;
  119.     minorversion = 1;
  120.     filestem = tpll;
  121.     dllname = "somuc.dll";
  122.  
  123.  
  124.     passthru C_xh_after =  ""
  125. ""
  126. "#include <mlink.xh>"
  127. "";
  128.  
  129.     passthru C_h_after =  ""
  130. ""
  131. "#include <mlink.h>"
  132. "";
  133.  
  134.     //# Internal Instance Variables
  135.     somf_MLinkable fSentinel;
  136.  
  137.     //# Method Modifiers
  138.     somInit: override;
  139.     somUninit: override;
  140.     somfCount: nomodify;
  141.     somfAfter: nomodify;
  142.     somfBefore: nomodify;
  143.     somfFirst: nomodify;
  144.     somfLast: nomodify;
  145.  
  146.     //# Data Modifiers
  147.  
  148.   };
  149. #endif /* __SOMIDL__ */
  150. };
  151.  
  152. #endif  /* TPLL_idl */
  153.