~ubuntu-branches/ubuntu/edgy/lasso/edgy

« back to all changes in this revision

Viewing changes to lasso/xml/xml.h

  • Committer: Bazaar Package Importer
  • Author(s): Frederic Peters
  • Date: 2004-09-13 09:26:34 UTC
  • Revision ID: james.westby@ubuntu.com-20040913092634-01vdfl8j9cp94exa
Tags: upstream-0.4.1
ImportĀ upstreamĀ versionĀ 0.4.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: xml.h,v 1.38 2004/08/23 14:05:20 nclapies Exp $ 
 
2
 *
 
3
 * Lasso - A free implementation of the Liberty Alliance specifications.
 
4
 *
 
5
 * Copyright (C) 2004 Entr'ouvert
 
6
 * http://lasso.entrouvert.org
 
7
 * 
 
8
 * Authors: Nicolas Clapies <nclapies@entrouvert.com>
 
9
 *          Valery Febvre <vfebvre@easter-eggs.com>
 
10
 *
 
11
 * This program is free software; you can redistribute it and/or modify
 
12
 * it under the terms of the GNU General Public License as published by
 
13
 * the Free Software Foundation; either version 2 of the License, or
 
14
 * (at your option) any later version.
 
15
 * 
 
16
 * This program is distributed in the hope that it will be useful,
 
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
19
 * GNU General Public License for more details.
 
20
 * 
 
21
 * You should have received a copy of the GNU General Public License
 
22
 * along with this program; if not, write to the Free Software
 
23
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
24
 */
 
25
 
 
26
#ifndef __LASSO_XML_H__
 
27
#define __LASSO_XML_H__
 
28
 
 
29
#ifdef __cplusplus
 
