note
	description: "Platform-dependent properties."
	library: "Free implementation of ELKS library"
	status: "See notice at end of class."
	legal: "See notice at end of class."
	date: "$Date: 2020-05-19 14:29:33 +0000 (Tue, 19 May 2020) $"
	revision: "$Revision: 104259 $"

class interface
	PLATFORM

create 
	default_create

feature -- Platform

	is_thread_capable: BOOLEAN
			-- Is current platform capable of multi-threading?
		ensure
			instance_free: class

	is_scoop_capable: BOOLEAN
			-- Is current platform capable of SCOOP?
		ensure
			instance_free: class

	is_dotnet: BOOLEAN
			-- Are we targetting .NET?
		ensure
			instance_free: class

	is_windows: BOOLEAN
			-- Are we running on Windows platform?
		ensure
			instance_free: class

	is_unix: BOOLEAN
			-- Are we running on a Unix like platform?
		ensure
			instance_free: class

	is_vms: BOOLEAN
			-- Are we running on VMS?
		ensure
			instance_free: class

	is_mac: BOOLEAN
			-- Are we running on Mac OS?
		ensure
			instance_free: class

	is_vxworks: BOOLEAN
			-- Are we running on VxWorks?
		ensure
			instance_free: class

	Is_little_endian: BOOLEAN
			-- Is current platform a little endian one?
		ensure
			instance_free: class

	is_64_bits: BOOLEAN
			-- Is the current process runing in 64-bit mode
		ensure
			instance_free: class
	
feature -- Access bytes size

	boolean_bytes: INTEGER_32
			-- Number of bytes in a value of type BOOLEAN
		ensure
			instance_free: class

	Character_8_bytes: INTEGER_32 = 1
			-- Number of bytes in a value of type CHARACTER_8

	Character_32_bytes: INTEGER_32 = 4
			-- Number of bytes in a value of type CHARACTER_32

	Natural_8_bytes: INTEGER_32 = 1
			-- Number of bytes in a value of type NATURAL_8

	Natural_16_bytes: INTEGER_32 = 2
			-- Number of bytes in a value of type NATURAL_16

	Natural_32_bytes: INTEGER_32 = 4
			-- Number of bytes in a value of type NATURAL_32

	Natural_64_bytes: INTEGER_32 = 8
			-- Number of bytes in a value of type NATURAL_64

	Integer_8_bytes: INTEGER_32 = 1
			-- Number of bytes in a value of type INTEGER_8

	Integer_16_bytes: INTEGER_32 = 2
			-- Number of bytes in a value of type INTEGER_16

	Integer_32_bytes: INTEGER_32 = 4
			-- Number of bytes in a value of type INTEGER_32

	Integer_64_bytes: INTEGER_32 = 8
			-- Number of bytes in a value of type INTEGER_64

	Real_32_bytes: INTEGER_32 = 4
			-- Number of bytes in a value of type REAL_32

	Real_64_bytes: INTEGER_32 = 8
			-- Number of bytes in a value of type REAL_64

	pointer_bytes: INTEGER_32
			-- Number of bytes in a value of type POINTER
		ensure
			instance_free: class
	
feature -- Access bits size

	boolean_bits: INTEGER_32
			-- Number of bits in a value of type BOOLEAN
		ensure
			instance_free: class

	Character_8_bits: INTEGER_32 = 8
			-- Number of bits in a value of type CHARACTER_8

	Character_32_bits: INTEGER_32 = 32
			-- Number of bits in a value of type CHARACTER_32

	Natural_8_bits: INTEGER_32 = 8
			-- Number of bits in a value of type NATURAL_8

	Natural_16_bits: INTEGER_32 = 16
			-- Number of bits in a value of type NATURAL_16

	Natural_32_bits: INTEGER_32 = 32
			-- Number of bits in a value of type NATURAL_32

	Natural_64_bits: INTEGER_32 = 64
			-- Number of bits in a value of type NATURAL_64

	Integer_8_bits: INTEGER_32 = 8
			-- Number of bits in a value of type INTEGER_8

	Integer_16_bits: INTEGER_32 = 16
			-- Number of bits in a value of type INTEGER_16

	Integer_32_bits: INTEGER_32 = 32
			-- Number of bits in a value of type INTEGER_32

	Integer_64_bits: INTEGER_32 = 64
			-- Number of bits in a value of type INTEGER_64

	Real_32_bits: INTEGER_32 = 32
			-- Number of bits in a value of type REAL_32

	Real_64_bits: INTEGER_32 = 64
			-- Number of bits in a value of type REAL_64

	pointer_bits: INTEGER_32
			-- Number of bits in a value of type POINTER
		ensure
			instance_free: class
	
note
	copyright: "Copyright (c) 1984-2020, Eiffel Software and others"
	license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
	source: "[
		Eiffel Software
		5949 Hollister Ave., Goleta, CA 93117 USA
		Telephone 805-685-1006, Fax 805-685-6869
		Website http://www.eiffel.com
		Customer support http://support.eiffel.com
	]"

end -- class PLATFORM

Generated by ISE EiffelStudio