home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / PRMRSLVR.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  3KB  |  115 lines

  1. /* @(#)Z 1.4 com/src/bento/PrmRslvr.h, odstorage, od96os2, odos29646d 96/11/15 15:26:35 (96/10/29 09:13:20) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odstorage
  6.  *
  7.  *   CLASSES:   PromiseResolver
  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. /*
  30.     File:        PrmRslvr.h
  31.  
  32.     Contains:    PromiseResolver header
  33.  
  34.     Written by:    Vincent Lo
  35.  
  36.     Copyright:    ⌐ 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  37.  
  38.     Change History (most recent first):
  39.  
  40.          <3>     4/10/95    VL        1236490: Made GetPromiseValue work during
  41.                                     FulfillPromise.
  42.          <2>     3/14/95    VL        1225208,1225201: Added IsSettingPromise to
  43.                                     ensure that we don't call ResolvePromise
  44.                                     while setting a promise.
  45.          <1>     7/26/94    VL        first checked in
  46.     To Do:
  47. */
  48.  
  49. #ifndef _PRMRSLVR_
  50. #define _PRMRSLVR_
  51.  
  52. #ifndef _ODTYPES_
  53. #include <ODTypes.h>
  54. #endif
  55.  
  56. #ifndef __CM_API__
  57. #include <CMAPI.h>
  58. #endif
  59.  
  60. typedef struct {
  61.     ODPart*                sourcePart;
  62.     ProcessSerialNumber sourcePSN;
  63. } ODValueRefCon;
  64.  
  65. class CMStorageUnit;
  66. class ODPart;
  67.  
  68. class PromiseResolver 
  69. {
  70. public:
  71.  
  72.     PromiseResolver();
  73.     
  74.     ~PromiseResolver();
  75.     
  76.     void InitPromiseResolver(CMStorageUnit* su);
  77.  
  78.     ODBoolean IsPromiseValue(Environment* ev);
  79.  
  80.     void SetSourcePart(Environment* ev,
  81.                         ODPart *sourcePart);
  82.  
  83.     ODPart* GetSourcePart(Environment* ev);
  84.  
  85.     void ClearPromise(Environment* ev);
  86.  
  87.     void ResolvePromise(Environment* ev);
  88.  
  89.     ODULong GetPromiseCount();
  90.     
  91.     void SettingPromise();
  92.     
  93.     void DoneSettingPromise();
  94.     
  95.     ODBoolean IsSettingPromise();
  96.     
  97. protected:
  98.  
  99.     ODPtr GetPromiseInfo(CMValue curValue);
  100.  
  101.     void SetPromiseInfo(CMValue curValue, ODPtr theInfo);
  102.     
  103.     void IncrementPromiseCount();
  104.     
  105.     void DecrementPromiseCount();
  106.     
  107.     ODULong        fPromiseCount;
  108.     CMStorageUnit*    fSU;
  109.     ODBoolean    fSettingPromise;
  110.     ODValueRefCon*    fResolvingPromiseInfo;
  111. };
  112.  
  113.  
  114. #endif    // _PRMRSLVR_
  115.