1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */ 2 /* gdome-xml-domimpl.h 3 * 4 * Copyright (C) 1999 Raph Levien <raph@acm.org> 5 * Copyright (C) 2000 Mathieu Lacage <mathieu@gnu.org> 6 * Copyright (C) 2000 Anders Carlsson <andersca@gnu.org> 7 * Copyright (C) 2001 Paolo Casarini <paolo@casarini.org> 8 * 9 * This library is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU Lesser General Public 11 * License as published by the Free Software Foundation; either 12 * version 2.1 of the License, or (at your option) any later version. 13 * 14 * This library is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 * Lesser General Public License for more details. 18 * 19 * You should have received a copy of the GNU Lesser General Public 20 * License along with this library; if not, write to the Free Software 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 22 */ 23 24 /* ----------------------------------------------------------------- */ 25 /* ---------------------- DOMImplementation ---------------------- */ 26 /* ----------------------------------------------------------------- */ 27 28 #ifndef GDOME_DOMIMPL_FILE 29 #define GDOME_DOMIMPL_FILE 30 31 struct _GdomeDOMImplementationVtab { 32 void (*ref) (GdomeDOMImplementation *self, GdomeException *exc); 33 void (*unref) (GdomeDOMImplementation *self, GdomeException *exc); 34 gpointer (*query_interface) (GdomeDOMImplementation *self, const char *interface, GdomeException *exc); 35 GdomeBoolean (*hasFeature) (GdomeDOMImplementation *self, GdomeDOMString *feature, GdomeDOMString *version, GdomeException *exc); 36 GdomeDocumentType *(*createDocumentType) (GdomeDOMImplementation *self, GdomeDOMString *qualifiedName, GdomeDOMString *publicId, GdomeDOMString *systemId, GdomeException *exc); 37 GdomeDocument *(*createDocument) (GdomeDOMImplementation *self, GdomeDOMString *namespaceURI, GdomeDOMString *qualifiedName, GdomeDocumentType *doctype, GdomeException *exc); 38 void (*freeDoc) (GdomeDOMImplementation *self, GdomeDocument *doc, GdomeException *exc); 39 GdomeDocument *(*createDocFromURI) (GdomeDOMImplementation *self, const char *uri, unsigned int mode, GdomeException *exc); 40 GdomeDocument *(*createDocFromMemory) (GdomeDOMImplementation *self, char *buffer, unsigned int mode, GdomeException *exc); 41 GdomeDocument *(*createDocFromURIWithEntitiesTable) (GdomeDOMImplementation *self, const char *uri, const GdomeEntitiesTableEntry entityTable[], unsigned int mode, GdomeException *exc); 42 GdomeDocument *(*createDocFromMemoryWithEntitiesTable) (GdomeDOMImplementation *self, char *buffer, const GdomeEntitiesTableEntry entityTable[], unsigned int mode, GdomeException *exc); 43 GdomeBoolean (*saveDocToFile) (GdomeDOMImplementation *self, GdomeDocument *doc, const char *filename, GdomeSavingCode mode, GdomeException *exc); 44 GdomeBoolean (*saveDocToMemory) (GdomeDOMImplementation *self, GdomeDocument *doc, char **mem, GdomeSavingCode mode, GdomeException *exc); 45 GdomeBoolean (*saveDocToFileEnc) (GdomeDOMImplementation *self, GdomeDocument *doc, const char *filename, const char *encoding, GdomeSavingCode mode, GdomeException *exc); 46 GdomeBoolean (*saveDocToMemoryEnc) (GdomeDOMImplementation *self, GdomeDocument *doc, char **mem, const char *encoding, GdomeSavingCode mode, GdomeException *exc); 47 void (*enableEvent) (GdomeDOMImplementation *self, GdomeDocument *doc, const char *name, GdomeException *exc); 48 void (*disableEvent) (GdomeDOMImplementation *self, GdomeDocument* doc, const char *name, GdomeException *exc); 49 GdomeBoolean (*eventIsEnabled) (GdomeDOMImplementation *self, GdomeDocument* doc, const char *name, GdomeException *exc); 50 }; 51 52 typedef struct _Gdome_xml_DOMImplementation Gdome_xml_DOMImplementation; 53 struct _Gdome_xml_DOMImplementation { 54 GdomeDOMImplementation super; 55 const GdomeDOMImplementationVtab *vtab; 56 int refcnt; 57 }; 58 59 GdomeDOMImplementation * gdome_xml_di_mkref (void); 60 61 GdomeBoolean gdome_xml_di_hasFeature (GdomeDOMImplementation *self, 62 GdomeDOMString *feature, 63 GdomeDOMString *version, 64 GdomeException *exc); 65 66 GdomeDocumentType *gdome_xml_di_createDocumentType (GdomeDOMImplementation *self, 67 GdomeDOMString *qualifiedName, 68 GdomeDOMString *publicId, 69 GdomeDOMString *systemId, 70 GdomeException *exc); 71 72 GdomeDocument *gdome_xml_di_createDocument (GdomeDOMImplementation *self, 73 GdomeDOMString *namespaceURI, 74 GdomeDOMString *qualifiedName, 75 GdomeDocumentType *doctype, 76 GdomeException *exc); 77 78 void gdome_xml_di_ref (GdomeDOMImplementation *self, 79 GdomeException *exc); 80 81 void gdome_xml_di_unref (GdomeDOMImplementation *self, 82 GdomeException *exc); 83 gpointer gdome_xml_di_query_interface (GdomeDOMImplementation *self, 84 const char *interface, GdomeException *exc); 85 86 void gdome_xml_di_freeDoc (GdomeDOMImplementation *self, 87 GdomeDocument *doc, 88 GdomeException *exc); 89 GdomeDocument * gdome_xml_di_createDocFromURI (GdomeDOMImplementation *self, 90 const char *uri, 91 unsigned int mode, 92 GdomeException *exc); 93 GdomeDocument * gdome_xml_di_createDocFromMemory (GdomeDOMImplementation *self, 94 char *buffer, 95 unsigned int mode, 96 GdomeException *exc); 97 GdomeDocument * gdome_xml_di_createDocFromURIWithEntitiesTable (GdomeDOMImplementation *self, 98 const char *uri, 99 const GdomeEntitiesTableEntry entityTable[], 100 unsigned int mode, 101 GdomeException *exc); 102 GdomeDocument * gdome_xml_di_createDocFromMemoryWithEntitiesTable (GdomeDOMImplementation *self, 103 char *buffer, 104 const GdomeEntitiesTableEntry entityTable[], 105 unsigned int mode, 106 GdomeException *exc); 107 GdomeBoolean gdome_xml_di_saveDocToFile (GdomeDOMImplementation *self, 108 GdomeDocument *doc, 109 const char *filename, 110 GdomeSavingCode mode, 111 GdomeException *exc); 112 GdomeBoolean gdome_xml_di_saveDocToFileEnc (GdomeDOMImplementation *self, 113 GdomeDocument *doc, 114 const char *filename, 115 const char *encoding, 116 GdomeSavingCode mode, 117 GdomeException *exc); 118 GdomeBoolean gdome_xml_di_saveDocToMemory (GdomeDOMImplementation *self, 119 GdomeDocument *doc, 120 char **mem, 121 GdomeSavingCode mode, 122 GdomeException *exc); 123 GdomeBoolean gdome_xml_di_saveDocToMemoryEnc (GdomeDOMImplementation *self, 124 GdomeDocument *doc, 125 char **mem, 126 const char *encoding, 127 GdomeSavingCode mode, 128 GdomeException *exc); 129 void gdome_xml_di_enableEvent (GdomeDOMImplementation *self, 130 GdomeDocument *doc, 131 const char *name, 132 GdomeException *exc); 133 void gdome_xml_di_disableEvent (GdomeDOMImplementation *self, 134 GdomeDocument *doc, 135 const char *name, 136 GdomeException *exc); 137 GdomeBoolean gdome_xml_di_eventIsEnabled (GdomeDOMImplementation *self, 138 GdomeDocument *doc, 139 const char *name, 140 GdomeException *exc); 141 142 extern const GdomeDOMImplementationVtab gdome_xml_di_vtab; 143 144 145 146 #endif /* GDOME_DOMIMPL_FILE */ 147 148 149