home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osr1.exe / src / CMLkItr.idl < prev    next >
Text File  |  1997-03-21  |  6KB  |  178 lines

  1. /* @(#)Z 1.5 com/src/bento/localidl/CMLkItr.idl, odstorage, od96os2, odos29712d 97/03/21 17:20:04 (96/10/29 09:14:22) */
  2. //#====START_GENERATED_PROLOG======================================
  3. //#
  4. //#
  5. //#   COMPONENT_NAME: odstorage
  6. //#
  7. //#   CLASSES: none
  8. //#
  9. //#   ORIGINS: 82,27
  10. //#
  11. //#
  12. //#   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  13. //#   All Rights Reserved
  14. //#   Licensed Materials - Property of IBM
  15. //#   US Government Users Restricted Rights - Use, duplication or
  16. //#   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  17. //#       
  18. //#   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19. //#   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  20. //#   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  21. //#   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  22. //#   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  23. //#   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  24. //#   OR PERFORMANCE OF THIS SOFTWARE.
  25. //#
  26. //#====END_GENERATED_PROLOG========================================
  27. //#
  28.  
  29. #ifdef __PRIVATE__
  30. //#
  31. //#     File:           CMLkItr.idl
  32. //#
  33. //#     Contains:       Definition of CMLinkIterator class.
  34. //#
  35. //#     Owned by:       Craig Carper
  36. //#
  37. //#     Copyright:      (r) 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  38. //#
  39. //#     Change History (most recent first):
  40. //#
  41. //#              <3>     8/15/95        CC              1275241: IDL review.
  42. //#              <2>      8/3/95        RR              #1257260: Collapse B classes. Remove
  43. //#                                                                     somInit methods. Don't call IsInitialized
  44. //#                                                                     or SubclassResponsibility
  45. //#              <1>     8/11/94        CC              first checked in
  46. //#
  47. //#     To Do:
  48. //#
  49. #else
  50. //#     Copyright:      (r) 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  51. #endif
  52.  
  53. #ifndef _CMLKITR_
  54. #define _CMLKITR_
  55.  
  56. #ifndef _LINKITR_
  57. #include "LinkItr.idl"
  58. #endif
  59.  
  60. #ifdef __PRIVATE__
  61.  #ifdef _PLATFORM_OS2_
  62.   #ifndef _CMLinkItrNode_
  63.     typedef somToken CMLinkItrNode;
  64.   #endif
  65.  #endif /*_PLATFORM_OS2 */
  66. #endif /* PRIVATE */
  67. //=====================================================================================
  68. // Classes defined in this interface
  69. //=====================================================================================
  70. interface  CMLinkIterator;
  71.  
  72. #ifdef __PRIVATE__
  73.  
  74. //==============================================================================
  75. // Classes used by this interface
  76. //==============================================================================
  77.  
  78. interface   CMDraft;
  79. interface   ODLink;
  80.  
  81. //==============================================================================
  82. // Implementation Types
  83. //==============================================================================
  84.  
  85. typedef somToken CMObject;
  86. typedef somToken CMContainer;
  87. typedef somToken CMProperty;
  88. typedef somToken CMType;
  89.  
  90. #endif //# __PRIVATE__
  91.  
  92. //=====================================================================================
  93. // Class CMLinkIterator
  94. //=====================================================================================
  95.  
  96. interface CMLinkIterator : ODLinkIterator
  97. {
  98. #ifdef __PRIVATE__
  99.         void InitCMLinkIterator(in CMDraft draft);
  100.   #ifdef _PLATFORM_OS2_
  101.         void Add(in ODStorageUnitID linkSUID);
  102.         // Adds a link storage unit id to a linked list.
  103.  
  104.         ODLink AcquireFirst();
  105.         // Acquires and returns the first link in the list,
  106.         // or kODNull if it is empty. It is the responsibility
  107.         // of the caller to later Release the link.
  108.  
  109.         ODLink AcquireNext();
  110.         // Acquires and returns the next link in the list,
  111.         // or kODNull if there are no more link sources in the list.
  112.         // It is the responsibility  of the caller to later Release the link.
  113.  #endif /* _PLATFORM_OS2_ */
  114. #endif
  115.  
  116. #ifdef __SOMIDL__
  117.         implementation
  118.         {
  119.                 majorversion = 1; minorversion = 0;
  120.  
  121.                 functionprefix = CMLinkIterator;
  122.  
  123.                 override:
  124.                         somUninit,
  125.                         IsNotComplete,
  126.                         First,
  127.                         Next;
  128.  
  129.                 releaseorder:
  130.                 #ifdef __PRIVATE__
  131.                   #ifndef _PLATFORM_OS2_
  132.                     InitCMLinkIterator;
  133.                   #else /* _PLATFORM_OS2_ */
  134.                     InitCMLinkIterator,
  135.                     Add,
  136.                     AcquireFirst,
  137.                     AcquireNext;
  138.                   #endif /* _PLATFORM_OS2_ */
  139.                  #else
  140.                   #ifndef _PLATFORM_OS2_
  141.                     reserved1;
  142.                   #else /*_PLATFORM_OS2_*/
  143.                     reserved1,
  144.                     reserved2,
  145.                     reserved3,
  146.                     reserved4;
  147.                   #endif /* _PLATFORM_OS2_ */
  148.                 #endif
  149.  
  150.                 #ifdef __PRIVATE__
  151.                         passthru C_xih =
  152.                                 ""
  153.                                 "#ifndef __CM_API__"
  154.                                 "#include <CMAPI.h>"
  155.                                 "#endif"
  156.                                 "";
  157.                 #ifdef __PRIVATE__
  158.                   #ifdef _PLATFORM_OS2_
  159.                         CMLinkItrNode* fCMLinkItrList;
  160.                         CMLinkItrNode* fCurrentNode;
  161.                   #endif /*_PLATFORM_OS2_*/
  162.                 #endif /*__PRIVATE__*/
  163.  
  164.                         CMDraft                 fDraft;
  165.                         ODLink                  fLink;
  166.                         CMObject                fCurrent;
  167.                         CMContainer             fContainer;
  168.                         CMProperty              fProperty;
  169.                         CMType                  fType;
  170.                         ODULong                 fSize;
  171.                         ODPtr                   fBuffer;
  172.         #endif //# __PRIVATE__
  173.         };
  174. #endif //# __SOMIDL__
  175. };
  176.  
  177. #endif  // _CMLKITR_
  178.