summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2005-08-05 15:59:26 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2005-08-05 15:59:26 +0000
commit7d55bee3c1db0a5be473ad570bae61e1d24054fc (patch)
treeca0f944ae34f8f997668b45d9334cb059ad6c494
parente2aadc403979fcf5b36515bce79404ba591b78f5 (diff)
Added getXmlNode() method to LassoProfileService class.
-rw-r--r--lasso/id-wsf/profile_service.c30
-rw-r--r--lasso/id-wsf/profile_service.h4
-rw-r--r--swig/Lasso-wsf.i141
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