30
extern "C" {
 
31
#endif /* __cplusplus */
 
32
 
 
33
#include <lasso/xml/strings.h>
 
34
#include <lasso/xml/tools.h>
 
35
 
 
36
#define LASSO_TYPE_NODE (lasso_node_get_type())
 
37
#define LASSO_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LASSO_TYPE_NODE, LassoNode))
 
38
#define LASSO_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), LASSO_TYPE_NODE, LassoNodeClass))
 
39
#define LASSO_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_NODE))
 
40
#define LASSO_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_NODE))
 
41
#define LASSO_NODE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), LASSO_TYPE_NODE, LassoNodeClass)) 
 
42
 
 
43
typedef enum {
 
44
  lassoNodeExportTypeXml = 1,
 
45
  lassoNodeExportTypeBase64,
 
46
  lassoNodeExportTypeQuery,
 
47
  lassoNodeExportTypeSoap
 
48
} lassoNodeExportType;
 
49
 
 
50
typedef enum {
 
51
  lassoSignatureTypeNone = 0,
 
52
  lassoSignatureTypeSimple,
 
53
  lassoSignatureTypeWithX509
 
54
} lassoSignatureType;
 
55
 
 
56
typedef struct _xmlAttr LassoAttr;
 
57
 
 
58
typedef struct _LassoNode LassoNode;
 
59
typedef struct _LassoNodeClass LassoNodeClass;
 
60
typedef struct _LassoNodePrivate LassoNodePrivate;
 
61
 
 
62
/**
 
63
 * _LassoNode:
 
64
 * @parent: the parent object
 
65
 * @private: private pointer structure
 
66
 **/
 
67
struct _LassoNode {
 
68
  GObject parent;
 
69
  /*< private >*/
 
70
  LassoNodePrivate *private;
 
71
};
 
72
 
 
73
struct _LassoNodeClass {
 
74
  GObjectClass parent_class;
 
75
  /*< vtable >*/
 
76
  /*< public >*/
 
77
  LassoNode*     (* copy)                  (LassoNode     *node);
 
78
  void           (* destroy)               (LassoNode     *node);
 
79
  gchar*         (* dump)                  (LassoNode     *node,
 
80
                                            const xmlChar *encoding,
 
81
                                            int            format);
 
82
  gchar*         (* export)                (LassoNode     *node);
 
83
  gchar*         (* export_to_base64)      (LassoNode     *node);
 
84
  gchar*         (* export_to_query)       (LassoNode     *node,
 
85
                                            lassoSignatureMethod  sign_method,
 
86
                                            const gchar          *private_key_file);
 
87
  gchar*         (* export_to_soap)        (LassoNode     *node);
 
88
  LassoAttr*     (* get_attr)              (LassoNode      *node,
 
89
                                            const xmlChar  *name,
 
90
                                            GError        **err);
 
91
  xmlChar*       (* get_attr_value)        (LassoNode      *node,
 
92
                                            const xmlChar  *name,
 
93
                                            GError        **err);
 
94
  GPtrArray*     (* get_attrs)             (LassoNode     *node);
 
95
  LassoNode*     (* get_child)             (LassoNode      *node,
 
96
                                            const xmlChar  *name,
 
97
                                            const xmlChar  *href,
 
98
                                            GError        **err);
 
99
  xmlChar*       (* get_child_content)     (LassoNode      *node,
 
100
                                            const xmlChar  *name,
 
101
                                            const xmlChar  *href,
 
102
                                            GError        **err);
 
103
  GPtrArray*     (* get_children)          (LassoNode     *node);
 
104
  xmlChar*       (* get_content)           (LassoNode      *node,
 
105
                                            GError        **err);
 
106
  xmlChar*       (* get_name)              (LassoNode     *node);
 
107
  void           (* import)                (LassoNode     *node,
 
108
                                            const gchar   *buffer);
 
109
  void           (* import_from_node)      (LassoNode     *node,
 
110
                                            LassoNode     *imported_node);
 
111
  void           (* rename_prop)           (LassoNode     *node,
 
112
                                            const xmlChar *old_name,
 
113
                                            const xmlChar *new_name);
 
114
  gint           (* verify_signature)      (LassoNode   *node,
 
115
                                            const gchar *public_key_file);
 
116
  gint           (* verify_x509_signature) (LassoNode   *node,
 
117
                                            const gchar *certificate_file);
 
118
  /*< private >*/
 
119
  void       (* add_child)          (LassoNode     *node,
 
120
                                     LassoNode     *child,
 
121
                                     gboolean       unbounded);
 
122
  gint       (* add_signature)      (LassoNode     *node,
 
123
                                     gint           sign_method,
 
124
                                     const xmlChar *private_key_file,
 
125
                                     const xmlChar *certificate_file);
 
126
  gint       (* add_signature_tmpl) (LassoNode            *node,
 
127
                                     lassoSignatureType    sign_type,
 
128
                                     lassoSignatureMethod  sign_method,
 
129
                                     xmlChar              *reference_id);
 
130
  gchar*     (* build_query)        (LassoNode     *node);
 
131
  xmlNodePtr (* get_xmlNode)        (LassoNode     *node);
 
132
  void       (* new_child)          (LassoNode     *node,
 
133
                                     const xmlChar *name,
 
134
                                     const xmlChar *content,
 
135
                                     gboolean       unbounded);
 
136
  void       (* new_ns_prop)        (LassoNode     *node,
 
137
                                     const xmlChar *name,
 
138
                                     const xmlChar *value,
 
139
                                     const xmlChar *href,
 
140
                                     const xmlChar *prefix);
 
141
  GData*     (* serialize)          (LassoNode     *node,
 
142
                                     GData         *gd);
 
143
  void       (* set_name)           (LassoNode     *node,
 
144
                                     const xmlChar *name);
 
145
  void       (* set_ns)             (LassoNode     *node,
 
146
                                     const xmlChar *href,
 
147
                                     const xmlChar *prefix);
 
148
  void       (* set_prop)           (LassoNode     *node,
 
149
                                     const xmlChar *name,
 
150
                                     const xmlChar *value);
 
151
  void       (* set_xmlNode)        (LassoNode     *node,
 
152
                                     xmlNodePtr     libxml_node);
 
153
  gint       (* sign_signature_tmpl)(LassoNode     *node,
 
154
                                     const xmlChar *private_key_file,
 
155
                                     const xmlChar *certificate_file);
 
156
};
 
157
 
 
158
LASSO_EXPORT GType      lasso_node_get_type              (void);
 
159
 
 
160
LASSO_EXPORT LassoNode* lasso_node_new                   (void);
 
161
LASSO_EXPORT LassoNode* lasso_node_new_from_dump         (const gchar *buffer);
 
162
LASSO_EXPORT LassoNode* lasso_node_new_from_xmlNode      (xmlNodePtr node);
 
163
 
 
164
LASSO_EXPORT LassoNode* lasso_node_copy                  (LassoNode *node);
 
165
 
 
166
LASSO_EXPORT void       lasso_node_destroy               (LassoNode *node);
 
167
 
 
168
LASSO_EXPORT gchar*     lasso_node_dump                  (LassoNode     *node,
 
169
                                                          const xmlChar *encoding,
 
170
                                                          int            format);
 
171
 
 
172
LASSO_EXPORT gchar*     lasso_node_export                (LassoNode *node);
 
173
 
 
174
LASSO_EXPORT gchar*     lasso_node_export_to_base64      (LassoNode *node);
 
175
 
 
176
LASSO_EXPORT gchar*     lasso_node_export_to_query       (LassoNode            *node,
 
177
                                                          lassoSignatureMethod  sign_method,
 
178
                                                          const gchar          *private_key_file);
 
179
 
 
180
LASSO_EXPORT gchar*     lasso_node_export_to_soap        (LassoNode *node);
 
181
 
 
182
LASSO_EXPORT LassoAttr* lasso_node_get_attr              (LassoNode      *node,
 
183
                                                          const xmlChar  *name,
 
184
                                                          GError        **err);
 
185
 
 
186
LASSO_EXPORT xmlChar*   lasso_node_get_attr_value        (LassoNode      *node,
 
187
                                                          const xmlChar  *name,
 
188
                                                          GError        **err);
 
189
 
 
190
LASSO_EXPORT GPtrArray* lasso_node_get_attrs             (LassoNode *node);
 
191
 
 
192
LASSO_EXPORT LassoNode* lasso_node_get_child             (LassoNode      *node,
 
193
                                                          const xmlChar  *name,
 
194
                                                          const xmlChar  *href,
 
195
                                                          GError        **err);
 
196
 
 
197
LASSO_EXPORT xmlChar *  lasso_node_get_child_content     (LassoNode      *node,
 
198
                                                          const xmlChar  *name,
 
199
                                                          const xmlChar  *href,
 
200
                                                          GError        **err);
 
201
 
 
202
LASSO_EXPORT GPtrArray* lasso_node_get_children          (LassoNode *node);
 
203
 
 
204
LASSO_EXPORT xmlChar*   lasso_node_get_content           (LassoNode  *node,
 
205
                                                          GError    **err);
 
206
 
 
207
LASSO_EXPORT xmlChar*   lasso_node_get_name              (LassoNode *node);
 
208
 
 
209
LASSO_EXPORT void       lasso_node_import                (LassoNode   *node,
 
210
                                                          const gchar *buffer);
 
211
 
 
212
LASSO_EXPORT void       lasso_node_import_from_node      (LassoNode *node,
 
213
                                                          LassoNode *imported_node);
 
214
 
 
215
LASSO_EXPORT void       lasso_node_rename_prop           (LassoNode     *node,
 
216
                                                          const xmlChar *old_name,
 
217
                                                          const xmlChar *new_name);
 
218
 
 
219
LASSO_EXPORT gint       lasso_node_verify_signature      (LassoNode   *node,
 
220
                                                          const gchar *public_key_file);
 
221
 
 
222
LASSO_EXPORT gint       lasso_node_verify_x509_signature (LassoNode   *node,
 
223
                                                          const gchar *ca_certificate_file);
 
224
 
 
225
#ifdef __cplusplus
 
226
}
 
227
#endif /* __cplusplus */
 
228
 
 
229
#endif /* __LASSO_XML_H__ */