home *** CD-ROM | disk | FTP | other *** search
- (*****************************************************************************)
- (* *)
- (* filename : XSTREAM.PAS *)
- (* author : Stefan Boether / Compuserve Id : 100023,275 *)
- (* FidoNet : 2:242/200 *)
- (* FidoNet : 2:243/91 *)
- (* Internet: 100023.275@CompuServe.COM *)
- (* system : TURBO 6.01 / TPW 1.0 / DOS 3.3 / WIN 3.1 *)
- (* changes : *)
- (* when what who *)
- (*---------------------------------------------------------------------------*)
- (*****************************************************************************)
- (* Description : Extended Stream access *)
- (*****************************************************************************)
-
- UNIT XStream; {$D-,O+}
-
- INTERFACE
-
- USES Dos, Objects;
-
- TYPE PMemStream = ^TMemStream;
- TMemStream = OBJECT ( TStream )
- BuffSize : WORD;
- Buffer : POINTER;
- Position : LONGINT;
-
- CONSTRUCTOR Init( ASize : Word );
- DESTRUCTOR Done; virtual;
- FUNCTION GetPos: LongInt; virtual;
- FUNCTION GetSize: LongInt; virtual;
- PROCEDURE Read(var Buf; Count: word); virtual;
- PROCEDURE Seek(Pos: LongInt); virtual;
- PROCEDURE Write(var Buf; Count: word); virtual;
- END;
-
- PObjStream = ^TObjStream;
- TObjStream = OBJECT ( TMemStream )
- CONSTRUCTOR Init( AAddr:POINTER );
- DESTRUCTOR Done; virtual;
- PROCEDURE Write(var Buf; Count: word); virtual;
- END;
-
- PPortStream = ^TPortStream;
- TPortStream = object( TStream )
- ThePort : Integer;
- TimeOut : Byte;
- OldTimeOut : Byte;
- constructor Init( APort:Integer; ATimeOut:Byte);
- destructor Done; virtual;
- constructor Load( var S:TStream );
- procedure Store( var S:TStream );
- function GetTimeOut:Byte; virtual;
- procedure SetTimeOut(B:Byte); virtual;
- function InitPort:Boolean; virtual;
- end;
-
- CONST Lpt1 = 1;
- Lpt2 = 2;
- Lpt3 = 3;
- Lpt4 = 4;
-
- Com1 = 1;
- Com2 = 2;
-
-
- TYPE PLptStream = ^TLptStream;
- TLptStream = object( TPortStream )
- constructor Init( APort:Integer; ATimeOut:Byte);
- constructor Load( var S:TStream );
- function GetTimeOut:Byte; virtual;
- procedure SetTimeOut(B:Byte); virtual;
- procedure Write( var Buf; Count:Word ); virtual;
- function InitPort:Boolean; virtual;
- end;
-
- PComStream = ^TComStream;
- TComStream = object( TPortStream )
- ComParam : Byte;
- constructor Init( APort:Integer; ATimeOut:Byte;
- ABaud:Word; AData:Byte; AParity:Char; AStop:Byte);
- constructor Load( var S:TStream );
- procedure Store( var S:TStream );
- function GetTimeOut:Byte; virtual;
- procedure SetTimeOut(B:Byte); virtual;
- procedure Write( var Buf; Count:Word ); virtual;
- function InitPort:Boolean; virtual;
- end;
-
- PNulStream = ^TNulStream;
- TNulStream = object( TStream )
- Size : LongInt;
- constructor Init;
- function GetSize: LongInt; VIRTUAL;
- function GetPos: LongInt; VIRTUAL;
- constructor Load( var S:TStream );
- procedure Store( var S:TStream );
- procedure Write( var Buf; Count:Word ); virtual;
- end;
-
- PCRCStream = ^TCRCStream;
- TCRCStream = OBJECT(TNulStream)
- CRC: Word;
- CONSTRUCTOR Init;
- FUNCTION GetCRC: LongInt; VIRTUAL;
- PROCEDURE Write(VAR Buf; Count: Word); VIRTUAL;
- END;
-
- PXmsStream = ^TXmsStream;
- TXmsStream = OBJECT ( TStream )
- Handle : WORD;
- Size : LONGINT;
- Position : LONGINT;
- Blocks : WORD;
-
- CONSTRUCTOR Init;
- DESTRUCTOR Done; virtual;
- FUNCTION GetPos: LongInt; virtual;
- FUNCTION GetSize: LongInt; virtual;
- PROCEDURE Read(var Buf; Count: word); virtual;
- PROCEDURE Seek(Pos: LongInt); virtual;
- PROCEDURE Write(var Buf; Count: word); virtual;
- FUNCTION MaxAvail : WORD;
- FUNCTION MemAvail : WORD;
- PRIVATE
- FUNCTION Check( InfoCode:INTEGER ) : BOOLEAN;
- END;
-
-
- CONST RLptStream: TStreamRec = (
- ObjType: 20100;
- VmtLink: Ofs(TypeOf(TLptStream)^);
- Load: @TLptStream.Load;
- Store: @TLptStream.Store
- );
- RComStream: TStreamRec = (
- ObjType: 20101;
- VmtLink: Ofs(TypeOf(TComStream)^);
- Load: @TComStream.Load;
- Store: @TComStream.Store
- );
-
- RNulStream: TStreamRec = (
- ObjType: 20102;
- VmtLink: Ofs(TypeOf(TNulStream)^);
- Load: @TNulStream.Load;
- Store: @TNulStream.Store
- );
-
- ResObjAddr : Pointer = Nil;
-
- PROCEDURE RegisterXStream;
-
- FUNCTION MemoryStrm( FName : PATHSTR ) : PStream;
-
-