Files
EWF/library/server/wsf/router/wsf_routed_execution.e
2015-05-06 22:14:48 +02:00

77 lines
1.4 KiB
Plaintext

note
description: "Summary description for {WSF_ROUTED_EXECUTION}."
author: ""
date: "$Date$"
revision: "$Revision$"
deferred class
WSF_ROUTED_EXECUTION
feature -- Router
initialize_router
-- Initialize router
do
create_router
setup_router
end
create_router
-- Create `router'
--| could be redefine to initialize with proper capacity
do
create router.make (10)
ensure
router_created: router /= Void
end
setup_router
-- Setup `router'
require
router_created: router /= Void
deferred
end
feature -- Access
request: WSF_REQUEST
deferred
end
response: WSF_RESPONSE
deferred
end
router: WSF_ROUTER
-- Router used to dispatch the request according to the WSF_REQUEST object
-- and associated request methods
feature -- Execution
execute
-- Dispatch the request
-- and if handler is not found, execute the default procedure `execute_default'.
local
sess: WSF_ROUTER_SESSION
do
create sess
router.dispatch (request, response, sess)
if not sess.dispatched then
execute_default
end
ensure
response_status_is_set: response.status_is_set
end
execute_default
-- Dispatch requests without a matching handler.
local
msg: WSF_DEFAULT_ROUTER_RESPONSE
do
create msg.make_with_router (request, router)
msg.set_documentation_included (True)
response.send (msg)
end
end