diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2005-08-25 14:23:08 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2005-08-25 14:23:08 +0000 |
| commit | 154ca698230e832ed4c47c6f3d544bf20bd17e4f (patch) | |
| tree | ba7f5a83dac1f0d1bae76e8b3af425bc2f95b819 | |
| parent | 86e8e423b420d1bc857be7c494a1c4adf95df401 (diff) | |
| download | lasso-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.c | 33 | ||||
| -rw-r--r-- | lasso/xml/dst_modify.h | 1 | ||||
| -rw-r--r-- | lasso/xml/dst_modify_response.c | 33 | ||||
| -rw-r--r-- | lasso/xml/dst_modify_response.h | 1 | ||||
| -rw-r--r-- | lasso/xml/dst_query.h | 1 | ||||
| -rw-r--r-- | lasso/xml/dst_query_response.h | 1 |
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; }; |
