Stop including <isc/json.h> and <isc/xml.h> from <isc/mem.h>, <isc/socket.h> and <isc/task.h>
Only named
binary needs to include with <isc/json.h>
and <isc/xml.h>
, but the current code enforces inclusion of <isc/json.h>
everywhere because <foo>_renderjson()
and <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>_renderjson()
and <foo>_renderxml()
function declarations to their respective headers (<isc/json.h>
and <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>_renderxml()
and <foo>_renderjson()
methods anyway.