note
	description: "An abstract ancestor of every events managers"
	author: "Louis Marchand"
	date: "Fri, 17 Apr 2015 03:54:10 +0000"
	revision: "2.0"

deferred class 
	GAME_EVENTS

inherit
	GAME_SDL_ANY

feature {NONE} -- Initialization

	make
			-- Initialization of Current
		do
			events_controller.clear_actions.extend (agent clear)
			is_running := True
		ensure
			make_event_is_running: is_running
		end
	
feature -- Access

	stop
			-- Put Current innactive.
		require
			stop_is_running: is_running
		deferred
		ensure
			is_stopped: not is_running
		end

	run
			-- Put Current active.
		require
			run_not_already_running: not is_running
		deferred
		ensure
			is_running: is_running
		end

	set_is_running (a_value: BOOLEAN)
			-- Assign to is_running the value of a_value
		do
			if a_value then
				run
			else
				stop
			end
		ensure
			is_assign: is_running ~ a_value
		end

	clear
			-- Remove all events.
		deferred
		ensure
			running_unchanged: is_running = old is_running
		end

	is_running: BOOLEAN assign set_is_running
			-- Is Current active

	events_controller: GAME_EVENTS_CONTROLLER
			-- Manage every internal events
		deferred
		end
	
end -- class GAME_EVENTS

Generated by ISE EiffelStudio