summaryrefslogtreecommitdiff
path: root/include/dom/core
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-07-12 21:24:08 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-07-12 21:24:08 +0000
commit0448f3de0bc3e9aa71bd095e87fd1cc2584e0a99 (patch)
tree9ad95bcba5e6f988763835f24b40e773551f53f6 /include/dom/core
parent92311b20c73b13766fb93c123c67e5045356ff49 (diff)
downloadlibdom-0448f3de0bc3e9aa71bd095e87fd1cc2584e0a99.tar.gz
libdom-0448f3de0bc3e9aa71bd095e87fd1cc2584e0a99.tar.bz2
Add DOMImplementation, DOMImplementationList
Add DOMImplementationRegistry Define DOMImplementationSource and provide API to allow their registration This little lot should permit some kind of sensible DOM bootstrapping. svn path=/trunk/dom/; revision=3403
Diffstat (limited to 'include/dom/core')
-rw-r--r--include/dom/core/implementation.h48
-rw-r--r--include/dom/core/impllist.h26
2 files changed, 74 insertions, 0 deletions
diff --git a/include/dom/core/implementation.h b/include/dom/core/implementation.h
new file mode 100644
index 0000000..3f42ab7
--- /dev/null
+++ b/include/dom/core/implementation.h
@@ -0,0 +1,48 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef dom_core_implementation_h_
+#define dom_core_implementation_h_
+
+#include <stdbool.h>
+
+#include <dom/core/exceptions.h>
+#include <dom/functypes.h>
+
+struct dom_document;
+struct dom_document_type;
+struct dom_implementation;
+struct dom_string;
+
+void dom_implementation_ref(struct dom_implementation *impl);
+void dom_implementation_unref(struct dom_implementation *impl);
+
+dom_exception dom_implementation_has_feature(
+ struct dom_implementation *impl,
+ struct dom_string *feature, struct dom_string *version,
+ bool *result);
+
+dom_exception dom_implementation_create_document_type(
+ struct dom_implementation *impl, struct dom_string *qname,
+ struct dom_string *public_id, struct dom_string *system_id,
+ struct dom_document_type **doctype,
+ dom_alloc alloc, void *pw);
+
+dom_exception dom_implementation_create_document(
+ struct dom_implementation *impl,
+ struct dom_string *namespace, struct dom_string *qname,
+ struct dom_document_type *doctype,
+ struct dom_document **doc,
+ dom_alloc alloc, void *pw);
+
+dom_exception dom_implementation_get_feature(
+ struct dom_implementation *impl,
+ struct dom_string *feature, struct dom_string *version,
+ void **object,
+ dom_alloc alloc, void *pw);
+
+#endif
diff --git a/include/dom/core/impllist.h b/include/dom/core/impllist.h
new file mode 100644
index 0000000..af303ae
--- /dev/null
+++ b/include/dom/core/impllist.h
@@ -0,0 +1,26 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef dom_core_impllist_h_
+#define dom_core_impllist_h_
+
+#include <dom/core/exceptions.h>
+
+struct dom_implementation;
+struct dom_implementation_list;
+
+void dom_implementation_list_ref(struct dom_implementation_list *list);
+void dom_implementation_list_unref(struct dom_implementation_list *list);
+
+dom_exception dom_implementation_list_get_length(
+ struct dom_implementation_list *list, unsigned long *length);
+
+dom_exception dom_implementation_list_item(
+ struct dom_implementation_list *list, unsigned long index,
+ struct dom_implementation **impl);
+
+#endif