From 6b1aeb6465f339bfbc7be33b1ecab3f235adbe7f Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 29 Sep 2007 01:01:55 +0000 Subject: Introduce global initialistaion/finalisation for DOM library. This should be used to initialise any parts of the library before they are used. Mostly, this will comprise of static initialisers. Finalisation cleans up afterwards. This API is only exposed to language-specific binding libraries -- they should expose their own global initialisation/finalisation routines which call the core libdom ones. Introduce new utility code for namespace and qname processing. Port dom_document_create_element_ns() and dom_document_create_attribute_ns() to this new code. Make libdom-libxml's initialiser initialise libdom itself first of all. svn path=/trunk/dom/; revision=3604 --- src/bootstrap/Makefile | 2 +- src/bootstrap/init_fini.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/bootstrap/init_fini.c (limited to 'src/bootstrap') diff --git a/src/bootstrap/Makefile b/src/bootstrap/Makefile index 6c904cc..0eed6c7 100644 --- a/src/bootstrap/Makefile +++ b/src/bootstrap/Makefile @@ -22,7 +22,7 @@ CFLAGS += -I$(CURDIR) # Objects -OBJS = implregistry +OBJS = implregistry init_fini .PHONY: clean debug distclean export release setup test diff --git a/src/bootstrap/init_fini.c b/src/bootstrap/init_fini.c new file mode 100644 index 0000000..001eaf9 --- /dev/null +++ b/src/bootstrap/init_fini.c @@ -0,0 +1,47 @@ +/* + * This file is part of libdom. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell + */ + +#include + +#include "utils/namespace.h" + +/** + * Initialise the dom library + * + * \param alloc Pointer to memory (de)allocation function + * \param pw Pointer to client-specific private data + * \return DOM_NO_ERR on success. + * + * This should be invoked by the binding's initialiser and must be + * the first DOM library method called. + */ +dom_exception dom_initialise(dom_alloc alloc, void *pw) +{ + dom_exception err; + + err = _dom_namespace_initialise(alloc, pw); + + return err; +} + +/** + * Finalise the dom library + * + * \return DOM_NO_ERR on success. + * + * This should be invoked by the binding's finaliser and must be + * the last DOM library method called. + */ +dom_exception dom_finalise(void) +{ + dom_exception err; + + err = _dom_namespace_finalise(); + + return err; +} + -- cgit v1.2.3