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