indexing description: "[ Abstract subsystem that can be enabled and disabled. ]" date: "$Date$" revision: "$Revision$" deferred class EM_SUBSYSTEM inherit EM_CONSTANTS export {NONE} all end EM_SHARED_SUBSYSTEMS export {NONE} all end SDL_FUNCTIONS_EXTERNAL export {NONE} all end DISPOSABLE export {NONE} all end feature -- Status report is_enabled: BOOLEAN is -- Is the subsystem enabled? deferred end feature -- Subsystem management enable is -- Enable subsystem. require not_enabled: not is_enabled deferred end disable is -- Disable subsystem. require enabled: is_enabled deferred end feature {NONE} -- Implementation dispose is -- Free external resources. do if is_enabled then disable end end end