summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2007-07-30 09:24:37 +0000
committerFrederic Peters <fpeters@entrouvert.com>2007-07-30 09:24:37 +0000
commit9163f6f4bbe5115cd46a69e14a79d426a0ef40bf (patch)
tree2b9aced91d2f6fa70ddd9f6cb6cc29210933a3e5
parent7d712234f926c2fdcfae61be080da5c34ab91dbb (diff)
DstRefAppData is just a template, don't consider it a string but a container
for anything
-rw-r--r--lasso/id-wsf-2.0/data_service.c10
-rw-r--r--lasso/xml/id-wsf-2.0/disco_abstract.c2
-rw-r--r--lasso/xml/id-wsf-2.0/disco_abstract.h2
-rw-r--r--lasso/xml/id-wsf-2.0/disco_provider_id.c2
-rw-r--r--lasso/xml/id-wsf-2.0/disco_provider_id.h2
-rw-r--r--lasso/xml/id-wsf-2.0/disco_service_type.c2
-rw-r--r--lasso/xml/id-wsf-2.0/disco_service_type.h2
-rw-r--r--lasso/xml/id-wsf-2.0/dstref_app_data.c25
-rw-r--r--lasso/xml/id-wsf-2.0/dstref_app_data.h3
-rw-r--r--lasso/xml/id-wsf-2.0/dstref_item_data.c5
-rw-r--r--lasso/xml/id-wsf-2.0/dstref_item_data.h7
-rw-r--r--lasso/xml/id-wsf-2.0/dstref_modify.c39
-rw-r--r--lasso/xml/id-wsf-2.0/dstref_modify.h4
-rw-r--r--lasso/xml/id-wsf-2.0/subsref_app_data.c3
-rw-r--r--lasso/xml/id-wsf-2.0/subsref_app_data.h1
-rw-r--r--swig/id-wsf-2.0/dstref_app_data.i1
-rw-r--r--swig/id-wsf-2.0/inheritance.h2
17 files changed, 68 insertions, 44 deletions
diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c
index 38767e67..1969c76f 100644
--- a/lasso/id-wsf-2.0/data_service.c
+++ b/lasso/id-wsf-2.0/data_service.c
@@ -232,7 +232,9 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service)
node = xpathObj->nodesetval->nodeTab[0];
data = lasso_idwsf2_dstref_data_new();
data_item = LASSO_IDWSF2_DSTREF_ITEM_DATA(data);
- data_item->any = g_list_append(data_item->any, xmlCopyNode(node, 1));
+ LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any = g_list_append(
+ LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any,
+ xmlCopyNode(node, 1));
if (item_result_query_base->itemID != NULL) {
data_item->itemIDRef = g_strdup(item_result_query_base->itemID);
}
@@ -359,7 +361,7 @@ lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service, co
{
LassoIdWsf2Profile *profile = LASSO_IDWSF2_PROFILE(service);
LassoIdWsf2DstRefQueryResponse *response;
- LassoIdWsf2DstRefItemData *data = NULL;
+ LassoIdWsf2DstRefAppData *data = NULL;
GList *iter;
g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service), NULL);
@@ -371,7 +373,7 @@ lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service, co
/* If no item_id is given, return the first item */
if (item_id == NULL && response->Data != NULL && response->Data->data != NULL) {
- data = LASSO_IDWSF2_DSTREF_ITEM_DATA(response->Data->data);
+ data = LASSO_IDWSF2_DSTREF_APP_DATA(response->Data->data);
if (data->any != NULL && data->any->data != NULL) {
return xmlCopyNode(data->any->data, 1);
}
@@ -386,7 +388,7 @@ lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service, co
continue;
}
if (strcmp(LASSO_IDWSF2_DSTREF_ITEM_DATA(iter->data)->itemIDRef, item_id) == 0) {
- data = LASSO_IDWSF2_DSTREF_ITEM_DATA(iter->data);
+ data = LASSO_IDWSF2_DSTREF_APP_DATA(iter->data);
break;
}
}
diff --git a/lasso/xml/id-wsf-2.0/disco_abstract.c b/lasso/xml/id-wsf-2.0/disco_abstract.c
index 13cf2b20..317f65fa 100644
--- a/lasso/xml/id-wsf-2.0/disco_abstract.c
+++ b/lasso/xml/id-wsf-2.0/disco_abstract.c
@@ -114,7 +114,7 @@ lasso_idwsf2_disco_abstract_new()
* Return value: a newly created #LassoIdWsf2DiscoAbstract object
**/
LassoIdWsf2DiscoAbstract*
-lasso_idwsf2_disco_abstract_new_with_string(char *content)
+lasso_idwsf2_disco_abstract_new_with_string(const char *content)
{
LassoIdWsf2DiscoAbstract *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DISCO_ABSTRACT, NULL);
diff --git a/lasso/xml/id-wsf-2.0/disco_abstract.h b/lasso/xml/id-wsf-2.0/disco_abstract.h
index 452e5a4f..1b35ec32 100644
--- a/lasso/xml/id-wsf-2.0/disco_abstract.h
+++ b/lasso/xml/id-wsf-2.0/disco_abstract.h
@@ -72,7 +72,7 @@ struct _LassoIdWsf2DiscoAbstractClass {
LASSO_EXPORT GType lasso_idwsf2_disco_abstract_get_type(void);
LASSO_EXPORT LassoIdWsf2DiscoAbstract* lasso_idwsf2_disco_abstract_new(void);
-LASSO_EXPORT LassoIdWsf2DiscoAbstract* lasso_idwsf2_disco_abstract_new_with_string(char *content);
+LASSO_EXPORT LassoIdWsf2DiscoAbstract* lasso_idwsf2_disco_abstract_new_with_string(const char *content);
#ifdef __cplusplus
diff --git a/lasso/xml/id-wsf-2.0/disco_provider_id.c b/lasso/xml/id-wsf-2.0/disco_provider_id.c
index e1024713..473e5904 100644
--- a/lasso/xml/id-wsf-2.0/disco_provider_id.c
+++ b/lasso/xml/id-wsf-2.0/disco_provider_id.c
@@ -114,7 +114,7 @@ lasso_idwsf2_disco_provider_id_new()
* Return value: a newly created #LassoIdWsf2DiscoProviderID object
**/
LassoIdWsf2DiscoProviderID*
-lasso_idwsf2_disco_provider_id_new_with_string(char *content)
+lasso_idwsf2_disco_provider_id_new_with_string(const char *content)
{
LassoIdWsf2DiscoProviderID *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DISCO_PROVIDER_ID, NULL);
diff --git a/lasso/xml/id-wsf-2.0/disco_provider_id.h b/lasso/xml/id-wsf-2.0/disco_provider_id.h
index 9905bebc..7ebfa6f6 100644
--- a/lasso/xml/id-wsf-2.0/disco_provider_id.h
+++ b/lasso/xml/id-wsf-2.0/disco_provider_id.h
@@ -72,7 +72,7 @@ struct _LassoIdWsf2DiscoProviderIDClass {
LASSO_EXPORT GType lasso_idwsf2_disco_provider_id_get_type(void);
LASSO_EXPORT LassoIdWsf2DiscoProviderID* lasso_idwsf2_disco_provider_id_new(void);
-LASSO_EXPORT LassoIdWsf2DiscoProviderID* lasso_idwsf2_disco_provider_id_new_with_string(char *content);
+LASSO_EXPORT LassoIdWsf2DiscoProviderID* lasso_idwsf2_disco_provider_id_new_with_string(const char *content);
#ifdef __cplusplus
diff --git a/lasso/xml/id-wsf-2.0/disco_service_type.c b/lasso/xml/id-wsf-2.0/disco_service_type.c
index f34a22bd..03fcbb23 100644
--- a/lasso/xml/id-wsf-2.0/disco_service_type.c
+++ b/lasso/xml/id-wsf-2.0/disco_service_type.c
@@ -114,7 +114,7 @@ lasso_idwsf2_disco_service_type_new()
* Return value: a newly created #LassoIdWsf2DiscoServiceType object
**/
LassoIdWsf2DiscoServiceType*
-lasso_idwsf2_disco_service_type_new_with_string(char *content)
+lasso_idwsf2_disco_service_type_new_with_string(const char *content)
{
LassoIdWsf2DiscoServiceType *object;
object = g_object_new(LASSO_TYPE_IDWSF2_DISCO_SERVICE_TYPE, NULL);
diff --git a/lasso/xml/id-wsf-2.0/disco_service_type.h b/lasso/xml/id-wsf-2.0/disco_service_type.h
index eaa3f866..7e03f348 100644
--- a/lasso/xml/id-wsf-2.0/disco_service_type.h
+++ b/lasso/xml/id-wsf-2.0/disco_service_type.h
@@ -72,7 +72,7 @@ struct _LassoIdWsf2DiscoServiceTypeClass {
LASSO_EXPORT GType lasso_idwsf2_disco_service_type_get_type(void);
LASSO_EXPORT LassoIdWsf2DiscoServiceType* lasso_idwsf2_disco_service_type_new(void);
-LASSO_EXPORT LassoIdWsf2DiscoServiceType* lasso_idwsf2_disco_service_type_new_with_string(char *content);
+LASSO_EXPORT LassoIdWsf2DiscoServiceType* lasso_idwsf2_disco_service_type_new_with_string(const char *content);
#ifdef __cplusplus
diff --git a/lasso/xml/id-wsf-2.0/dstref_app_data.c b/lasso/xml/id-wsf-2.0/dstref_app_data.c
index a64a5f68..30f80bbd 100644
--- a/lasso/xml/id-wsf-2.0/dstref_app_data.c
+++ b/lasso/xml/id-wsf-2.0/dstref_app_data.c
@@ -40,8 +40,8 @@
static struct XmlSnippet schema_snippets[] = {
- { "content", SNIPPET_TEXT_CHILD,
- G_STRUCT_OFFSET(LassoIdWsf2DstRefAppData, content) },
+ { "", SNIPPET_LIST_XMLNODES,
+ G_STRUCT_OFFSET(LassoIdWsf2DstRefAppData, any) },
{NULL, 0, 0}
};
@@ -55,7 +55,7 @@ static LassoNodeClass *parent_class = NULL;
static void
instance_init(LassoIdWsf2DstRefAppData *node)
{
- node->content = NULL;
+ node->any = NULL;
}
static void
@@ -106,22 +106,3 @@ lasso_idwsf2_dstref_app_data_new()
{
return g_object_new(LASSO_TYPE_IDWSF2_DSTREF_APP_DATA, NULL);
}
-
-
-/**
- * lasso_idwsf2_dstref_app_data_new_with_string:
- * @content:
- *
- * Creates a new #LassoIdWsf2DstRefAppData object and initializes it
- * with @content.
- *
- * Return value: a newly created #LassoIdWsf2DstRefAppData object
- **/
-LassoIdWsf2DstRefAppData*
-lasso_idwsf2_dstref_app_data_new_with_string(char *content)
-{
- LassoIdWsf2DstRefAppData *object;
- object = g_object_new(LASSO_TYPE_IDWSF2_DSTREF_APP_DATA, NULL);
- object->content = g_strdup(content);
- return object;
-}
diff --git a/lasso/xml/id-wsf-2.0/dstref_app_data.h b/lasso/xml/id-wsf-2.0/dstref_app_data.h
index e8f59a03..e0201d95 100644
--- a/lasso/xml/id-wsf-2.0/dstref_app_data.h
+++ b/lasso/xml/id-wsf-2.0/dstref_app_data.h
@@ -61,7 +61,7 @@ struct _LassoIdWsf2DstRefAppData {
/*< public >*/
/* elements */
- char *content;
+ GList *any; /* of xmlNode */
};
@@ -72,7 +72,6 @@ struct _LassoIdWsf2DstRefAppDataClass {
LASSO_EXPORT GType lasso_idwsf2_dstref_app_data_get_type(void);
LASSO_EXPORT LassoIdWsf2DstRefAppData* lasso_idwsf2_dstref_app_data_new(void);
-LASSO_EXPORT LassoIdWsf2DstRefAppData* lasso_idwsf2_dstref_app_data_new_with_string(char *content);
#ifdef __cplusplus
diff --git a/lasso/xml/id-wsf-2.0/dstref_item_data.c b/lasso/xml/id-wsf-2.0/dstref_item_data.c
index cc25cee3..67a7b5c0 100644
--- a/lasso/xml/id-wsf-2.0/dstref_item_data.c
+++ b/lasso/xml/id-wsf-2.0/dstref_item_data.c
@@ -42,8 +42,6 @@
static struct XmlSnippet schema_snippets[] = {
- { "", SNIPPET_LIST_XMLNODES,
- G_STRUCT_OFFSET(LassoIdWsf2DstRefItemData, any) },
{ "itemIDRef", SNIPPET_ATTRIBUTE,
G_STRUCT_OFFSET(LassoIdWsf2DstRefItemData, itemIDRef) },
{ "notSorted", SNIPPET_ATTRIBUTE,
@@ -63,7 +61,6 @@ static LassoNodeClass *parent_class = NULL;
static void
instance_init(LassoIdWsf2DstRefItemData *node)
{
- node->any = NULL;
node->itemIDRef = NULL;
node->notSorted = NULL;
node->changeFormat = NULL;
@@ -99,7 +96,7 @@ lasso_idwsf2_dstref_item_data_get_type()
(GInstanceInitFunc) instance_init,
};
- this_type = g_type_register_static(LASSO_TYPE_NODE,
+ this_type = g_type_register_static(LASSO_TYPE_IDWSF2_DSTREF_APP_DATA,
"LassoIdWsf2DstRefItemData", &this_info, 0);
}
return this_type;
diff --git a/lasso/xml/id-wsf-2.0/dstref_item_data.h b/lasso/xml/id-wsf-2.0/dstref_item_data.h
index 42379f56..05fae956 100644
--- a/lasso/xml/id-wsf-2.0/dstref_item_data.h
+++ b/lasso/xml/id-wsf-2.0/dstref_item_data.h
@@ -30,6 +30,7 @@ extern "C" {
#endif /* __cplusplus */
#include <lasso/xml/xml.h>
+#include "dstref_app_data.h"
#define LASSO_TYPE_IDWSF2_DSTREF_ITEM_DATA (lasso_idwsf2_dstref_item_data_get_type())
#define LASSO_IDWSF2_DSTREF_ITEM_DATA(obj) \
@@ -57,11 +58,9 @@ typedef struct _LassoIdWsf2DstRefItemDataClass LassoIdWsf2DstRefItemDataClass;
struct _LassoIdWsf2DstRefItemData {
- LassoNode parent;
+ LassoIdWsf2DstRefAppData parent;
/*< public >*/
- /* elements */
- GList *any; /* of xmlNode */
/* attributes */
char *itemIDRef;
char *notSorted;
@@ -70,7 +69,7 @@ struct _LassoIdWsf2DstRefItemData {
struct _LassoIdWsf2DstRefItemDataClass {
- LassoNodeClass parent;
+ LassoIdWsf2DstRefAppDataClass parent;
};
LASSO_EXPORT GType lasso_idwsf2_dstref_item_data_get_type(void);
diff --git a/lasso/xml/id-wsf-2.0/dstref_modify.c b/lasso/xml/id-wsf-2.0/dstref_modify.c
index fd658fb2..4b57b3b0 100644
--- a/lasso/xml/id-wsf-2.0/dstref_modify.c
+++ b/lasso/xml/id-wsf-2.0/dstref_modify.c
@@ -57,6 +57,41 @@ static struct XmlSnippet schema_snippets[] = {
static LassoNodeClass *parent_class = NULL;
+static xmlNode*
+get_xmlNode(LassoNode *node, gboolean lasso_dump)
+{
+ xmlNode *xmlnode;
+
+ xmlnode = parent_class->get_xmlNode(node, lasso_dump);
+ xml_insure_namespace(xmlnode, NULL, TRUE,
+ LASSO_IDWSF2_DSTREF_MODIFY(node)->hrefServiceType,
+ LASSO_IDWSF2_DSTREF_MODIFY(node)->prefixServiceType);
+
+ return xmlnode;
+}
+
+static int
+init_from_xml(LassoNode *node, xmlNode *xmlnode)
+{
+ LassoIdWsf2DstRefModify *object = LASSO_IDWSF2_DSTREF_MODIFY(node);
+ int res;
+
+ res = parent_class->init_from_xml(node, xmlnode);
+ if (res != 0) {
+ return res;
+ }
+
+ object->hrefServiceType = g_strdup((char*)xmlnode->ns->href);
+ object->prefixServiceType = lasso_get_prefix_for_idwsf2_dst_service_href(
+ object->hrefServiceType);
+ if (object->prefixServiceType == NULL) {
+ /* XXX: what to do here ? */
+ }
+
+ return 0;
+}
+
+
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@@ -66,6 +101,8 @@ instance_init(LassoIdWsf2DstRefModify *node)
{
node->ModifyItem = NULL;
node->ResultQuery = NULL;
+ node->prefixServiceType = NULL;
+ node->hrefServiceType = NULL;
}
static void
@@ -74,6 +111,8 @@ class_init(LassoIdWsf2DstRefModifyClass *klass)
LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
parent_class = g_type_class_peek_parent(klass);
+ 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_set_ns(nclass, LASSO_IDWSF2_DSTREF_HREF, LASSO_IDWSF2_DSTREF_PREFIX);
diff --git a/lasso/xml/id-wsf-2.0/dstref_modify.h b/lasso/xml/id-wsf-2.0/dstref_modify.h
index 1f3049ed..994ca16e 100644
--- a/lasso/xml/id-wsf-2.0/dstref_modify.h
+++ b/lasso/xml/id-wsf-2.0/dstref_modify.h
@@ -64,6 +64,10 @@ struct _LassoIdWsf2DstRefModify {
/* elements */
GList *ModifyItem; /* of LassoIdWsf2DstRefModifyItem */
GList *ResultQuery; /* of LassoIdWsf2DstRefResultQuery */
+
+ /*< private >*/
+ char *prefixServiceType;
+ char *hrefServiceType;
};
diff --git a/lasso/xml/id-wsf-2.0/subsref_app_data.c b/lasso/xml/id-wsf-2.0/subsref_app_data.c
index 0e6af5bf..cbea2aa1 100644
--- a/lasso/xml/id-wsf-2.0/subsref_app_data.c
+++ b/lasso/xml/id-wsf-2.0/subsref_app_data.c
@@ -36,6 +36,8 @@
static struct XmlSnippet schema_snippets[] = {
+ { "", SNIPPET_LIST_XMLNODES,
+ G_STRUCT_OFFSET(LassoIdWsf2SubsRefAppData, any) },
{ "Subscription", SNIPPET_LIST_NODES,
G_STRUCT_OFFSET(LassoIdWsf2SubsRefAppData, Subscription) },
{NULL, 0, 0}
@@ -51,6 +53,7 @@ static LassoNodeClass *parent_class = NULL;
static void
instance_init(LassoIdWsf2SubsRefAppData *node)
{
+ node->any = NULL;
node->Subscription = NULL;
}
diff --git a/lasso/xml/id-wsf-2.0/subsref_app_data.h b/lasso/xml/id-wsf-2.0/subsref_app_data.h
index 06f0e8d6..3132e6a9 100644
--- a/lasso/xml/id-wsf-2.0/subsref_app_data.h
+++ b/lasso/xml/id-wsf-2.0/subsref_app_data.h
@@ -61,6 +61,7 @@ struct _LassoIdWsf2SubsRefAppData {
/*< public >*/
/* elements */
+ GList *any; /* of xmlNode */
GList *Subscription;
};
diff --git a/swig/id-wsf-2.0/dstref_app_data.i b/swig/id-wsf-2.0/dstref_app_data.i
index 806dc565..74cf4166 100644
--- a/swig/id-wsf-2.0/dstref_app_data.i
+++ b/swig/id-wsf-2.0/dstref_app_data.i
@@ -26,7 +26,6 @@
%rename(IdWsf2DstRefAppData) LassoIdWsf2DstRefAppData;
#endif
typedef struct {
- char *content;
} LassoIdWsf2DstRefAppData;
%extend LassoIdWsf2DstRefAppData {
diff --git a/swig/id-wsf-2.0/inheritance.h b/swig/id-wsf-2.0/inheritance.h
index 6bdce119..55ad99b5 100644
--- a/swig/id-wsf-2.0/inheritance.h
+++ b/swig/id-wsf-2.0/inheritance.h
@@ -111,7 +111,7 @@ SET_NODE_INFO(IdWsf2DstRefModifyItem, Node)
SET_NODE_INFO(IdWsf2DstRefAppData, Node)
SET_NODE_INFO(IdWsf2DstRefTestItem, IdWsf2DstTestItemBase)
SET_NODE_INFO(IdWsf2DstRefCreate, IdWsf2DstRequest)
-SET_NODE_INFO(IdWsf2DstRefItemData, Node)
+SET_NODE_INFO(IdWsf2DstRefItemData, IdWsf2DstRefAppData)
SET_NODE_INFO(IdWsf2DstRefData, IdWsf2DstRefItemData)
SET_NODE_INFO(IdWsf2DstRefModify, IdWsf2DstRequest)
SET_NODE_INFO(IdWsf2DstRefResultQuery, IdWsf2DstResultQueryBase)