summaryrefslogtreecommitdiffstats
path: root/lasso/xml
diff options
context:
space:
mode:
authorValery Febvre <vfebvre at easter-eggs.com>2004-05-05 16:19:50 +0000
committerValery Febvre <vfebvre at easter-eggs.com>2004-05-05 16:19:50 +0000
commitd696d0116c834fb7f09a6a2b2e5fe8f91554160e (patch)
tree4917c485afa5796508912930e8d4ecffa3c724fb /lasso/xml
parentb6011ab10734bec8c6b47131ef75a45e689681a4 (diff)
downloadlasso-d696d0116c834fb7f09a6a2b2e5fe8f91554160e.tar.gz
lasso-d696d0116c834fb7f09a6a2b2e5fe8f91554160e.tar.xz
lasso-d696d0116c834fb7f09a6a2b2e5fe8f91554160e.zip
Added a new method -> lasso_node_copy()
Diffstat (limited to 'lasso/xml')
-rw-r--r--lasso/xml/xml.c98
-rw-r--r--lasso/xml/xml.h5
2 files changed, 63 insertions, 40 deletions
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index 9417bc61..2d4e5c2f 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -44,6 +44,15 @@ lasso_node_build_query(LassoNode *node)
return (class->build_query(node));
}
+LassoNode *
+lasso_node_copy(LassoNode *node)
+{
+ g_return_val_if_fail (LASSO_IS_NODE(node), NULL);
+
+ LassoNodeClass *class = LASSO_NODE_GET_CLASS(node);
+ return (class->copy(node));
+}
+
xmlChar *
lasso_node_dump(LassoNode *node,
const xmlChar *encoding,
@@ -361,6 +370,12 @@ lasso_node_impl_build_query(LassoNode *node)
return (query);
}
+static LassoNode *
+lasso_node_impl_copy(LassoNode *node)
+{
+ return (lasso_node_new(xmlCopyNode(lasso_node_get_xmlNode(node), 1)));
+}
+
static xmlChar *
lasso_node_impl_dump(LassoNode *node,
const xmlChar *encoding,
@@ -400,8 +415,6 @@ lasso_node_impl_dump(LassoNode *node,
}
(void) xmlOutputBufferClose(buf);
- /* debug */
- printf("%s\n\n", ret);
return (ret);
}
@@ -537,7 +550,7 @@ lasso_node_impl_get_name(LassoNode *node)
*
*
**/
-void
+static void
lasso_node_impl_parse_memory(LassoNode *node,
const char *buffer)
{
@@ -648,6 +661,31 @@ lasso_node_impl_serialize(LassoNode *node,
}
static gchar *
+lasso_node_impl_soap_envelop(LassoNode *node)
+{
+ LassoNode *envelope, *body;
+ xmlChar *envelope_dump;
+
+ g_return_val_if_fail (LASSO_IS_NODE(node), NULL);
+
+ envelope = lasso_node_new(NULL);
+ lasso_node_set_name(envelope, "Envelope");
+ lasso_node_set_ns(envelope, lassoSoapEnvHRef, lassoSoapEnvPrefix);
+
+ body = lasso_node_new(NULL);
+ lasso_node_set_name(body, "Body");
+ lasso_node_set_ns(body, lassoSoapEnvHRef, lassoSoapEnvPrefix);
+
+ lasso_node_add_child(body, lasso_node_copy(node), 0);
+ lasso_node_add_child(envelope, body, 0);
+
+ envelope_dump = lasso_node_dump(envelope, "utf-8", 1);
+ g_object_unref(envelope);
+
+ return(envelope_dump);
+}
+
+static gchar *
lasso_node_impl_url_encode(LassoNode *node,
guint sign_method,
const gchar *private_key_file)
@@ -691,28 +729,7 @@ lasso_node_impl_url_encode(LassoNode *node,
return (ret);
}
-static gchar *
-lasso_node_impl_soap_envelop(LassoNode *node)
-{
- LassoNode *envelope, *body;
-
- g_return_val_if_fail (LASSO_IS_NODE(node), NULL);
-
- envelope = LASSO_NODE(g_object_new(LASSO_TYPE_NODE, NULL));
- lasso_node_set_name(LASSO_NODE(envelope), "Envelope");
- lasso_node_set_ns(LASSO_NODE(envelope), lassoSoapEnvHRef, lassoSoapEnvPrefix);
-
- body = LASSO_NODE(g_object_new(LASSO_TYPE_NODE, NULL));
- lasso_node_set_name(LASSO_NODE(body), "Body");
- lasso_node_set_ns(LASSO_NODE(body), lassoSoapEnvHRef, lassoSoapEnvPrefix);
-
- lasso_node_add_child(LASSO_NODE(body), node, 0);
- lasso_node_add_child(LASSO_NODE(envelope), LASSO_NODE(body), 0);
-
- return(lasso_node_dump(LASSO_NODE(envelope), "iso-8859-1", 1));
-}
-
-gint
+static gint
lasso_node_impl_verify_signature(LassoNode *node,
const gchar *certificate_file)
{
@@ -787,7 +804,7 @@ lasso_node_impl_verify_signature(LassoNode *node,
return (ret);
}
-/*** private methods *********************************************************/
+/*** private methods **********************************************************/
static void
lasso_node_impl_add_child(LassoNode *node,
@@ -922,22 +939,10 @@ lasso_node_impl_set_xmlNode(LassoNode *node,
}
/*****************************************************************************/
-/* instance and class init functions */
+/* overrided parent class methods */
/*****************************************************************************/
static void
-lasso_node_instance_init(LassoNode *instance)
-{
- LassoNode *node = LASSO_NODE(instance);
-
- node->private = g_new (LassoNodePrivate, 1);
- node->private->dispose_has_run = FALSE;
- node->private->node = xmlNewNode(NULL, "no-name-set");
-}
-
-/* overrided parent class methods */
-
-static void
lasso_node_dispose(LassoNode *node)
{
if (node->private->dispose_has_run) {
@@ -958,6 +963,20 @@ lasso_node_finalize(LassoNode *node)
g_free (node->private);
}
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+lasso_node_instance_init(LassoNode *instance)
+{
+ LassoNode *node = LASSO_NODE(instance);
+
+ node->private = g_new (LassoNodePrivate, 1);
+ node->private->dispose_has_run = FALSE;
+ node->private->node = xmlNewNode(NULL, "no-name-set");
+}
+
static void
lasso_node_class_init(LassoNodeClass *class)
{
@@ -965,6 +984,7 @@ lasso_node_class_init(LassoNodeClass *class)
/* virtual public methods */
class->build_query = lasso_node_impl_build_query;
+ class->copy = lasso_node_impl_copy;
class->dump = lasso_node_impl_dump;
class->get_attr = lasso_node_impl_get_attr;
class->get_attr_value = lasso_node_impl_get_attr_value;
diff --git a/lasso/xml/xml.h b/lasso/xml/xml.h
index d3f8ace2..81376d87 100644
--- a/lasso/xml/xml.h
+++ b/lasso/xml/xml.h
@@ -61,6 +61,7 @@ struct _LassoNodeClass {
/*< vtable >*/
/*< public >*/
GString* (* build_query) (LassoNode *node);
+ LassoNode* (* copy) (LassoNode *node);
xmlChar* (* dump) (LassoNode *node,
const xmlChar *encoding,
int format);
@@ -122,7 +123,9 @@ LASSO_EXPORT LassoNode* lasso_node_new (xmlNodePtr node);
LASSO_EXPORT GString* lasso_node_build_query (LassoNode *node);
-LASSO_EXPORT xmlChar * lasso_node_dump (LassoNode *node,
+LASSO_EXPORT LassoNode* lasso_node_copy (LassoNode *node);
+
+LASSO_EXPORT xmlChar* lasso_node_dump (LassoNode *node,
const xmlChar *encoding,
int format);