diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2007-07-30 09:24:37 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2007-07-30 09:24:37 +0000 |
| commit | 9163f6f4bbe5115cd46a69e14a79d426a0ef40bf (patch) | |
| tree | 2b9aced91d2f6fa70ddd9f6cb6cc29210933a3e5 | |
| parent | 7d712234f926c2fdcfae61be080da5c34ab91dbb (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.c | 10 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/disco_abstract.c | 2 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/disco_abstract.h | 2 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/disco_provider_id.c | 2 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/disco_provider_id.h | 2 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/disco_service_type.c | 2 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/disco_service_type.h | 2 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/dstref_app_data.c | 25 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/dstref_app_data.h | 3 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/dstref_item_data.c | 5 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/dstref_item_data.h | 7 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/dstref_modify.c | 39 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/dstref_modify.h | 4 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/subsref_app_data.c | 3 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/subsref_app_data.h | 1 | ||||
| -rw-r--r-- | swig/id-wsf-2.0/dstref_app_data.i | 1 | ||||
| -rw-r--r-- | swig/id-wsf-2.0/inheritance.h | 2 |
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) |
