note
	description: "Interface for platform-dependent properties"
	library: "Gobo Eiffel Kernel Library"
	copyright: "Copyright (c) 2002-2018, Eric Bezault and others"
	license: "MIT License"
	date: "$Date: 2019-02-07 22:54:15 +0000 (Thu, 07 Feb 2019) $"
	revision: "$Revision: 102807 $"

deferred class 
	KI_PLATFORM

feature -- Bits

	boolean_bits: INTEGER_32
			-- Number of bits in a value of type BOOLEAN
		deferred
		ensure
			instance_free: class
			large_enough: Result >= 1
		end

	Byte_bits: INTEGER_32 = 8
			-- Number of bits in a byte

	character_bits: INTEGER_32
			-- Number of bits in a value of type CHARACTER
		deferred
		ensure
			instance_free: class
			more_than_byte: Result >= Byte_bits
		end

	double_bits: INTEGER_32
			-- Number of bits in a value of type DOUBLE
		deferred
		ensure
			instance_free: class
			more_than_real: Result >= real_bits
		end

	integer_bits: INTEGER_32
			-- Number of bits in a value of type INTEGER
		deferred
		ensure
			instance_free: class
			more_than_character: Result >= character_bits
		end

	pointer_bits: INTEGER_32
			-- Number of bits in a value of type POINTER
		deferred
		ensure
			instance_free: class
		end

	real_bits: INTEGER_32
			-- Number of bits in a value of type REAL
		deferred
		ensure
			instance_free: class
		end
	
feature -- Bytes

	boolean_bytes: INTEGER_32
			-- Number of bytes in a value of type BOOLEAN
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 1
		end

	Byte_bytes: INTEGER_32 = 1
			-- Number of bytes in a byte

	character_bytes: INTEGER_32
			-- Number of bytes in a value of type CHARACTER
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 1
			more_than_byte: Result >= Byte_bytes
		end

	double_bytes: INTEGER_32
			-- Number of bytes in a value of type DOUBLE
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 1
			more_than_real: Result >= real_bytes
		end

	integer_bytes: INTEGER_32
			-- Number of bytes in a value of type INTEGER
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 1
			more_than_character: Result >= character_bytes
		end

	pointer_bytes: INTEGER_32
			-- Number of bytes in a value of type POINTER
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 1
		end

	real_bytes: INTEGER_32
			-- Number of bytes in a value of type REAL
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 1
		end
	
feature -- Values

	Minimum_byte_code: INTEGER_32 = 0
			-- Smallest supported code for a byte

	Maximum_byte_code: INTEGER_32 = 255
			-- Largest supported code for a byte

	minimum_character_code: INTEGER_32
			-- Smallest supported code for CHARACTER values
		deferred
		ensure
			instance_free: class
			meaningful: Result = 0
		end

	maximum_character_code: INTEGER_32
			-- Largest supported code for CHARACTER values
		deferred
		ensure
			instance_free: class
			meaningful: Result >= Maximum_byte_code
		end

	minimum_integer: INTEGER_32
			-- Smallest supported value of type INTEGER
		deferred
		ensure
			instance_free: class
			meaningful: Result <= 0
			definition: Result.to_double = (2 ^ (integer_bits - 2).to_double) * -2.to_double
		end

	maximum_integer: INTEGER_32
			-- Largest supported value of type INTEGER
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 0
			definition: Result = - (minimum_integer + 1)
		end

	minimum_integer_64: INTEGER_64
			-- Smallest supported value of type INTEGER_64
		deferred
		ensure
			instance_free: class
			meaningful: Result <= 0
		end

	maximum_integer_64: INTEGER_64
			-- Largest supported value of type INTEGER_64
		deferred
		ensure
			instance_free: class
			meaningful: Result >= 0
			definition: Result = - (minimum_integer_64 + 1)
		end
	
end -- class KI_PLATFORM

Generated by ISE EiffelStudio