note description: "Common interface for any request execution." date: "$Date$" revision: "$Revision$" deferred class WGI_EXECUTION --create -- make feature {NONE} -- Initialization make (req: WGI_REQUEST; res: WGI_RESPONSE) -- Create current execution with request `req' and response `res'. do request := req response := res end frozen make_from_execution (a_execution: WGI_EXECUTION) -- Create current execution from `a_execution'. do request := a_execution.request response := a_execution.response end feature {WGI_EXECUTION} -- Access request: WGI_REQUEST -- Request data. response: WGI_RESPONSE -- Response interface. feature -- Execution execute -- Execute the request based on `request' and `response'. deferred ensure is_valid_end_of_execution: is_valid_end_of_execution end feature {WGI_EXPORTER, WGI_CONNECTOR} -- Execution: rescue execute_rescue (e: detachable EXCEPTION) -- Execute on rescue. do (create {WGI_RESCUE_EXECUTION}).execute (request, response, e) end feature -- Status report is_valid_end_of_execution: BOOLEAN -- Last `execute' completed in valid state? do Result := True end feature -- Cleaning clean -- Clean request data. do end invariant wgi_request_set: request /= Void wgi_response_set: response /= Void note copyright: "2011-2015, Jocelyn Fiat, Javier Velilla, 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