Stop including <isc/json.h> and <isc/xml.h> from <isc/mem.h>, <isc/socket.h> and <isc/task.h>
named binary needs to include with
<isc/xml.h>, but the current code enforces inclusion of
<isc/json.h> everywhere because
<foo>_renderxml() methods use native datatypes.
Fixing this would allow us make the Makefiles much simpler.
One way of fixing it (and probably simplest) would be making the function arguments opaque (
isc_json_t * and
isc_xml_t * types).
The other way would be to move
<foo>_renderxml() function declarations to their respective headers (
<isc/xml.h>), but that would be sort of namespace violation.
The last method that's probably cleanest would be to have just one
<foo>_render() method that would accept
isc_render_t structure with appropriate function calls. There's a lot of code duplication between
<foo>_renderjson() methods anyway.