From 3f899f6aae0b98d79a483e925cfe480ccd9b46ea Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Fri, 16 Sep 2011 15:11:37 +0200 Subject: [PATCH] Added "on_handler_mapped" callback to allow any REQUEST_HANDLER to record the existing routes. --- library/server/request/router/router-safe.ecf | 2 +- library/server/request/router/router.ecf | 2 +- library/server/request/router/src/request_handler.e | 7 +++++++ .../server/request/router/src/uri/request_uri_router_i.e | 1 + .../src/uri_template/request_uri_template_router_i.e | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/library/server/request/router/router-safe.ecf b/library/server/request/router/router-safe.ecf index eba5a022..f7aff5b6 100644 --- a/library/server/request/router/router-safe.ecf +++ b/library/server/request/router/router-safe.ecf @@ -24,7 +24,7 @@ /EIFGENs$ /.svn$ - diff --git a/library/server/request/router/router.ecf b/library/server/request/router/router.ecf index b336e855..93fae79f 100644 --- a/library/server/request/router/router.ecf +++ b/library/server/request/router/router.ecf @@ -24,7 +24,7 @@ /EIFGENs$ /.svn$ - diff --git a/library/server/request/router/src/request_handler.e b/library/server/request/router/src/request_handler.e index 30f0fc54..76ba939b 100644 --- a/library/server/request/router/src/request_handler.e +++ b/library/server/request/router/src/request_handler.e @@ -65,6 +65,13 @@ feature -- Execution: report result_attached: Result /= Void end +feature {REQUEST_ROUTER} -- Routes change + + on_handler_mapped (a_resource: READABLE_STRING_8; a_rqst_methods: detachable ARRAY [READABLE_STRING_8]) + -- Callback called when a router map a route to Current handler + do + end + note copyright: "2011-2011, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" diff --git a/library/server/request/router/src/uri/request_uri_router_i.e b/library/server/request/router/src/uri/request_uri_router_i.e index b699f6c0..c82b2089 100644 --- a/library/server/request/router/src/uri/request_uri_router_i.e +++ b/library/server/request/router/src/uri/request_uri_router_i.e @@ -26,6 +26,7 @@ feature -- Registration map_with_request_methods (p: READABLE_STRING_8; h: H; rqst_methods: detachable ARRAY [READABLE_STRING_8]) do handlers.force ([h, p, formatted_request_methods (rqst_methods)]) + h.on_handler_mapped (p, rqst_methods) end feature {NONE} -- Access: Implementation diff --git a/library/server/request/router/src/uri_template/request_uri_template_router_i.e b/library/server/request/router/src/uri_template/request_uri_template_router_i.e index d2f61c4d..2b50ba4d 100644 --- a/library/server/request/router/src/uri_template/request_uri_template_router_i.e +++ b/library/server/request/router/src/uri_template/request_uri_template_router_i.e @@ -33,6 +33,7 @@ feature -- Registration do handlers.force ([h, uri.template, formatted_request_methods (rqst_methods)]) templates.force (uri, uri.template) + h.on_handler_mapped (uri.template, rqst_methods) end map_with_request_methods (tpl: READABLE_STRING_8; h: H; rqst_methods: detachable ARRAY [READABLE_STRING_8])