diff options
| -rw-r--r-- | lasso/id-wsf/data_service.c | 20 | ||||
| -rw-r--r-- | lasso/id-wsf/discovery.c | 17 | ||||
| -rw-r--r-- | lasso/id-wsf/personal_profile_service.c | 20 | ||||
| -rw-r--r-- | lasso/id-wsf/personal_profile_service.h | 6 |
4 files changed, 41 insertions, 22 deletions
diff --git a/lasso/id-wsf/data_service.c b/lasso/id-wsf/data_service.c index cbcad496..876abdd5 100644 --- a/lasso/id-wsf/data_service.c +++ b/lasso/id-wsf/data_service.c @@ -766,13 +766,15 @@ lasso_data_service_process_modify_response_msg(LassoDataService *service, const static LassoNodeClass *parent_class = NULL; void -lasso_data_service_set_offering(LassoDataService *service, - LassoDiscoResourceOffering *offering) +lasso_data_service_set_offering(LassoDataService *service, LassoDiscoResourceOffering *offering) { service->private_data->offering = g_object_ref(offering); + service->resource_id = g_object_ref(offering->ResourceID); + service->encrypted_resource_id = g_object_ref(offering->EncryptedResourceID); + service->provider_id = g_strdup(offering->ServiceInstance->ProviderID); + service->abstract_description = g_strdup(offering->Abstract); } - /*****************************************************************************/ /* overrided parent class methods */ /*****************************************************************************/ @@ -865,7 +867,7 @@ lasso_data_service_new(LassoServer *server) { LassoDataService *service; - g_return_val_if_fail(LASSO_IS_SERVER(server) == TRUE, NULL); + g_return_val_if_fail(LASSO_IS_SERVER(server), NULL); service = g_object_new(LASSO_TYPE_PROFILE_SERVICE, NULL); LASSO_WSF_PROFILE(service)->server = g_object_ref(server); @@ -876,13 +878,15 @@ lasso_data_service_new(LassoServer *server) LassoDataService* lasso_data_service_new_full(LassoServer *server, LassoDiscoResourceOffering *offering) { - LassoDataService *service; + LassoDataService *service = lasso_data_service_new(server); - service = lasso_data_service_new(server); - if (service == NULL) + g_return_val_if_fail(LASSO_IS_DISCO_RESOURCE_OFFERING(offering), NULL); + + if (service == NULL) { return NULL; + } - service->private_data->offering = g_object_ref(offering); + lasso_data_service_set_offering(LASSO_DATA_SERVICE(service), offering); return service; } diff --git a/lasso/id-wsf/discovery.c b/lasso/id-wsf/discovery.c index 81f519c3..41ae135a 100644 --- a/lasso/id-wsf/discovery.c +++ b/lasso/id-wsf/discovery.c @@ -969,7 +969,7 @@ lasso_discovery_get_service(LassoDiscovery *discovery, const char *service_type) } if (strcmp(offering->ServiceInstance->ServiceType, LASSO_PP_HREF) == 0) { - service = LASSO_DATA_SERVICE(lasso_personal_profile_service_new( + service = LASSO_DATA_SERVICE(lasso_personal_profile_service_new_full( LASSO_WSF_PROFILE(discovery)->server, offering)); } else { service = lasso_data_service_new_full(LASSO_WSF_PROFILE(discovery)->server, @@ -1011,18 +1011,15 @@ lasso_discovery_get_services(LassoDiscovery *discovery) while (iter) { offering = iter->data; iter = g_list_next(iter); - if (offering->ServiceInstance == NULL) + if (offering->ServiceInstance == NULL) { continue; + } if (strcmp(offering->ServiceInstance->ServiceType, LASSO_PP_HREF) == 0) { - service = LASSO_DATA_SERVICE(lasso_personal_profile_service_new( - LASSO_WSF_PROFILE(discovery)->server, offering)); - service->provider_id = g_strdup(offering->ServiceInstance->ProviderID); - service->abstract_description = g_strdup(offering->Abstract); + service = LASSO_DATA_SERVICE(lasso_personal_profile_service_new_full( + LASSO_WSF_PROFILE(discovery)->server, offering)); } else { - service = lasso_data_service_new_full(LASSO_WSF_PROFILE(discovery)->server, - offering); - service->provider_id = g_strdup(offering->ServiceInstance->ProviderID); - service->abstract_description = g_strdup(offering->Abstract); + service = lasso_data_service_new_full( + LASSO_WSF_PROFILE(discovery)->server, offering); } services = g_list_append(services, service); } diff --git a/lasso/id-wsf/personal_profile_service.c b/lasso/id-wsf/personal_profile_service.c index 71e12d0a..35ee1f6c 100644 --- a/lasso/id-wsf/personal_profile_service.c +++ b/lasso/id-wsf/personal_profile_service.c @@ -115,15 +115,31 @@ lasso_personal_profile_service_get_type() } LassoPersonalProfileService* -lasso_personal_profile_service_new(LassoServer *server, LassoDiscoResourceOffering *offering) +lasso_personal_profile_service_new(LassoServer *server) { LassoPersonalProfileService *service; - g_return_val_if_fail(LASSO_IS_SERVER(server) == TRUE, NULL); + g_return_val_if_fail(LASSO_IS_SERVER(server), NULL); service = g_object_new(LASSO_TYPE_PERSONAL_PROFILE_SERVICE, NULL); LASSO_WSF_PROFILE(service)->server = g_object_ref(server); + + return service; +} + +LassoPersonalProfileService* +lasso_personal_profile_service_new_full(LassoServer *server, LassoDiscoResourceOffering *offering) +{ + LassoPersonalProfileService *service = lasso_personal_profile_service_new(server); + + g_return_val_if_fail(LASSO_IS_DISCO_RESOURCE_OFFERING(offering), NULL); + + if (service == NULL) { + return NULL; + } + lasso_data_service_set_offering(LASSO_DATA_SERVICE(service), offering); return service; } + diff --git a/lasso/id-wsf/personal_profile_service.h b/lasso/id-wsf/personal_profile_service.h index 5021a9ba..b408c204 100644 --- a/lasso/id-wsf/personal_profile_service.h +++ b/lasso/id-wsf/personal_profile_service.h @@ -65,8 +65,10 @@ struct _LassoPersonalProfileServiceClass { LASSO_EXPORT GType lasso_personal_profile_service_get_type(void); -LASSO_EXPORT LassoPersonalProfileService* lasso_personal_profile_service_new( - LassoServer *server, LassoDiscoResourceOffering *offering); +LASSO_EXPORT LassoPersonalProfileService* lasso_personal_profile_service_new(LassoServer *server); + +LASSO_EXPORT LassoPersonalProfileService* lasso_personal_profile_service_new_full( + LassoServer *server, LassoDiscoResourceOffering *offering); LASSO_EXPORT gchar* lasso_personal_profile_service_get_email(LassoPersonalProfileService *service); |
