note
	description: "Represent a file. With this, you can read information from a file"
	author: "Louis Marchand"
	date: "Thu, 02 Apr 2015 04:11:03 +0000"
	revision: "2.0"
	todo: "can_read_16, can_read_32, can_read_64"

class interface
	GAME_FILE

create 
	make_with_name,
	make_with_path,
	make_open_read,
	make_open_write,
	make_open_append,
	make_open_read_write,
	make_create_read_write,
	make_open_read_append

feature -- Implementation

	make_with_name (a_name: READABLE_STRING_GENERAL)
			-- Create file object with fn as file name.

	make_with_path (a_path: PATH)
			-- Create file object with a_path as path.
	
feature -- Access

	can_read_16: BOOLEAN
			-- There is another 16 bits in the stream to read.
		require
			file_readable: is_readable

	can_read_32: BOOLEAN
			-- There is another 16 bits in the stream to read.
		require
			file_readable: is_readable

	can_read_64: BOOLEAN
			-- There is another 16 bits in the stream to read.
		require
			file_readable: is_readable

	read_natural_16_big_endian
			-- Read the next 16-bit natural in the file (Reading in Big-Endian order).
			-- Make the result available in last_natural_16.
		require
			file_readable: is_readable
			can_read: can_read_16

	read_natural_32_big_endian
			-- Read the next 32-bit natural in the file (Reading in Big-Endian order).
			-- Make the result available in last_natural_32.
			-- Was declared in GAME_FILE as synonym of read_natural_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_natural_big_endian
			-- Read the next 32-bit natural in the file (Reading in Big-Endian order).
			-- Make the result available in last_natural_32.
			-- Was declared in GAME_FILE as synonym of read_natural_32_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_natural_64_big_endian
			-- Read the next 64-bit natural in the file (Reading in Big-Endian order).
			-- Make the result available in last_natural_64.
		require
			file_readable: is_readable
			can_read: can_read_64

	read_natural_16_little_endian
			-- Read the next 16-bit natural in the file (Reading in Little-Endian order).
			-- Make the result available in last_natural_16.
		require
			file_readable: is_readable
			can_read: can_read_16

	read_natural_32_little_endian
			-- Read the next 32-bit natural in the file (Reading in Little-Endian order).
			-- Make the result available in last_natural_32.
			-- Was declared in GAME_FILE as synonym of read_natural_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_natural_little_endian
			-- Read the next 32-bit natural in the file (Reading in Little-Endian order).
			-- Make the result available in last_natural_32.
			-- Was declared in GAME_FILE as synonym of read_natural_32_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_natural_64_little_endian
			-- Read the next 64-bit natural in the file (Reading in Little-Endian order).
			-- Make the result available in last_natural_64.
		require
			file_readable: is_readable
			can_read: can_read_64

	read_real_big_endian
			-- Read a new real (Reading in Big-Endian order).
			-- Make result available in last_real.
			-- Was declared in GAME_FILE as synonym of readreal_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	readreal_big_endian
			-- Read a new real (Reading in Big-Endian order).
			-- Make result available in last_real.
			-- Was declared in GAME_FILE as synonym of read_real_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_double_big_endian
			-- Read a new double (Reading in Big-Endian order).
			-- Make result available in last_double.
			-- Was declared in GAME_FILE as synonym of readdouble_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_64

	readdouble_big_endian
			-- Read a new double (Reading in Big-Endian order).
			-- Make result available in last_double.
			-- Was declared in GAME_FILE as synonym of read_double_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_64

	read_real_little_endian
			-- Read a new real (Reading in Little-Endian order).
			-- Make result available in last_real.
			-- Was declared in GAME_FILE as synonym of readreal_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	readreal_little_endian
			-- Read a new real (Reading in Little-Endian order).
			-- Make result available in last_real.
			-- Was declared in GAME_FILE as synonym of read_real_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_double_little_endian
			-- Read a new double (Reading in Little-Endian order).
			-- Make result available in last_double.
			-- Was declared in GAME_FILE as synonym of readdouble_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_64

	readdouble_little_endian
			-- Read a new double (Reading in Little-Endian order).
			-- Make result available in last_double.
			-- Was declared in GAME_FILE as synonym of read_double_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_64

	read_integer_16_big_endian
			-- Read a new 16-bit integer (Reading in Big-Endian order).
			-- Make result available in last_integer_16.
		require
			file_readable: is_readable
			can_read: can_read_16

	read_integer_32_big_endian
			-- Read a new 32-bit integer (Reading in Big-Endian order).
			-- Make result available in last_integer_32.
			-- Was declared in GAME_FILE as synonym of read_integer_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_integer_big_endian
			-- Read a new 32-bit integer (Reading in Big-Endian order).
			-- Make result available in last_integer_32.
			-- Was declared in GAME_FILE as synonym of read_integer_32_big_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_integer_64_big_endian
			-- Read a new 64-bit integer (Reading in Big-Endian order).
			-- Make result available in last_integer_64.
		require
			file_readable: is_readable
			can_read: can_read_64

	read_integer_16_little_endian
			-- Read a new 16-bit integer (Reading in Little-Endian order).
			-- Make result available in last_integer_16.
		require
			file_readable: is_readable
			can_read: can_read_16

	read_integer_32_little_endian
			-- Read a new 32-bit integer (Reading in Little-Endian order).
			-- Make result available in last_integer_32.
			-- Was declared in GAME_FILE as synonym of read_integer_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_integer_little_endian
			-- Read a new 32-bit integer (Reading in Little-Endian order).
			-- Make result available in last_integer_32.
			-- Was declared in GAME_FILE as synonym of read_integer_32_little_endian.
		require
			file_readable: is_readable
			can_read: can_read_32

	read_integer_64_little_endian
			-- Read a new 64-bit integer (Reading in Little-Endian order).
			-- Make result available in last_integer_64.
		require
			file_readable: is_readable
			can_read: can_read_64

	put_natural_16_big_endian (a_value: NATURAL_16)
			-- Write a_value at current position (Writing in Big-Endian order).
		require
			extendible: extendible

	put_natural_16_little_endian (a_value: NATURAL_16)
			-- Write a_value at current position (Writing in Little-Endian order).
		require
			extendible: extendible

	put_natural_32_big_endian (a_value: NATURAL_32)
			-- Write a_value at current position (Writing in Big-Endian order).
		require
			extendible: extendible

	put_natural_32_little_endian (a_value: NATURAL_32)
			-- Write a_value at current position (Writing in Little-Endian order).
		require
			extendible: extendible

	put_natural_64_big_endian (a_value: NATURAL_64)
			-- Write a_value at current position (Writing in Big-Endian order).
		require
			extendible: extendible

	put_natural_64_little_endian (a_value: NATURAL_64)
			-- Write a_value at current position (Writing in Little-Endian order).
		require
			extendible: extendible

	put_integer_16_big_endian (a_value: INTEGER_16)
			-- Write a_value at current position (Writing in Big-Endian order).

	put_integer_32_big_endian (a_value: INTEGER_32)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of put_integer_big_endian and putint_big_endian.

	put_integer_big_endian (a_value: INTEGER_32)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of put_integer_32_big_endian and putint_big_endian.

	putint_big_endian (a_value: INTEGER_32)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of put_integer_32_big_endian and put_integer_big_endian.

	put_integer_64_big_endian (a_value: INTEGER_64)
			-- Write a_value at current position (Writing in Big-Endian order).

	put_real_big_endian (a_value: REAL_32)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of putreal_big_endian.

	putreal_big_endian (a_value: REAL_32)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of put_real_big_endian.

	put_double_big_endian (a_value: REAL_64)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of putdouble_big_endian.

	putdouble_big_endian (a_value: REAL_64)
			-- Write a_value at current position (Writing in Big-Endian order).
			-- Was declared in GAME_FILE as synonym of put_double_big_endian.

	put_integer_16_little_endian (a_value: INTEGER_16)
			-- Write a_value at current position (Writing in little-Endian order).

	put_integer_32_little_endian (a_value: INTEGER_32)
			-- Write a_value at current position (Writing in little-Endian order).
			-- Was declared in GAME_FILE as synonym of put_integer_little_endian and putint_little_endian.

	put_integer_little_endian (a_value: INTEGER_32)
			-- Write a_value at current position (Writing in little-Endian order).
			-- Was declared in GAME_FILE as synonym of put_integer_32_little_endian and putint_little_endian.

	putint_little_endian (a_value: INTEGER_32)
			-- Write a_value at current position (Writing in little-Endian order).
			-- Was declared in GAME_FILE as synonym of put_integer_32_little_endian and put_integer_little_endian.

	put_integer_64_little_endian (a_value: INTEGER_64)
			-- Write a_value at current position (Writing in little-Endian order).

	put_real_little_endian (a_value: REAL_32)
			-- Write a_value at current position (Writing in little-Endian order).
			-- Was declared in GAME_FILE as synonym of putreal_little_endian.

	putreal_little_endian (a_value: REAL_32)
			-- Write a_value at current position (Writing in little-Endian order).
			-- Was declared in GAME_FILE as synonym of put_real_little_endian.

	put_double_little_endian (a_value: REAL_64)
			-- Write a_value at current position (Writing in Little-Endian order).
			-- Was declared in GAME_FILE as synonym of putdouble_little_endian.

	putdouble_little_endian (a_value: REAL_64)
			-- Write a_value at current position (Writing in Little-Endian order).
			-- Was declared in GAME_FILE as synonym of put_double_little_endian.
	
invariant
	file_ptr_not_null: not (is_closed xor file_pointer.is_default_pointer)

end -- class GAME_FILE

Generated by ISE EiffelStudio