indexing
	description: "[
		Constants used for signal handling.
		This class may be used as ancestor by classes needing its facilities.
	]"
	status: "See notice at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	UNIX_SIGNALS

feature -- Access

	is_defined (sig: INTEGER): BOOLEAN
			-- Is sig a signal defined for this platform?

	is_ignored (sig: INTEGER): BOOLEAN
			-- Is sig currently set to be ignored?

	meaning (sig: INTEGER): STRING
			-- A message in English describing what sig is

	sigabrt: INTEGER
			-- Code for `Abort' signal

	sigalrm: INTEGER
			-- Code for ``Alarm clock'' signal

	sigbus: INTEGER
			-- Code for ``Bus error'' signal

	sigchld: INTEGER
			-- Code for ``Death of a child'' signal.
			-- Signal ignored by default

	sigcld: INTEGER
			-- Code for ``Death of a child'' signal.
			-- Signal ignored by default

	sigcont: INTEGER
			-- Code for ``Continue after stop'' signal.
			-- Signal ignored by default

	sigemt: INTEGER
			-- Code for ``EMT instruction'' signal

	sigfpe: INTEGER
			-- Code for ``Floating point exception'' signal

	sighup: INTEGER
			-- Code for `Hangup' signal

	sigill: INTEGER
			-- Code for ``Illegal instruction'' signal

	sigint: INTEGER
			-- Code for `Interrupt' signal

	sigio: INTEGER
			-- Code for ``Pending I/O on a descriptor'' signal.
			-- Signal ignored by default

	sigiot: INTEGER
			-- Code for ``IOT instruction'' signal

	sigkill: INTEGER
			-- Code for `Terminator' signal

	siglost: INTEGER
			-- Code for ``Resource lost'' signal

	sigphone: INTEGER
			-- Code for ``Line status change'' signal

	sigpipe: INTEGER
			-- Code for ``Broken pipe'' signal

	sigpoll: INTEGER
			-- Code for ``Selectable event pending'' signal

	sigprof: INTEGER
			-- Code for ``Profiling timer alarm'' signal

	sigpwr: INTEGER
			-- Code for `Power-fail' signal

	sigquit: INTEGER
			-- Code for `Quit' signal

	sigsegv: INTEGER
			-- Code for ``Segmentation violation'' signal

	sigstop: INTEGER
			-- Code for `Stop' signal

	sigsys: INTEGER
			-- Code for ``Bad argument to system call'' signal

	sigterm: INTEGER
			-- Code for ``Software termination'' signal

	sigtrap: INTEGER
			-- Code for ``Trace trap'' signal

	sigtstp: INTEGER
			-- Code for ``Stop from tty'' signal

	sigttin: INTEGER
			-- Code for ``Tty input from background'' signal.
			-- Signal ignored by default

	sigttou: INTEGER
			-- Code for ``Tty output from background'' signal.
			-- Signal ignored by default

	sigurg: INTEGER
			-- Code for ``Urgent condition on socket'' signal.
			-- Signal ignored by default

	sigusr1: INTEGER
			-- Code for ``User-defined signal #1''

	sigusr2: INTEGER
			-- Code for ``User-defined signal #2''

	sigvtalarm: INTEGER
			-- Code for ``Virtual time alarm'' signal

	sigwinch: INTEGER
			-- Code for ``Window size changed'' signal.
			-- Signal ignored by default

	sigwind: INTEGER
			-- Code for ``Window change'' signal

	sigxcpu: INTEGER
			-- Code for ``Cpu time limit exceeded'' signal

	sigxfsz: INTEGER
			-- Code for ``File size limit exceeded'' signal

feature -- Status report

	signal: INTEGER
			-- Code of last signal

feature -- Status setting

	catch (sig: INTEGER)
			-- Make sure that future occurrences of sig
			-- will be treated as exceptions.
			-- (This is the default for all signals.)
			-- No effect if signal not defined.

	ignore (sig: INTEGER)
			-- Make sure that future occurrences of sig
			-- will be ignored. (This is not the default.)
			-- No effect if signal not defined.

	reset_all_default
			-- Make sure that all exceptions will lead to their
			-- default handling.

	reset_default (sig: INTEGER)
			-- Make sure that exception of code code will lead
			-- to its default action.
		require
			is_defined (sig)

invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

indexing
	library: "[
			EiffelBase: Library of reusable components for Eiffel.
	]"
	status: "[
			Copyright 1986-2001 Interactive Software Engineering (ISE).
			For ISE customers the original versions are an ISE product
			covered by the ISE Eiffel license and support agreements.
	]"
	license: "[
			EiffelBase may now be used by anyone as FREE SOFTWARE to
			develop any product, public-domain or commercial, without
			payment to ISE, under the terms of the ISE Free Eiffel Library
			License (IFELL) at http://eiffel.com/products/base/license.html.
	]"
	source: "[
			Interactive Software Engineering Inc.
			ISE Building
			360 Storke Road, Goleta, CA 93117 USA
			Telephone 805-685-1006, Fax 805-685-6869
			Electronic mail <info@eiffel.com>
			Customer support http://support.eiffel.com
	]"
	info: "[
			For latest info see award-winning pages: http://eiffel.com
	]"

end -- class UNIX_SIGNALS