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 interface
	KI_PLATFORM

feature -- Bits

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

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

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

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

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

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

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

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

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

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

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

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

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

	real_bytes: INTEGER_32
			-- Number of bytes in a value of type REAL
		ensure
			instance_free: class
			meaningful: Result >= 1
	
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
		ensure
			instance_free: class
			meaningful: Result = 0

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

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

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

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

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

Generated by ISE EiffelStudio