summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2005-08-25 14:23:08 +0000
committerFrederic Peters <fpeters@entrouvert.com>2005-08-25 14:23:08 +0000
commit154ca698230e832ed4c47c6f3d544bf20bd17e4f (patch)
treeba7f5a83dac1f0d1bae76e8b3af425bc2f95b819
parent86e8e423b420d1bc857be7c494a1c4adf95df401 (diff)
downloadlasso-154ca698230e832ed4c47c6f3d544bf20bd17e4f.tar.gz
lasso-154ca698230e832ed4c47c6f3d544bf20bd17e4f.tar.xz
lasso-154ca698230e832ed4c47c6f3d544bf20bd17e4f.zip
restore prefix and href for dst:Modify and dst:ModifyResponse
-rw-r--r--lasso/xml/dst_modify.c33
-rw-r--r--lasso/xml/dst_modify.h1
-rw-r--r--lasso/xml/dst_modify_response.c33
-rw-r--r--lasso/xml/dst_modify_response.h1
-rw-r--r--lasso/xml/dst_query.h1
-rw-r--r--lasso/xml/dst_query_response.h1
6 files changed, 60 insertions, 10 deletions
diff --git a/lasso/xml/dst_modify.c b/lasso/xml/dst_modify.c
index 62018328..e7626389 100644
--- a/lasso/xml/dst_modify.c
+++ b/lasso/xml/dst_modify.c
@@ -100,6 +100,28 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump)
return xmlnode;
}
+static int
+init_from_xml(LassoNode *node, xmlNode *xmlnode)
+{
+ int rc;
+ LassoDstModify *query = LASSO_DST_MODIFY(node);
+
+ rc = parent_class->init_from_xml(node, xmlnode);
+ if (rc) return rc;
+
+ if (strcmp((char*)xmlnode->ns->href, LASSO_PP_HREF) == 0) {
+ query->hrefServiceType = g_strdup(LASSO_PP_HREF);
+ query->prefixServiceType = g_strdup(LASSO_PP_PREFIX);
+ } else if (strcmp((char*)xmlnode->ns->href, LASSO_EP_HREF) == 0) {
+ query->hrefServiceType = g_strdup(LASSO_EP_HREF);
+ query->prefixServiceType = g_strdup(LASSO_EP_PREFIX);
+ } else {
+ /* XXX */
+ }
+
+ return 0;
+}
+
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@@ -114,13 +136,14 @@ instance_init(LassoDstModify *node)
static void
class_init(LassoDstModifyClass *klass)
{
- LassoNodeClass *nodeClass = LASSO_NODE_CLASS(klass);
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
parent_class = g_type_class_peek_parent(klass);
- nodeClass->get_xmlNode = get_xmlNode;
- nodeClass->node_data = g_new0(LassoNodeClassData, 1);
- lasso_node_class_set_nodename(nodeClass, "Modify");
- lasso_node_class_add_snippets(nodeClass, schema_snippets);
+ nclass->get_xmlNode = get_xmlNode;
+ nclass->init_from_xml = init_from_xml;
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ lasso_node_class_set_nodename(nclass, "Modify");
+ lasso_node_class_add_snippets(nclass, schema_snippets);
}
GType
diff --git a/lasso/xml/dst_modify.h b/lasso/xml/dst_modify.h
index 095b5734..0fb344f8 100644
--- a/lasso/xml/dst_modify.h
+++ b/lasso/xml/dst_modify.h
@@ -59,6 +59,7 @@ struct _LassoDstModify {
char *id;
char *itemID;
+ /*< private >*/
char *prefixServiceType;
char *hrefServiceType;
};
diff --git a/lasso/xml/dst_modify_response.c b/lasso/xml/dst_modify_response.c
index 644f5834..7fc40331 100644
--- a/lasso/xml/dst_modify_response.c
+++ b/lasso/xml/dst_modify_response.c
@@ -81,6 +81,28 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump)
return xmlnode;
}
+static int
+init_from_xml(LassoNode *node, xmlNode *xmlnode)
+{
+ int rc;
+ LassoDstModifyResponse *response = LASSO_DST_MODIFY_RESPONSE(node);
+
+ rc = parent_class->init_from_xml(node, xmlnode);
+ if (rc) return rc;
+
+ if (strcmp((char*)xmlnode->ns->href, LASSO_PP_HREF) == 0) {
+ response->hrefServiceType = g_strdup(LASSO_PP_HREF);
+ response->prefixServiceType = g_strdup(LASSO_PP_PREFIX);
+ } else if (strcmp((char*)xmlnode->ns->href, LASSO_EP_HREF) == 0) {
+ response->hrefServiceType = g_strdup(LASSO_EP_HREF);
+ response->prefixServiceType = g_strdup(LASSO_EP_PREFIX);
+ } else {
+ /* XXX */
+ }
+
+ return 0;
+}
+
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@@ -95,13 +117,14 @@ instance_init(LassoDstModifyResponse *node)
static void
class_init(LassoDstModifyResponseClass *klass)
{
- LassoNodeClass *nodeClass = LASSO_NODE_CLASS(klass);
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
parent_class = g_type_class_peek_parent(klass);
- nodeClass->get_xmlNode = get_xmlNode;
- nodeClass->node_data = g_new0(LassoNodeClassData, 1);
- lasso_node_class_set_nodename(nodeClass, "ModifyResponse");
- lasso_node_class_add_snippets(nodeClass, schema_snippets);
+ nclass->get_xmlNode = get_xmlNode;
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ nclass->init_from_xml = init_from_xml;
+ lasso_node_class_set_nodename(nclass, "ModifyResponse");
+ lasso_node_class_add_snippets(nclass, schema_snippets);
}
GType
diff --git a/lasso/xml/dst_modify_response.h b/lasso/xml/dst_modify_response.h
index f4faded4..0da22c29 100644
--- a/lasso/xml/dst_modify_response.h
+++ b/lasso/xml/dst_modify_response.h
@@ -58,6 +58,7 @@ struct _LassoDstModifyResponse {
char *itemIDRef;
char *timeStamp;
+ /*< private >*/
char *prefixServiceType;
char *hrefServiceType;
};
diff --git a/lasso/xml/dst_query.h b/lasso/xml/dst_query.h
index 16ff7b06..8676b7bf 100644
--- a/lasso/xml/dst_query.h
+++ b/lasso/xml/dst_query.h
@@ -59,6 +59,7 @@ struct _LassoDstQuery {
char *id;
char *itemID;
+ /*< private >*/
char *prefixServiceType;
char *hrefServiceType;
};
diff --git a/lasso/xml/dst_query_response.h b/lasso/xml/dst_query_response.h
index 4c40bf7a..7ee92f83 100644
--- a/lasso/xml/dst_query_response.h
+++ b/lasso/xml/dst_query_response.h
@@ -60,6 +60,7 @@ struct _LassoDstQueryResponse {
char *itemIDRef;
char *timeStamp;
+ /*< private >*/
char *prefixServiceType;
char *hrefServiceType;
};