summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-wsf/data_service.c20
-rw-r--r--lasso/id-wsf/discovery.c17
-rw-r--r--lasso/id-wsf/personal_profile_service.c20
-rw-r--r--lasso/id-wsf/personal_profile_service.h6
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);