« Return to Thread: REST URL Mapping - The changes done in pattern matching Algorithm

Re: REST URL Mapping - The changes done in pattern matching Algorithm

by Dumindu Pallewela-2 :: Rate this Message:

Reply to Author | View in Thread

Hi All,

While I doubt the need for removing recursion here (given the fact that using more than a few url components will plainly be an overkill), it seems to me that removing recursion from both the functions is quite straight forward.

As it was mentioned earlier the function axis2_core_utils_internal_build_rest_map_recursively() is tail recursion, all you need is a loop.

Since axis2_core_utils_internal_infer_op_from_rest_map_recursively() is basically a Depth First Search (DFS) over the op_rest_map structure which essentially is a tree, it is just a matter of implementing the DFS iteratively, for which again there is a well known technique (e.g. [1]), which can be achieved using a stack to hold the current list of param/const_maps to visit.

HTH.
Thanks,
Dumindu.

[1] http://faculty.simpson.edu/lydia.sinapova/www/cmsc250/LN250_Tremblay/L20-Depth.htm

On Sat, Nov 22, 2008 at 1:20 AM, Thiago Rafael Becker <thiago.becker@...> wrote:
Hi, all

I was looking at the recursive functions and below are my findings.

In the case of axis2_core_utils_internal_build_rest_map_recursively,
which is a tail-recursive function, seems easy to convert it to a
iterative function.

In the case of axis2_core_utils_internal_infer_op_from_rest_map_recursively,
which is not a tail-recursive function, seems harder to do. Also, it
spans for about 250 lines, it's complicated to find how to convert it.
Did you ever thought about switching from ansi c to iso99 c? You can
do some things to reduce the line span of functions (static inline
functions) that you can't do with ansi c. What do you think about it?

Thanks :)

On Thu, Nov 20, 2008 at 4:04 PM, Thiago Rafael Becker
> Hi,
>
> On Thu, Nov 20, 2008 at 2:51 PM, Dimuthu Gamage <dimuthuc@...> wrote:
<... Large clip ...>
--
Thiago Rafael Becker
http://www.monstros.org/trbecker

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@...
For additional commands, e-mail: axis-c-dev-help@...


 « Return to Thread: REST URL Mapping - The changes done in pattern matching Algorithm