|
@@ -23,22 +23,22 @@ VAR
|
|
H, L: INTEGER;
|
|
H, L: INTEGER;
|
|
|
|
|
|
TYPE
|
|
TYPE
|
|
- TSize* = HUGEINT;
|
|
|
|
- TOffset* = LONGWORD;
|
|
|
|
|
|
+ Position* = HUGEINT;
|
|
|
|
+ Offset* = LONGWORD;
|
|
|
|
|
|
TYPE
|
|
TYPE
|
|
(** Any stream output procedure or method. *)
|
|
(** Any stream output procedure or method. *)
|
|
- Sender* = PROCEDURE {DELEGATE} ( CONST buf: ARRAY OF CHAR; ofs, len: TOffset; propagate: BOOLEAN; VAR res: WORD );
|
|
|
|
|
|
+ Sender* = PROCEDURE {DELEGATE} ( CONST buf: ARRAY OF CHAR; ofs, len: Offset; propagate: BOOLEAN; VAR res: WORD );
|
|
|
|
|
|
(** Any stream input procedure or method. *)
|
|
(** Any stream input procedure or method. *)
|
|
- Receiver* = PROCEDURE {DELEGATE} ( VAR buf: ARRAY OF CHAR; ofs, size, min: TOffset; VAR len: TOffset; VAR res: WORD );
|
|
|
|
|
|
+ Receiver* = PROCEDURE {DELEGATE} ( VAR buf: ARRAY OF CHAR; ofs, size, min: Offset; VAR len: Offset; VAR res: WORD );
|
|
|
|
|
|
Connection* = OBJECT
|
|
Connection* = OBJECT
|
|
|
|
|
|
- PROCEDURE Send*( CONST data: ARRAY OF CHAR; ofs, len: TOffset; propagate: BOOLEAN; VAR res: WORD );
|
|
|
|
|
|
+ PROCEDURE Send*( CONST data: ARRAY OF CHAR; ofs, len: Offset; propagate: BOOLEAN; VAR res: WORD );
|
|
END Send;
|
|
END Send;
|
|
|
|
|
|
- PROCEDURE Receive*( VAR data: ARRAY OF CHAR; ofs, size, min: TOffset; VAR len: TOffset; VAR res: WORD );
|
|
|
|
|
|
+ PROCEDURE Receive*( VAR data: ARRAY OF CHAR; ofs, size, min: Offset; VAR len: Offset; VAR res: WORD );
|
|
END Receive;
|
|
END Receive;
|
|
|
|
|
|
PROCEDURE Close*;
|
|
PROCEDURE Close*;
|
|
@@ -50,14 +50,14 @@ TYPE
|
|
TYPE
|
|
TYPE
|
|
Writer* = OBJECT
|
|
Writer* = OBJECT
|
|
VAR
|
|
VAR
|
|
- tail: TOffset;
|
|
|
|
|
|
+ tail: Offset;
|
|
buf: POINTER TO ARRAY OF CHAR;
|
|
buf: POINTER TO ARRAY OF CHAR;
|
|
res*: WORD; (** result of last output operation. *)
|
|
res*: WORD; (** result of last output operation. *)
|
|
send: Sender;
|
|
send: Sender;
|
|
- sent*: TSize; (** count of sent bytes *)
|
|
|
|
|
|
+ sent*: Position; (** count of sent bytes *)
|
|
(* buf[0..tail-1] contains data to write. *)
|
|
(* buf[0..tail-1] contains data to write. *)
|
|
|
|
|
|
- PROCEDURE & InitWriter*( send: Sender; size: TOffset );
|
|
|
|
|
|
+ PROCEDURE & InitWriter*( send: Sender; size: Offset );
|
|
BEGIN
|
|
BEGIN
|
|
ASSERT ( send # NIL );
|
|
ASSERT ( send # NIL );
|
|
IF (buf = NIL) OR (LEN(buf) # size) THEN
|
|
IF (buf = NIL) OR (LEN(buf) # size) THEN
|
|
@@ -76,7 +76,7 @@ TYPE
|
|
RETURN FALSE
|
|
RETURN FALSE
|
|
END CanSetPos;
|
|
END CanSetPos;
|
|
|
|
|
|
- PROCEDURE SetPos*( pos: TSize );
|
|
|
|
|
|
+ PROCEDURE SetPos*( pos: Position );
|
|
BEGIN
|
|
BEGIN
|
|
HALT( 1234 )
|
|
HALT( 1234 )
|
|
END SetPos;
|
|
END SetPos;
|
|
@@ -90,7 +90,7 @@ TYPE
|
|
END Update;
|
|
END Update;
|
|
|
|
|
|
(** Current write position. *)
|
|
(** Current write position. *)
|
|
- PROCEDURE Pos*( ): TSize;
|
|
|
|
|
|
+ PROCEDURE Pos*( ): Position;
|
|
BEGIN
|
|
BEGIN
|
|
RETURN sent + tail;
|
|
RETURN sent + tail;
|
|
END Pos;
|
|
END Pos;
|
|
@@ -108,8 +108,8 @@ TYPE
|
|
END Char;
|
|
END Char;
|
|
|
|
|
|
(** Write len bytes from x, starting at ofs. *)
|
|
(** Write len bytes from x, starting at ofs. *)
|
|
- PROCEDURE Bytes*(CONST x: ARRAY OF CHAR; ofs, len: TOffset );
|
|
|
|
- VAR n: TOffset;
|
|
|
|
|
|
+ PROCEDURE Bytes*(CONST x: ARRAY OF CHAR; ofs, len: Offset );
|
|
|
|
+ VAR n: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
ASSERT ( len >= 0 );
|
|
ASSERT ( len >= 0 );
|
|
LOOP
|
|
LOOP
|
|
@@ -501,12 +501,12 @@ TYPE
|
|
(** A special writer that buffers output to be fetched by GetString or GetRawString. *)
|
|
(** A special writer that buffers output to be fetched by GetString or GetRawString. *)
|
|
StringWriter* = OBJECT (Writer)
|
|
StringWriter* = OBJECT (Writer)
|
|
|
|
|
|
- PROCEDURE & InitStringWriter*( size: TOffset );
|
|
|
|
|
|
+ PROCEDURE & InitStringWriter*( size: Offset );
|
|
BEGIN
|
|
BEGIN
|
|
InitWriter( Send, size )
|
|
InitWriter( Send, size )
|
|
END InitStringWriter;
|
|
END InitStringWriter;
|
|
|
|
|
|
- PROCEDURE Send( CONST buf: ARRAY OF CHAR; ofs, len: TOffset; propagate: BOOLEAN; VAR res: WORD );
|
|
|
|
|
|
+ PROCEDURE Send( CONST buf: ARRAY OF CHAR; ofs, len: Offset; propagate: BOOLEAN; VAR res: WORD );
|
|
BEGIN
|
|
BEGIN
|
|
res := StringFull
|
|
res := StringFull
|
|
END Send;
|
|
END Send;
|
|
@@ -517,10 +517,10 @@ TYPE
|
|
END CanSetPos;
|
|
END CanSetPos;
|
|
|
|
|
|
(* Set the position for the writer *)
|
|
(* Set the position for the writer *)
|
|
- PROCEDURE SetPos*( pos: TSize );
|
|
|
|
|
|
+ PROCEDURE SetPos*( pos: Position );
|
|
BEGIN
|
|
BEGIN
|
|
IF pos > LEN( buf ) THEN pos := LEN( buf ) END;
|
|
IF pos > LEN( buf ) THEN pos := LEN( buf ) END;
|
|
- tail := TOffset( pos ); sent := 0; res := Ok;
|
|
|
|
|
|
+ tail := Offset( pos ); sent := 0; res := Ok;
|
|
END SetPos;
|
|
END SetPos;
|
|
|
|
|
|
PROCEDURE Update*;
|
|
PROCEDURE Update*;
|
|
@@ -529,7 +529,7 @@ TYPE
|
|
|
|
|
|
(** Return the contents of the string writer (0X-terminated). *)
|
|
(** Return the contents of the string writer (0X-terminated). *)
|
|
PROCEDURE Get*( VAR s: ARRAY OF CHAR );
|
|
PROCEDURE Get*( VAR s: ARRAY OF CHAR );
|
|
- VAR i, m: TOffset;
|
|
|
|
|
|
+ VAR i, m: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
m := LEN( s ) - 1; i := 0;
|
|
m := LEN( s ) - 1; i := 0;
|
|
WHILE (i # tail) & (i < m) DO s[i] := buf[i]; INC( i ) END;
|
|
WHILE (i # tail) & (i < m) DO s[i] := buf[i]; INC( i ) END;
|
|
@@ -537,8 +537,8 @@ TYPE
|
|
END Get;
|
|
END Get;
|
|
|
|
|
|
(** Return the contents of the string writer (not 0X-terminated). The len parameters returns the string length. *)
|
|
(** Return the contents of the string writer (not 0X-terminated). The len parameters returns the string length. *)
|
|
- PROCEDURE GetRaw*( VAR s: ARRAY OF CHAR; VAR len: TOffset );
|
|
|
|
- VAR i, m: TOffset;
|
|
|
|
|
|
+ PROCEDURE GetRaw*( VAR s: ARRAY OF CHAR; VAR len: Offset );
|
|
|
|
+ VAR i, m: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
m := LEN( s ); i := 0;
|
|
m := LEN( s ); i := 0;
|
|
WHILE (i # tail) & (i < m) DO s[i] := buf[i]; INC( i ) END;
|
|
WHILE (i # tail) & (i < m) DO s[i] := buf[i]; INC( i ) END;
|
|
@@ -551,14 +551,14 @@ TYPE
|
|
(** A reader buffers input received from a Receiver. Must not be shared between processes. *)
|
|
(** A reader buffers input received from a Receiver. Must not be shared between processes. *)
|
|
Reader* = OBJECT
|
|
Reader* = OBJECT
|
|
VAR
|
|
VAR
|
|
- head, tail: TOffset;
|
|
|
|
|
|
+ head, tail: Offset;
|
|
buf: POINTER TO ARRAY OF CHAR;
|
|
buf: POINTER TO ARRAY OF CHAR;
|
|
res*: WORD; (** result of last input operation. *)
|
|
res*: WORD; (** result of last input operation. *)
|
|
receive: Receiver;
|
|
receive: Receiver;
|
|
- received*: TSize; (** count of received bytes *)
|
|
|
|
|
|
+ received*: Position; (** count of received bytes *)
|
|
(* buf[buf.head..buf.tail-1] contains data to read. *)
|
|
(* buf[buf.head..buf.tail-1] contains data to read. *)
|
|
|
|
|
|
- PROCEDURE & InitReader*( receive: Receiver; size: TOffset );
|
|
|
|
|
|
+ PROCEDURE & InitReader*( receive: Receiver; size: Offset );
|
|
BEGIN
|
|
BEGIN
|
|
ASSERT ( receive # NIL );
|
|
ASSERT ( receive # NIL );
|
|
IF (buf = NIL) OR (LEN(buf) # size) THEN
|
|
IF (buf = NIL) OR (LEN(buf) # size) THEN
|
|
@@ -579,14 +579,14 @@ TYPE
|
|
RETURN FALSE
|
|
RETURN FALSE
|
|
END CanSetPos;
|
|
END CanSetPos;
|
|
|
|
|
|
- PROCEDURE SetPos*( pos: TSize );
|
|
|
|
|
|
+ PROCEDURE SetPos*( pos: Position );
|
|
BEGIN
|
|
BEGIN
|
|
HALT( 1234 )
|
|
HALT( 1234 )
|
|
END SetPos;
|
|
END SetPos;
|
|
|
|
|
|
(** Return bytes currently available in input buffer. *)
|
|
(** Return bytes currently available in input buffer. *)
|
|
- PROCEDURE Available*( ): TOffset;
|
|
|
|
- VAR n: TOffset;
|
|
|
|
|
|
+ PROCEDURE Available*( ): Offset;
|
|
|
|
+ VAR n: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
IF (res = Ok) THEN
|
|
IF (res = Ok) THEN
|
|
IF (head = tail) THEN head := 0; receive( buf^, 0, LEN( buf ), 0, tail, res ); INC( received, tail );
|
|
IF (head = tail) THEN head := 0; receive( buf^, 0, LEN( buf ), 0, tail, res ); INC( received, tail );
|
|
@@ -600,7 +600,7 @@ TYPE
|
|
END Available;
|
|
END Available;
|
|
|
|
|
|
(** Current read position. *)
|
|
(** Current read position. *)
|
|
- PROCEDURE Pos*( ): TSize;
|
|
|
|
|
|
+ PROCEDURE Pos*( ): Position;
|
|
BEGIN
|
|
BEGIN
|
|
RETURN received - (tail - head)
|
|
RETURN received - (tail - head)
|
|
END Pos;
|
|
END Pos;
|
|
@@ -634,8 +634,8 @@ TYPE
|
|
END Peek;
|
|
END Peek;
|
|
|
|
|
|
(** Read size bytes into x, starting at ofs. The len parameter returns the number of bytes that were actually read. *)
|
|
(** Read size bytes into x, starting at ofs. The len parameter returns the number of bytes that were actually read. *)
|
|
- PROCEDURE Bytes*( VAR x: ARRAY OF CHAR; ofs, size: TOffset; VAR len: TOffset );
|
|
|
|
- VAR n: TOffset;
|
|
|
|
|
|
+ PROCEDURE Bytes*( VAR x: ARRAY OF CHAR; ofs, size: Offset; VAR len: Offset );
|
|
|
|
+ VAR n: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
ASSERT ( size >= 0 );
|
|
ASSERT ( size >= 0 );
|
|
len := 0;
|
|
len := 0;
|
|
@@ -662,7 +662,7 @@ TYPE
|
|
END Bytes;
|
|
END Bytes;
|
|
|
|
|
|
(** Skip n bytes on the reader. *)
|
|
(** Skip n bytes on the reader. *)
|
|
- PROCEDURE SkipBytes*( n: TSize );
|
|
|
|
|
|
+ PROCEDURE SkipBytes*( n: Position );
|
|
VAR ch: CHAR;
|
|
VAR ch: CHAR;
|
|
BEGIN
|
|
BEGIN
|
|
WHILE n > 0 DO ch := Get(); DEC( n ) END
|
|
WHILE n > 0 DO ch := Get(); DEC( n ) END
|
|
@@ -684,14 +684,14 @@ TYPE
|
|
|
|
|
|
(** Read a LONGINT. *)
|
|
(** Read a LONGINT. *)
|
|
PROCEDURE RawLInt*( VAR x: LONGINT );
|
|
PROCEDURE RawLInt*( VAR x: LONGINT );
|
|
- VAR ignore: TOffset;
|
|
|
|
|
|
+ VAR ignore: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
Bytes( SYSTEM.VAL( Bytes4, x ), 0, 4, ignore )
|
|
Bytes( SYSTEM.VAL( Bytes4, x ), 0, 4, ignore )
|
|
END RawLInt;
|
|
END RawLInt;
|
|
|
|
|
|
(** Read a HUGEINT. *)
|
|
(** Read a HUGEINT. *)
|
|
PROCEDURE RawHInt*( VAR x: HUGEINT );
|
|
PROCEDURE RawHInt*( VAR x: HUGEINT );
|
|
- VAR ignore: TOffset;
|
|
|
|
|
|
+ VAR ignore: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
Bytes( SYSTEM.VAL( Bytes8, x ), 0, 8, ignore )
|
|
Bytes( SYSTEM.VAL( Bytes8, x ), 0, 8, ignore )
|
|
END RawHInt;
|
|
END RawHInt;
|
|
@@ -722,7 +722,7 @@ TYPE
|
|
|
|
|
|
(** Read a SET. *)
|
|
(** Read a SET. *)
|
|
PROCEDURE RawSet*( VAR x: SET );
|
|
PROCEDURE RawSet*( VAR x: SET );
|
|
- VAR ignore: TOffset;
|
|
|
|
|
|
+ VAR ignore: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
Bytes( SYSTEM.VAL( Bytes4, x ), 0, 4, ignore )
|
|
Bytes( SYSTEM.VAL( Bytes4, x ), 0, 4, ignore )
|
|
END RawSet;
|
|
END RawSet;
|
|
@@ -735,21 +735,21 @@ TYPE
|
|
|
|
|
|
(** Read a REAL. *)
|
|
(** Read a REAL. *)
|
|
PROCEDURE RawReal*( VAR x: REAL );
|
|
PROCEDURE RawReal*( VAR x: REAL );
|
|
- VAR ignore: TOffset;
|
|
|
|
|
|
+ VAR ignore: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
Bytes( SYSTEM.VAL( Bytes4, x ), 0, 4, ignore )
|
|
Bytes( SYSTEM.VAL( Bytes4, x ), 0, 4, ignore )
|
|
END RawReal;
|
|
END RawReal;
|
|
|
|
|
|
(** Read a LONGREAL. *)
|
|
(** Read a LONGREAL. *)
|
|
PROCEDURE RawLReal*( VAR x: LONGREAL );
|
|
PROCEDURE RawLReal*( VAR x: LONGREAL );
|
|
- VAR ignore: TOffset;
|
|
|
|
|
|
+ VAR ignore: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
Bytes( SYSTEM.VAL( Bytes8, x ), 0, 8, ignore )
|
|
Bytes( SYSTEM.VAL( Bytes8, x ), 0, 8, ignore )
|
|
END RawLReal;
|
|
END RawLReal;
|
|
|
|
|
|
(** Read a 0X-terminated string. If the input string is larger than x, read the full string and assign the truncated 0X-terminated value to x. *)
|
|
(** Read a 0X-terminated string. If the input string is larger than x, read the full string and assign the truncated 0X-terminated value to x. *)
|
|
PROCEDURE RawString*( VAR x: ARRAY OF CHAR );
|
|
PROCEDURE RawString*( VAR x: ARRAY OF CHAR );
|
|
- VAR i, m: TOffset; ch: CHAR;
|
|
|
|
|
|
+ VAR i, m: Offset; ch: CHAR;
|
|
BEGIN
|
|
BEGIN
|
|
i := 0; m := LEN( x ) - 1;
|
|
i := 0; m := LEN( x ) - 1;
|
|
LOOP
|
|
LOOP
|
|
@@ -854,7 +854,7 @@ TYPE
|
|
(** Read all characters until the end of the line (inclusive). If the input string is larger than x, read the full string and assign
|
|
(** Read all characters until the end of the line (inclusive). If the input string is larger than x, read the full string and assign
|
|
the truncated 0X-terminated value to x. *)
|
|
the truncated 0X-terminated value to x. *)
|
|
PROCEDURE Ln*( VAR x: ARRAY OF CHAR );
|
|
PROCEDURE Ln*( VAR x: ARRAY OF CHAR );
|
|
- VAR i, m: TOffset; ch: CHAR;
|
|
|
|
|
|
+ VAR i, m: Offset; ch: CHAR;
|
|
BEGIN
|
|
BEGIN
|
|
i := 0; m := LEN( x ) - 1;
|
|
i := 0; m := LEN( x ) - 1;
|
|
LOOP
|
|
LOOP
|
|
@@ -872,7 +872,7 @@ TYPE
|
|
If the input string is larger than x, read the full string and assign the truncated 0X-terminated
|
|
If the input string is larger than x, read the full string and assign the truncated 0X-terminated
|
|
value to x. *)
|
|
value to x. *)
|
|
PROCEDURE LnEOT*( VAR x: ARRAY OF CHAR );
|
|
PROCEDURE LnEOT*( VAR x: ARRAY OF CHAR );
|
|
- VAR i, m: TOffset; ch: CHAR;
|
|
|
|
|
|
+ VAR i, m: Offset; ch: CHAR;
|
|
BEGIN
|
|
BEGIN
|
|
i := 0; m := LEN( x ) - 1;
|
|
i := 0; m := LEN( x ) - 1;
|
|
LOOP
|
|
LOOP
|
|
@@ -990,7 +990,7 @@ TYPE
|
|
(** A special reader that buffers input set by SetString or SetRawString. *)
|
|
(** A special reader that buffers input set by SetString or SetRawString. *)
|
|
StringReader* = OBJECT (Reader)
|
|
StringReader* = OBJECT (Reader)
|
|
|
|
|
|
- PROCEDURE & InitStringReader*( size: TOffset );
|
|
|
|
|
|
+ PROCEDURE & InitStringReader*( size: Offset );
|
|
BEGIN
|
|
BEGIN
|
|
InitReader( Receive, size )
|
|
InitReader( Receive, size )
|
|
END InitStringReader;
|
|
END InitStringReader;
|
|
@@ -1001,13 +1001,13 @@ TYPE
|
|
END CanSetPos;
|
|
END CanSetPos;
|
|
|
|
|
|
(** Set the reader position *)
|
|
(** Set the reader position *)
|
|
- PROCEDURE SetPos*( pos: TSize );
|
|
|
|
|
|
+ PROCEDURE SetPos*( pos: Position );
|
|
BEGIN
|
|
BEGIN
|
|
IF pos > LEN( buf ) THEN pos := LEN( buf ) END;
|
|
IF pos > LEN( buf ) THEN pos := LEN( buf ) END;
|
|
- head := TOffset( pos ); tail := LEN( buf ); received := LEN( buf ); res := Ok;
|
|
|
|
|
|
+ head := Offset( pos ); tail := LEN( buf ); received := LEN( buf ); res := Ok;
|
|
END SetPos;
|
|
END SetPos;
|
|
|
|
|
|
- PROCEDURE Receive( VAR buf: ARRAY OF CHAR; ofs, size, min: TOffset; VAR len: TOffset; VAR res: WORD );
|
|
|
|
|
|
+ PROCEDURE Receive( VAR buf: ARRAY OF CHAR; ofs, size, min: Offset; VAR len: Offset; VAR res: WORD );
|
|
BEGIN
|
|
BEGIN
|
|
IF min = 0 THEN res := Ok ELSE res := EOF END;
|
|
IF min = 0 THEN res := Ok ELSE res := EOF END;
|
|
len := 0;
|
|
len := 0;
|
|
@@ -1015,7 +1015,7 @@ TYPE
|
|
|
|
|
|
(** Set the contents of the string buffer. The s parameter is a 0X-terminated string. *)
|
|
(** Set the contents of the string buffer. The s parameter is a 0X-terminated string. *)
|
|
PROCEDURE Set*(CONST s: ARRAY OF CHAR );
|
|
PROCEDURE Set*(CONST s: ARRAY OF CHAR );
|
|
- VAR len: TOffset;
|
|
|
|
|
|
+ VAR len: Offset;
|
|
BEGIN
|
|
BEGIN
|
|
len := 0;
|
|
len := 0;
|
|
WHILE s[len] # 0X DO INC( len ) END;
|
|
WHILE s[len] # 0X DO INC( len ) END;
|
|
@@ -1027,7 +1027,7 @@ TYPE
|
|
END Set;
|
|
END Set;
|
|
|
|
|
|
(** Set the contents of the string buffer. The len parameter specifies the size of the buffer s. *)
|
|
(** Set the contents of the string buffer. The len parameter specifies the size of the buffer s. *)
|
|
- PROCEDURE SetRaw*(CONST s: ARRAY OF CHAR; ofs, len: TOffset );
|
|
|
|
|
|
+ PROCEDURE SetRaw*(CONST s: ARRAY OF CHAR; ofs, len: Offset );
|
|
BEGIN
|
|
BEGIN
|
|
IF len > LEN( buf ) THEN len := LEN( buf ) END;
|
|
IF len > LEN( buf ) THEN len := LEN( buf ) END;
|
|
head := 0; tail := len; received := len; res := Ok;
|
|
head := 0; tail := len; received := len; res := Ok;
|