summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-12-10 17:11:26 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-12-10 17:11:26 +0000
commit5e6fc3c044e62b34c3e22d0a210ffb15acbf83eb (patch)
treef06b782533285858cf3846b55d5f7ef9ce19c72e
parent71bc47a8d824da40464b0b414d121281f22bb643 (diff)
downloadlasso-5e6fc3c044e62b34c3e22d0a210ffb15acbf83eb.tar.gz
lasso-5e6fc3c044e62b34c3e22d0a210ffb15acbf83eb.tar.xz
lasso-5e6fc3c044e62b34c3e22d0a210ffb15acbf83eb.zip
Added lasso_personal_profile_service_add_data() method : it allows to add response elements corresponding to the requested attribute values.
-rw-r--r--lasso/id-wsf/personal_profile_service.c42
-rw-r--r--lasso/id-wsf/personal_profile_service.h3
2 files changed, 28 insertions, 17 deletions
diff --git a/lasso/id-wsf/personal_profile_service.c b/lasso/id-wsf/personal_profile_service.c
index 49cd0656..3ccd521d 100644
--- a/lasso/id-wsf/personal_profile_service.c
+++ b/lasso/id-wsf/personal_profile_service.c
@@ -38,6 +38,26 @@ struct _LassoPersonalProfileServicePrivate
/* public methods */
/*****************************************************************************/
+gint
+lasso_personal_profile_service_add_data(LassoPersonalProfileService *pp, LassoNode *requested_data)
+{
+ LassoWsfProfile *profile;
+ LassoDstData *data;
+
+ g_return_val_if_fail(LASSO_IS_PERSONAL_PROFILE_SERVICE(pp) == TRUE, -1);
+ g_return_val_if_fail(LASSO_IS_NODE(requested_data) == TRUE, -1);
+
+ profile = LASSO_WSF_PROFILE(pp);
+
+ data = lasso_dst_data_new();
+ data->any = g_list_append(data->any, requested_data);
+
+ LASSO_DST_QUERY_RESPONSE(profile->response)->Data = \
+ g_list_append(LASSO_DST_QUERY_RESPONSE(profile->response)->Data, data);
+
+ return ;
+}
+
LassoDstQueryItem*
lasso_personal_profile_service_add_query_item(LassoPersonalProfileService *pp, const char *select)
{
@@ -65,6 +85,7 @@ lasso_personal_profile_service_init_query(LassoPersonalProfileService *pp,
LassoDstQueryItem *query_item;
LassoWsfProfile *profile;
LassoAbstractService *service;
+ GList *l_desc;
g_return_val_if_fail(LASSO_IS_PERSONAL_PROFILE_SERVICE(pp), NULL);
g_return_val_if_fail(LASSO_IS_DISCO_RESOURCE_OFFERING(resourceOffering), NULL);
@@ -91,6 +112,10 @@ lasso_personal_profile_service_init_query(LassoPersonalProfileService *pp,
/* set msg_url */
/* TODO : implement WSDLRef */
+ l_desc = resourceOffering->ServiceInstance->Description;
+ while (l_desc != NULL) {
+ l_desc = l_desc->next;
+ }
if (description->Endpoint) {
profile->msg_url = g_strdup(description->Endpoint);
}
@@ -99,23 +124,6 @@ lasso_personal_profile_service_init_query(LassoPersonalProfileService *pp,
}
gint
-lasso_personal_profile_service_add_data(LassoPersonalProfileService *pp, LassoDstData *data)
-{
- LassoWsfProfile *profile;
- LassoDstQueryResponse *response;
-
- g_return_val_if_fail(LASSO_IS_PERSONAL_PROFILE_SERVICE(pp), -1);
- g_return_val_if_fail(LASSO_IS_DST_DATA(data), -1);
-
- profile = LASSO_WSF_PROFILE(pp);
- response = LASSO_DST_QUERY_RESPONSE(profile->response);
-
- response->Data = g_list_append(response->Data, (gpointer)data);
-
- return 0;
-}
-
-gint
lasso_personal_profile_service_process_request_msg(LassoPersonalProfileService *pp,
const char *query_soap_msg)
{
diff --git a/lasso/id-wsf/personal_profile_service.h b/lasso/id-wsf/personal_profile_service.h
index 7bc3c60f..d5e05dc8 100644
--- a/lasso/id-wsf/personal_profile_service.h
+++ b/lasso/id-wsf/personal_profile_service.h
@@ -66,6 +66,9 @@ struct _LassoPersonalProfileServiceClass {
LASSO_EXPORT GType lasso_personal_profile_service_get_type(void);
+LASSO_EXPORT gint lasso_personal_profile_service_add_data(
+ LassoPersonalProfileService *pp, LassoNode *requested_data);
+
LASSO_EXPORT LassoDstQueryItem* lasso_personal_profile_service_add_query_item(
LassoPersonalProfileService *pp, const char *select);