home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Resources.def < prev    next >
Text File  |  1994-05-25  |  3KB  |  121 lines

  1. |##########|
  2. |#MAGIC   #|CLABLJAD
  3. |#PROJECT #|"ImportHelp"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x-xx---xxx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx---xxxxx------
  9. |##########|
  10. DEFINITION MODULE Resources;
  11.  
  12. |
  13. | 12 Jul 1992 WB added mem parameters for full Exec Memory support.
  14. |
  15.  
  16.  
  17. TYPE
  18.   ClassPtr    = HIDDEN;
  19.   ContextPtr  = HIDDEN;
  20.  
  21. |==============================================================================|
  22. | Achtung !!!!!
  23. | Diese Prozeduren dürfen nur vom Compiler benutzt werden, sie müssen
  24. | dafür an dieser Stelle im Quelltext stehen.
  25.  
  26.   PROCEDURE NewContext;
  27.  
  28.   PROCEDURE OldContext;
  29.  
  30.  
  31.   PROCEDURE AllocObj(class : ClassPtr;context : ContextPtr):ANYPTR;
  32.  
  33.   PROCEDURE FreeObj(obj : ANYPTR);
  34.  
  35.   PROCEDURE CloneObj(obj : ANYPTR;context : ContextPtr):ANYPTR;
  36.  
  37.   PROCEDURE ChangeObjContext(obj : ANYPTR;context : ContextPtr);
  38.  
  39. |==============================================================================|
  40.  
  41. FROM System IMPORT PROC;
  42.  
  43. FROM Exec IMPORT MemReqs, MemReqSet;
  44.  
  45. CONST
  46.   NoContext = NIL;|CAST(ContextPtr,NIL);
  47.  
  48.   DEFINITION MODULE ResHandles(ResHandlePtr : POINTER TO ResHandle);
  49.  
  50.     TYPE
  51.       ResourcePtr = HIDDEN;
  52.       ResHandle   = RECORD END;
  53.       Destructor  = PROCEDURE(res : ResHandlePtr);
  54.  
  55.     PROCEDURE AddResource(res      : ResHandlePtr;
  56.               destruct : Destructor;
  57.               context  : ContextPtr:=NIL);
  58.  
  59.     PROCEDURE RemResource(res : ResHandlePtr);
  60.  
  61.     PROCEDURE FreeResource(VAR res : ResHandlePtr);
  62.  
  63.     PROCEDURE IsResource(res : ResHandlePtr):BOOLEAN;
  64.  
  65.     (* PRIVAT !!! *)
  66.     PROCEDURE FreeResources(res : ResourcePtr);
  67.  
  68.  
  69.   END ResHandles;
  70.  
  71. EXCEPTION
  72.   NotEnoughMemory      : "Not enough memory";
  73.   MemoryNotAllocated   : "Memory not allocated";
  74.   NILDisposed          : "Disposed a NIL-Pointer";
  75.   ResourceFreedTwice   : "Resource freed twice";
  76.   ContexFreedTwice     : "Context freed twice";
  77.   NoOldContext         : "No old context accessable";
  78.   ActContextFreed      : "Actcontext freed";
  79.   ResourceNotAllocated : "Resource not allocated";
  80.   NilResource          : "Passed ResourcePtr is NIL";
  81.  
  82. VAR
  83.   ActContext    : ContextPtr;
  84.  
  85.  
  86. |
  87. | clear and chip will stay in for a while for compatibility, but will be
  88. | ignored if mem # {}.
  89. |
  90.  
  91. PROCEDURE Allocate(VAR p        : ANYPTR;
  92.                size     : LONGINT;
  93.                clear,
  94.                chip     : BOOLEAN := FALSE;
  95.                mem      : MemReqSet := MemReqSet:{};
  96.                context  : ContextPtr := NoContext );
  97.  
  98. PROCEDURE New( VAR p       : ANYPTR;
  99.            clear,
  100.            chip    : BOOLEAN := FALSE;
  101.            mem     : MemReqSet := MemReqSet:{};
  102.            context : ContextPtr:=NoContext );
  103.  
  104. PROCEDURE Dispose( VAR p : ANYPTR );
  105.  
  106. PROCEDURE DisposeAll( context : ContextPtr := NoContext );
  107.  
  108. PROCEDURE Avail( max,
  109.          chip : BOOLEAN := FALSE;
  110.          mem  : MemReqSet := MemReqSet:{} ): LONGINT;
  111.  
  112.  
  113. PROCEDURE Create_Context(father : ContextPtr := NoContext):ContextPtr;
  114.  
  115. PROCEDURE Create_Root():ContextPtr;
  116.  
  117. PROCEDURE Delete_Context(VAR context : ContextPtr);
  118.  
  119. END Resources.
  120.  
  121.