[redland-dev] API change proposal: raptor_uri_handlers, rdf_concepts

Lauri Aalto laalto at gmail.com
Wed Nov 7 08:09:23 GMT 2007


I propose two relatively small API changes to Raptor
raptor_uri_handlers and librdf rdf_concepts.

If nobody screams, I will submit these changes to svn.librdf.org
repository soonish, let's say next week. (I have the changes already
in my private development branch.)

Motivation for both source compatibility breaks is the same: moving
Redland libraries to re-entrant direction with no writable (non-const)
static data.


1. const raptor_uri_handler

Raptor currently has no need to touch raptor_uri_handler structs
passed to it. raptor_uri_handlers should be flagged as const in the
API to enforce compile-time constness checking and to avoid casting
const data to non-const.

This would change raptor_uri_handler argument to const
raptor_uri_handler in the following 5 raptor.h public functions:

raptor_uri_set_handler()
raptor_uri_get_handler()
raptor_new_namespaces()
raptor_namespaces_init()
raptor_new_xml_writer()


2. rdf_concepts

All non-const static data should be moved from rdf_concepts.c to
librdf_world struct. Accessing it would require changes to all public
API macros in rdf_concepts.h - practically they need a pointer to a
librdf_world object. For example:

  #define LIBRDF_MS_Alt librdf_concept_resources[LIBRDF_CONCEPT_MS_Alt]

would change to

  #define LIBRDF_MS_Alt(world) world->concept_resources[LIBRDF_CONCEPT_MS_Alt]

(The underlying change would also fix
http://bugs.librdf.org/mantis/view.php?id=213 in a better way.)


Lauri


More information about the redland-dev mailing list