On May 7, 2008, at 1:38 AM, Dave Beckett wrote:

Lauri Aalto wrote:
[adding APIs for stream/iterator map callbacks that supply context nodes]

Seems fine to me, but do you have a use for this?  If the answer is
yes then I'd be more confident that this is the right API.

I have an application that depends (critically) on being able to examine the context nodes in an iterator/stream. I could, of course, create my own iterator wrapper, but the map function is much simpler (== less code == less opportunity for bugs), but I need access to the context node in the map function.

While adding additional map_handler forms would address the problem, I think it would be cleaner to add a map_handler-safe version of librdf_[iterator|stream]_get_context, or work out a way to make the existing function map_handler safe, i.e. not result in a recursive call to librdf_[iterator|stream]_update_current_element(). It might do to change boolean "is_updated" into three states to include "is_mapping" to break the infinite recursion in librdf_[iterator| stream]_update_current_element() when processing mapping functions.

If I get a few spare cycles I'll investigate this.

-john

_______________________________________________
redland-dev mailing list
[email protected]
http://lists.librdf.org/mailman/listinfo/redland-dev

Reply via email to