home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / m2 / CycloneModules.lha / OOModules / txt / Stream.def < prev    next >
Text File  |  1996-05-17  |  1KB  |  50 lines

  1. DEFINITION MODULE Stream;
  2.  
  3. (* Copyright (C) 1996 by Marcel Timmermans *)
  4.  
  5. (* Stream example *)
  6.  
  7. FROM SYSTEM IMPORT ADDRESS,BYTE;
  8.  
  9. FROM Objects IMPORT TObject;
  10. IMPORT DosD,DosL;
  11.  
  12. CONST 
  13.  BufSize=1024;
  14.  
  15. TYPE
  16.  errortype = (ok,cantOpen,readErr,writeErr);
  17.  TStream = CLASS(TObject)
  18.              Write,eof:BOOLEAN;
  19.              file:DosD.FileHandlePtr;
  20.              buffer:POINTER TO ARRAY[0..BufSize] OF CHAR;
  21.              pos,
  22.              buflen,
  23.              bufpos:LONGINT;
  24.              Error:errortype;
  25.              PROCEDURE Open(name:ARRAY OF CHAR; write:BOOLEAN):BOOLEAN;
  26.              PROCEDURE ReadBytes(adr:ADDRESS; len:LONGINT);
  27.              PROCEDURE WriteBytes(adr:ADDRESS; len:LONGINT);
  28.              PROCEDURE Close;
  29.            END;
  30.  
  31.  TReader = CLASS(TObject)
  32.              FStream:TStream;
  33.              PROCEDURE Init(s:TStream);
  34.              PROCEDURE ReadBoolean(VAR b:BOOLEAN);
  35.              PROCEDURE ReadInt(VAR i:LONGINT);
  36.              PROCEDURE ReadChar(VAR ch:CHAR);
  37.              PROCEDURE ReadBlock(VAR blk:ARRAY OF BYTE);
  38.            END;
  39.  
  40.  TWriter = CLASS(TObject)
  41.              FStream:TStream;
  42.              PROCEDURE Init(s:TStream);
  43.              PROCEDURE WriteBoolean(b:BOOLEAN);
  44.              PROCEDURE WriteInt(i:LONGINT);
  45.              PROCEDURE WriteChar(ch:CHAR);
  46.              PROCEDURE WriteBlock(blk:ARRAY OF BYTE);
  47.            END;
  48.  
  49. END Stream.
  50.