diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-12-10 17:11:26 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-12-10 17:11:26 +0000 |
| commit | 5e6fc3c044e62b34c3e22d0a210ffb15acbf83eb (patch) | |
| tree | f06b782533285858cf3846b55d5f7ef9ce19c72e | |
| parent | 71bc47a8d824da40464b0b414d121281f22bb643 (diff) | |
| download | lasso-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.c | 42 | ||||
| -rw-r--r-- | lasso/id-wsf/personal_profile_service.h | 3 |
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); |
