Преглед изворни кода

HUGEINT -> TSize

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7899 8c9fc860-2736-0410-a75d-ab315db34111
eth.metacore пре 7 година
родитељ
комит
17fd5937d5
2 измењених фајлова са 35 додато и 21 уклоњено
  1. 34 20
      source/Files64.Mod
  2. 1 1
      source/Files64.Tool

+ 34 - 20
source/Files64.Mod

@@ -72,7 +72,7 @@ TYPE
 		eof*: BOOLEAN;	(** has end of file been passed *)
 		eof*: BOOLEAN;	(** has end of file been passed *)
 		res*: LONGINT;	(** leftover byte count for ReadBytes/WriteBytes *)
 		res*: LONGINT;	(** leftover byte count for ReadBytes/WriteBytes *)
 			(** private fields for implementors *)
 			(** private fields for implementors *)
-		apos*: HUGEINT;
+		apos*: TSize;
 		bpos*: LONGINT;
 		bpos*: LONGINT;
 		hint*: Hint;
 		hint*: Hint;
 		file*: File;
 		file*: File;
@@ -99,14 +99,14 @@ TYPE
 			RETURN TRUE;
 			RETURN TRUE;
 		END CanSetPos;
 		END CanSetPos;
 
 
-		PROCEDURE SetPos*(pos : HUGEINT);
+		PROCEDURE SetPos*(pos : TSize);
 		BEGIN
 		BEGIN
 			file.Set(r, pos);
 			file.Set(r, pos);
 			Reset;
 			Reset;
 			received := pos; (* this effects that Streams.Reader.Pos() returns the correct location in the file *)
 			received := pos; (* this effects that Streams.Reader.Pos() returns the correct location in the file *)
 		END SetPos;
 		END SetPos;
 
 
