diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2005-08-05 15:59:26 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2005-08-05 15:59:26 +0000 |
| commit | 7d55bee3c1db0a5be473ad570bae61e1d24054fc (patch) | |
| tree | ca0f944ae34f8f997668b45d9334cb059ad6c494 | |
| parent | e2aadc403979fcf5b36515bce79404ba591b78f5 (diff) | |
Added getXmlNode() method to LassoProfileService class.
| -rw-r--r-- | lasso/id-wsf/profile_service.c | 30 | ||||
| -rw-r--r-- | lasso/id-wsf/profile_service.h | 4 | ||||
| -rw-r--r-- | swig/Lasso-wsf.i | 141 |
3 files changed, 110 insertions, 65 deletions
diff --git a/lasso/id-wsf/profile_service.c b/lasso/id-wsf/profile_service.c index e11560df..7496031c 100644 --- a/lasso/id-wsf/profile_service.c +++ b/lasso/id-wsf/profile_service.c @@ -199,6 +199,36 @@ lasso_profile_service_init_query(LassoProfileService *service, return query_item; } +xmlNode* +lasso_profile_service_get_xmlNode(LassoProfileService *service, + gchar *itemId) +{ + LassoDstQueryResponse *response; + GList *datas; + LassoDstData *data; + xmlNode *node; + + g_return_val_if_fail(LASSO_IS_PROFILE_SERVICE(service) == TRUE, NULL); + + response = LASSO_DST_QUERY_RESPONSE(LASSO_WSF_PROFILE(service)->response); + datas = response->Data; + if (itemId != NULL) { + while (datas != NULL) { + if (strcmp(data->itemIDRef, itemId) == 0) { + break; + } + datas = datas->next; + } + } + if (datas == NULL) { + return NULL; + } + data = LASSO_DST_DATA(datas->data); + node = (xmlNode *) data->any->data; + + return xmlCopyNode(node, 1); +} + gint lasso_profile_service_process_modify_msg(LassoProfileService *service, const gchar *prefix, /* FIXME : must be get from message */ diff --git a/lasso/id-wsf/profile_service.h b/lasso/id-wsf/profile_service.h index c247fa0e..e662c219 100644 --- a/lasso/id-wsf/profile_service.h +++ b/lasso/id-wsf/profile_service.h @@ -37,6 +37,7 @@ extern "C" { #include <lasso/xml/dst_modification.h> #include <lasso/xml/dst_query_item.h> #include <lasso/xml/disco_resource_offering.h> +#include <lasso/xml/xml.h> #define LASSO_TYPE_PROFILE_SERVICE (lasso_profile_service_get_type()) #define LASSO_PROFILE_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ @@ -95,6 +96,9 @@ LASSO_EXPORT LassoDstQueryItem* lasso_profile_service_init_query(LassoProfileSer LassoDiscoDescription *desc, const gchar *select); +LASSO_EXPORT xmlNode* lasso_profile_service_get_xmlNode(LassoProfileService *service, + gchar *itemId); + LASSO_EXPORT gint lasso_profile_service_process_modify_msg(LassoProfileService *service, const gchar *prefix, const gchar *href, diff --git a/swig/Lasso-wsf.i b/swig/Lasso-wsf.i index 654792ec..c864e4ed 100644 --- a/swig/Lasso-wsf.i +++ b/swig/Lasso-wsf.i @@ -3701,6 +3701,71 @@ typedef struct { %} + +/*********************************************************************** + * lasso:xmlNode + ***********************************************************************/ + +#ifndef SWIGPHP4 +%rename(XmlNode) LassoXmlNode; +#endif +%{ +typedef xmlNode LassoXmlNode; +%} +typedef struct { + %extend { + /* Constructor, Destructor & Static Methods */ + + LassoXmlNode(char *name); + + /* Methods */ + void addChild(LassoXmlNode *node) { + xmlAddChild((xmlNode *) self, (xmlNode *) node); + } + + void addProperty(char *name, char *value) { + xmlSetProp((xmlNode *) self, (xmlChar *) name, (xmlChar *) value); + } + + %newobject dump; + char *dump() { + char *ret; + xmlOutputBuffer *buf; + + buf = xmlAllocOutputBuffer(NULL); + if (buf == NULL) { + return NULL; + } + xmlNodeDumpOutput(buf, NULL, (xmlNode *) self, 0, 1, NULL); + xmlOutputBufferFlush(buf); + if (buf->conv != NULL) { + ret = (char *) g_strdup((gchar *) buf->conv->content); + } else { + ret = (char *) g_strdup((gchar *) buf->buffer->content); + } + xmlOutputBufferClose(buf); + + return ret; + } + + void setContent(char *content) { + xmlNodeSetContent((xmlNode *) self, (xmlChar *) content); + } + + } +} LassoXmlNode; + +%{ + +/* Constructors, destructors & static methods implementations */ + +LassoXmlNode* new_LassoXmlNode(char *name) { + return (LassoXmlNode *) xmlNewNode(NULL, (xmlChar *) name); +} + +%} + + /*********************************************************************** * lasso:PersonalProfileService ***********************************************************************/ @@ -3757,6 +3822,8 @@ typedef struct { char *select); gchar* getEmail(); + + LassoXmlNode *getXmlNode(char *itemId = NULL); THROW_ERROR int processModifyMsg(char *soap_msg); @@ -3827,6 +3894,12 @@ typedef struct { #define LassoPersonalProfileService_buildRequestMsg(self) lasso_wsf_profile_build_soap_request_msg(LASSO_WSF_PROFILE(self)) #define LassoPersonalProfileService_buildResponseMsg(self) lasso_wsf_profile_build_soap_response_msg(LASSO_WSF_PROFILE(self)) +/* Implementations of methods inherited from PersonalProfile */ +LassoXmlNode* LassoPersonalProfileService_getXmlNode(LassoPersonalProfileService *self, char *itemId) +{ + return lasso_profile_service_get_xmlNode(LASSO_PROFILE_SERVICE(self), itemId); +} + /* Methods implementations */ #define LassoPersonalProfileService_initModify lasso_personal_profile_service_init_modify #define LassoPersonalProfileService_initQuery lasso_personal_profile_service_init_query @@ -3841,71 +3914,6 @@ typedef struct { %} - -/*********************************************************************** - * lasso:xmlNode - ***********************************************************************/ - -#ifndef SWIGPHP4 -%rename(XmlNode) LassoXmlNode; -#endif -%{ -typedef xmlNode LassoXmlNode; -%} -typedef struct { - %extend { - /* Constructor, Destructor & Static Methods */ - - LassoXmlNode(char *name); - - /* Methods */ - void addChild(LassoXmlNode *node) { - xmlAddChild((xmlNode *) self, (xmlNode *) node); - } - - void addProperty(char *name, char *value) { - xmlSetProp((xmlNode *) self, (xmlChar *) name, (xmlChar *) value); - } - - %newobject dump; - char *dump() { - char *ret; - xmlOutputBuffer *buf; - - buf = xmlAllocOutputBuffer(NULL); - if (buf == NULL) { - return NULL; - } - xmlNodeDumpOutput(buf, NULL, (xmlNode *) self, 0, 1, NULL); - xmlOutputBufferFlush(buf); - if (buf->conv != NULL) { - ret = (char *) g_strdup((gchar *) buf->conv->content); - } else { - ret = (char *) g_strdup((gchar *) buf->buffer->content); - } - xmlOutputBufferClose(buf); - - return ret; - } - - void setContent(char *content) { - xmlNodeSetContent((xmlNode *) self, (xmlChar *) content); - } - - } -} LassoXmlNode; - -%{ - -/* Constructors, destructors & static methods implementations */ - -LassoXmlNode* new_LassoXmlNode(char *name) { - return (LassoXmlNode *) xmlNewNode(NULL, (xmlChar *) name); -} - -%} - - /*********************************************************************** * lasso:ProfileService @@ -3975,6 +3983,8 @@ typedef struct { LassoDiscoResourceOffering *resourceOffering, LassoDiscoDescription *description, char *select); + + LassoXmlNode *getXmlNode(char *itemId = NULL); THROW_ERROR int processModifyMsg(char *prefix, char *href, char *soap_msg); @@ -4056,6 +4066,7 @@ typedef struct { #define LassoProfileService_addQueryItem lasso_profile_service_add_query_item #define LassoProfileService_initModify lasso_profile_service_init_modify #define LassoProfileService_initQuery lasso_profile_service_init_query +#define LassoProfileService_getXmlNode lasso_profile_service_get_xmlNode #define LassoProfileService_processModifyMsg lasso_profile_service_process_modify_msg #define LassoProfileService_processModifyResponseMsg lasso_profile_service_process_modify_response_msg #define LassoProfileService_processQueryMsg lasso_profile_service_process_query_msg |
