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

  1. |##########|
  2. |#MAGIC   #|BLOCLNGE
  3. |#PROJECT #|""
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x--x-----x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x----xxxxx-xx---
  9. |##########|
  10. DEFINITION MODULE ObjFiles;
  11.  
  12. FROM OStreams      IMPORT InStream,EOF;
  13. FROM ODictionaries IMPORT SymbolExists,SymbolNotFound;
  14. FROM Exceptions    IMPORT RangeViolation;
  15.  
  16. EXCEPTION
  17.   SyntaxError : "Syntactic error";
  18.   UnknownKey  : "Unknown key descriptor";
  19.  
  20. TYPE
  21.   ClassDict   = HIDDEN;
  22.   ObjDict     = HIDDEN;
  23.   KeyDict     = HIDDEN;
  24.  
  25.   StrPtr      = CLASSPTR TO STRING;
  26.  
  27.   ObjFile     = POINTER TO ObjFileObj;
  28.   Retrievable = POINTER TO OBJECT
  29.                   METHOD Retrieve(file : ObjFile;key : LONGINT);
  30.                 END;
  31.   Constructor = PROCEDURE(REF name : STRING):Retrievable;
  32.   ConList     = ARRAY OF RECORD
  33.                   name : POINTER TO STRING;
  34.                   con  : Constructor;
  35.                 END;
  36.   ConNodePtr  = POINTER TO ConNode;
  37.   ConNode     = RECORD
  38.                   car : Retrievable;
  39.                   cdr : ConNodePtr;
  40.                 END;
  41.   ObjList     = POINTER TO OBJECT OF Retrievable;
  42.                   objs : ConNodePtr;
  43.                   CONSTRUCTOR Create(file : ObjFile):Retrievable;
  44.                   DESTRUCTOR Delete;
  45.                   METHOD Destruct;
  46.                 END;
  47.   ObjFileObj  = OBJECT
  48.                   in      : InStream;
  49.                   classes : ClassDict;
  50.                   objects : ObjDict;
  51.                   keys    : KeyDict;
  52.  
  53.                   CONSTRUCTOR Create;
  54.                   DESTRUCTOR Delete;
  55.  
  56.                   METHOD ReadObject():Retrievable;
  57.                   $$OwnHeap:=TRUE
  58.                   METHOD ReadString():STRING;
  59.                   METHOD ReadText(VAR str : StrPtr);
  60.  
  61.                   METHOD AddKey(REF names : LIST OF STRING);
  62.                   METHOD AddClass(REF name : STRING;con : Constructor);
  63.                   METHOD AddClasses(REF cons : ConList);
  64.  
  65.                   METHOD Include;
  66.  
  67.                   METHOD Retrieve(in : InStream);
  68.                 END;
  69.  
  70. END ObjFiles.
  71.