-		PROCEDURE &InitFileReader*(file : File; pos: HUGEINT);
+		PROCEDURE &InitFileReader*(file : File; pos: TSize);
 		BEGIN
 		BEGIN
 			ASSERT(file # NIL);
 			ASSERT(file # NIL);
 			SELF.file := file;
 			SELF.file := file;
@@ -137,20 +137,20 @@ TYPE
 			RETURN TRUE;
 			RETURN TRUE;
 		END CanSetPos;
 		END CanSetPos;
 
 
-		PROCEDURE SetPos*(pos : HUGEINT);
+		PROCEDURE SetPos*(pos : TSize);
 			BEGIN
 			BEGIN
 			Update;
 			Update;
 			file.Set(r, pos);
 			file.Set(r, pos);
 			Reset;
 			Reset;
 		END SetPos;
 		END SetPos;
 
 
-		PROCEDURE Pos*(): HUGEINT;
+		PROCEDURE Pos*(): TSize;
 		BEGIN
 		BEGIN
 			Update;
 			Update;
 			RETURN file.Pos(r)
 			RETURN file.Pos(r)
 		END Pos;
 		END Pos;
 
 
-		PROCEDURE &InitFileWriter*(file: File; pos: HUGEINT);
+		PROCEDURE &InitFileWriter*(file: File; pos: TSize);
 		BEGIN
 		BEGIN
 			ASSERT(file # NIL);
 			ASSERT(file # NIL);
 			SELF.file := file;
 			SELF.file := file;
@@ -234,7 +234,7 @@ TYPE
 
 
 		(* default implementation using an enumerator *)
 		(* default implementation using an enumerator *)
 		PROCEDURE Has*(CONST name: ARRAY OF CHAR; VAR fullName: ARRAY OF CHAR; VAR flags: SET): BOOLEAN;
 		PROCEDURE Has*(CONST name: ARRAY OF CHAR; VAR fullName: ARRAY OF CHAR; VAR flags: SET): BOOLEAN;
-		VAR enum: Enumerator; time, date: LONGINT; size: HUGEINT;
+		VAR enum: Enumerator; time, date: LONGINT; size: TSize;
 		BEGIN
 		BEGIN
 			NEW(enum);
 			NEW(enum);
 			enum.Open(name,{});
 			enum.Open(name,{});
@@ -264,12 +264,12 @@ TYPE
 
 
 		(** Position a Rider at a certain position in a file. Multiple Riders can be positioned at different locations in a file. A Rider cannot be positioned beyond the end of a file. *)
 		(** Position a Rider at a certain position in a file. Multiple Riders can be positioned at different locations in a file. A Rider cannot be positioned beyond the end of a file. *)
 
 
-		PROCEDURE Set*(VAR r: Rider; pos: HUGEINT);
+		PROCEDURE Set*(VAR r: Rider; pos: TSize);
 		BEGIN HALT(301) END Set;	(* abstract *)
 		BEGIN HALT(301) END Set;	(* abstract *)
 
 
 		(** Return the offset of a Rider positioned on a file. *)
 		(** Return the offset of a Rider positioned on a file. *)
 
 
-		PROCEDURE Pos*(VAR r: Rider): HUGEINT;
+		PROCEDURE Pos*(VAR r: Rider): TSize;
 		BEGIN HALT(301) END Pos;	(* abstract *)
 		BEGIN HALT(301) END Pos;	(* abstract *)
 
 
 		(** Read a byte from a file, advancing the Rider one byte further.  R.eof indicates if the end of the file has been passed. *)
 		(** Read a byte from a file, advancing the Rider one byte further.  R.eof indicates if the end of the file has been passed. *)
@@ -294,7 +294,7 @@ TYPE
 
 
 		(** Return the current length of a file. *)
 		(** Return the current length of a file. *)
 
 
-		PROCEDURE Length*(): HUGEINT;
+		PROCEDURE Length*(): TSize;
 		BEGIN HALT(301) END Length;	(* abstract *)
 		BEGIN HALT(301) END Length;	(* abstract *)
 
 
 		(** Return the time (t) and date (d) when a file was last modified. *)
 		(** Return the time (t) and date (d) when a file was last modified. *)
@@ -377,14 +377,14 @@ TYPE
 
 
 		(** Get one entry from the enumerator. *)
 		(** Get one entry from the enumerator. *)
 
 
-		PROCEDURE GetEntry*(VAR name: ARRAY OF CHAR; VAR flags: SET; VAR time, date: LONGINT; VAR size: HUGEINT): BOOLEAN;
-		VAR len, temp: LONGINT;
+		PROCEDURE GetEntry*(VAR name: ARRAY OF CHAR; VAR flags: SET; VAR time, date: LONGINT; VAR size: TSize): BOOLEAN;
+		VAR len: LONGINT;
 		BEGIN
 		BEGIN
 			ReadNum(r, len);
 			ReadNum(r, len);
 			IF ~r.eof THEN
 			IF ~r.eof THEN
 				name[len] := 0X;	(* index check *)
 				name[len] := 0X;	(* index check *)
 				r.file.ReadBytes(r, name, 0, len);
 				r.file.ReadBytes(r, name, 0, len);
-				ReadSet(r, flags); ReadNum(r, time); ReadNum(r, date); ReadHInt(r, size);
+				ReadSet(r, flags); ReadNum(r, time); ReadNum(r, date); ReadTSize(r, size);
 				ASSERT(~r.eof)
 				ASSERT(~r.eof)
 			END;
 			END;
 			RETURN ~r.eof
 			RETURN ~r.eof
@@ -400,14 +400,14 @@ TYPE
 
 
 		(** For internal use only. *)
 		(** For internal use only. *)
 
 
-		PROCEDURE PutEntry*(VAR name: ARRAY OF CHAR; flags: SET; time, date: LONGINT; size:HUGEINT);
+		PROCEDURE PutEntry*(VAR name: ARRAY OF CHAR; flags: SET; time, date: LONGINT; size:TSize);
 		VAR len: LONGINT;
 		VAR len: LONGINT;
 		BEGIN
 		BEGIN
 			ASSERT(adding);
 			ASSERT(adding);
 			INC(SELF.size);
 			INC(SELF.size);
 			len := 0; WHILE name[len] # 0X DO INC(len) END;
 			len := 0; WHILE name[len] # 0X DO INC(len) END;
 			WriteNum(r, len); r.file.WriteBytes(r, name, 0, len);
 			WriteNum(r, len); r.file.WriteBytes(r, name, 0, len);
-			WriteSet(r, flags); WriteNum(r, time); WriteNum(r, date); WriteHInt(r, size)
+			WriteSet(r, flags); WriteNum(r, time); WriteNum(r, date); WriteTSize(r, size)
 		END PutEntry;
 		END PutEntry;
 
 
 	END Enumerator;
 	END Enumerator;
@@ -444,7 +444,7 @@ VAR
 
 
 (** Open a reader on a file at the specified position. *)
 (** Open a reader on a file at the specified position. *)
 
 
-PROCEDURE OpenReader*(VAR b: Reader; f: File; pos: HUGEINT);
+PROCEDURE OpenReader*(VAR b: Reader; f: File; pos: TSize);
 BEGIN
 BEGIN
 	IF b = NIL THEN
 	IF b = NIL THEN
 		NEW(b, f, pos)
 		NEW(b, f, pos)
@@ -455,7 +455,7 @@ END OpenReader;
 
 
 (** Open a writer on a file at the specified position.  Remember to call Streams.Update before registering or closing the file! *)
 (** Open a writer on a file at the specified position.  Remember to call Streams.Update before registering or closing the file! *)
 
 
-PROCEDURE OpenWriter*(VAR b: Writer; f: File; pos: HUGEINT);
+PROCEDURE OpenWriter*(VAR b: Writer; f: File; pos: TSize);
 BEGIN
 BEGIN
 	NEW(b, f, pos)
 	NEW(b, f, pos)
 END OpenWriter;
 END OpenWriter;
@@ -1077,9 +1077,16 @@ END ReadLInt;
 
 
 PROCEDURE ReadHInt*(VAR r: Rider; VAR x: HUGEINT);
 PROCEDURE ReadHInt*(VAR r: Rider; VAR x: HUGEINT);
 BEGIN
 BEGIN
-	r.file.ReadBytes(r, SYSTEM.VAL(Bytes8, x), 0, SIZEOF(HUGEINT))
+	r.file.ReadBytes(r, SYSTEM.VAL(Bytes8, x), 0, 8)
 END ReadHInt;
 END ReadHInt;
 
 
+PROCEDURE ReadTSize*(VAR r: Rider; VAR x: TSize);
+CONST Size = SIZEOF (TSize);
+TYPE Bytes = ARRAY Size OF CHAR;
+BEGIN
+	r.file.ReadBytes(r, SYSTEM.VAL(Bytes, x), 0, Size)
+END ReadTSize;
+
 PROCEDURE ReadSet*(VAR r: Rider; VAR x: SET);
 PROCEDURE ReadSet*(VAR r: Rider; VAR x: SET);
 CONST Size = SIZEOF (SET);
 CONST Size = SIZEOF (SET);
 TYPE Bytes = ARRAY Size OF CHAR;
 TYPE Bytes = ARRAY Size OF CHAR;
@@ -1149,11 +1156,18 @@ BEGIN
 	r.file.WriteBytes(r, SYSTEM.VAL(Bytes4, x), 0, 4)
 	r.file.WriteBytes(r, SYSTEM.VAL(Bytes4, x), 0, 4)
 END WriteLInt;
 END WriteLInt;
 
 
-PROCEDURE WriteHInt*(VAR r: Rider; x: HUGEINT);(*TODO HUGEINT *)
+PROCEDURE WriteHInt*(VAR r: Rider; x: HUGEINT);
 BEGIN
 BEGIN
-	r.file.WriteBytes(r, SYSTEM.VAL(Bytes8, x), 0, SIZEOF(HUGEINT))
+	r.file.WriteBytes(r, SYSTEM.VAL(Bytes8, x), 0, 8)
 END WriteHInt;
 END WriteHInt;
 
 
+PROCEDURE WriteTSize*(VAR r: Rider; x: TSize);
+CONST Size = SIZEOF (TSize);
+TYPE Bytes = ARRAY Size OF CHAR;
+BEGIN
+	r.file.WriteBytes(r, SYSTEM.VAL(Bytes, x), 0, Size)
+END WriteTSize;
+
 PROCEDURE WriteSet*(VAR r: Rider; x: SET);
 PROCEDURE WriteSet*(VAR r: Rider; x: SET);
 CONST Size = SIZEOF (SET);
 CONST Size = SIZEOF (SET);
 TYPE Bytes = ARRAY Size OF CHAR;
 TYPE Bytes = ARRAY Size OF CHAR;

+ 1 - 1
source/Files64.Tool

@@ -1,5 +1,5 @@
 # 1)
 # 1)
-Compiler.Compile -p=Win32G Streams64.Mod Files64.Mod Win32.HostFiles64.Mod RelativeFiles64.Mod FSTools64.Mod ~
+Compiler.Compile  Streams64.Mod Files64.Mod Win32.HostFiles64.Mod RelativeFiles64.Mod FSTools64.Mod ~
 
 
 # 2)
 # 2)
 # WINAOS generic
 # WINAOS generic