summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-wsf-2.0/data_service.c22
-rw-r--r--lasso/id-wsf-2.0/data_service.h2
-rw-r--r--lasso/id-wsf-2.0/discovery.c12
-rw-r--r--lasso/id-wsf-2.0/discovery.h2
-rw-r--r--lasso/xml/id-wsf-2.0/Makefile.am7
-rw-r--r--lasso/xml/id-wsf-2.0/dst_data_response_base.c2
-rw-r--r--swig/Lasso-wsf2.i131
7 files changed, 150 insertions, 28 deletions
diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c
index aa0fabe7..f1187c07 100644
--- a/lasso/id-wsf-2.0/data_service.c
+++ b/lasso/id-wsf-2.0/data_service.c
@@ -44,10 +44,15 @@ struct _LassoIdWsf2DataServicePrivate
gint
lasso_idwsf2_data_service_init_query(LassoIdWsf2DataService *service)
{
- LassoWsf2Profile *profile = LASSO_WSF2_PROFILE(service);
+ LassoWsf2Profile *profile;
LassoIdWsf2DstRefQuery *query;
LassoWsAddrEndpointReference *epr;
+ g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service),
+ LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
+
+ profile = LASSO_WSF2_PROFILE(service);
+
query = lasso_idwsf2_dstref_query_new();
profile->request = LASSO_NODE(query);
@@ -72,7 +77,7 @@ lasso_idwsf2_data_service_init_query(LassoIdWsf2DataService *service)
return 0;
}
-LassoIdWsf2DstRefQueryItem*
+gint
lasso_idwsf2_data_service_add_query_item(LassoIdWsf2DataService *service, const gchar *item_xpath,
const gchar *item_id)
{
@@ -80,12 +85,13 @@ lasso_idwsf2_data_service_add_query_item(LassoIdWsf2DataService *service, const
LassoIdWsf2DstRefQuery *query;
LassoIdWsf2DstRefQueryItem *item;
- g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service), NULL);
- g_return_val_if_fail(item_xpath != NULL, NULL);
- g_return_val_if_fail(item_id != NULL, NULL);
+ g_return_val_if_fail(LASSO_IS_IDWSF2_DATA_SERVICE(service),
+ LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
+ g_return_val_if_fail(item_xpath != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
+ g_return_val_if_fail(item_id != NULL, LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
if (! LASSO_IS_IDWSF2_DSTREF_QUERY(profile->request)) {
- return NULL;
+ return LASSO_PROFILE_ERROR_MISSING_REQUEST;
}
query = LASSO_IDWSF2_DSTREF_QUERY(profile->request);
@@ -93,7 +99,7 @@ lasso_idwsf2_data_service_add_query_item(LassoIdWsf2DataService *service, const
item = lasso_idwsf2_dstref_query_item_new_full(item_xpath, item_id);
query->QueryItem = g_list_append(query->QueryItem, item);
- return item;
+ return 0;
}
/*****************************************************************************/
@@ -188,7 +194,7 @@ lasso_idwsf2_data_service_get_type()
LassoIdWsf2DataService*
lasso_idwsf2_data_service_new()
{
- return g_object_new(LASSO_TYPE_IDWSF2_DATA_SERVICE, NULL);
+ return LASSO_IDWSF2_DATA_SERVICE(g_object_new(LASSO_TYPE_IDWSF2_DATA_SERVICE, NULL));
}
LassoIdWsf2DataService*
diff --git a/lasso/id-wsf-2.0/data_service.h b/lasso/id-wsf-2.0/data_service.h
index 3c43c8cc..89c04e57 100644
--- a/lasso/id-wsf-2.0/data_service.h
+++ b/lasso/id-wsf-2.0/data_service.h
@@ -81,7 +81,7 @@ LASSO_EXPORT LassoIdWsf2DataService* lasso_idwsf2_data_service_new_full(LassoSer
LASSO_EXPORT gint lasso_idwsf2_data_service_init_query(LassoIdWsf2DataService *service);
-LASSO_EXPORT LassoIdWsf2DstRefQueryItem* lasso_idwsf2_data_service_add_query_item(
+LASSO_EXPORT gint lasso_idwsf2_data_service_add_query_item(
LassoIdWsf2DataService *service, const gchar *item_xpath, const gchar *item_id);
#ifdef __cplusplus
diff --git a/lasso/id-wsf-2.0/discovery.c b/lasso/id-wsf-2.0/discovery.c
index d5c9f922..d7a703e4 100644
--- a/lasso/id-wsf-2.0/discovery.c
+++ b/lasso/id-wsf-2.0/discovery.c
@@ -585,7 +585,12 @@ lasso_idwsf2_discovery_process_query_response_msg(LassoIdWsf2Discovery *discover
return res;
}
-
+/* struct _LassoIdWsf2DataServicePrivate */
+/* { */
+/* gboolean dispose_has_run; */
+/* LassoWsAddrEndpointReference *epr; */
+/* GList *credentials; */
+/* }; */
/**
* lasso_idwsf2_discovery_get_service:
* @discovery: a #LassoIdWsf2Discovery
@@ -598,13 +603,14 @@ lasso_idwsf2_discovery_process_query_response_msg(LassoIdWsf2Discovery *discover
* error occured.
**/
LassoIdWsf2DataService*
-lasso_idwsf2_discovery_get_service(LassoIdWsf2Discovery *discovery, const char *service_type)
+lasso_idwsf2_discovery_get_service(LassoIdWsf2Discovery *discovery, const gchar *service_type)
{
LassoWsf2Profile *profile = LASSO_WSF2_PROFILE(discovery);
LassoIdWsf2DiscoQueryResponse *response;
LassoWsAddrEndpointReference *epr = NULL;
LassoIdWsf2DataService *service;
+ g_return_val_if_fail(LASSO_IS_IDWSF2_DISCOVERY(discovery), NULL);
g_return_val_if_fail(LASSO_IS_SERVER(profile->server), NULL);
response = LASSO_IDWSF2_DISCO_QUERY_RESPONSE(profile->response);
@@ -615,7 +621,7 @@ lasso_idwsf2_discovery_get_service(LassoIdWsf2Discovery *discovery, const char *
/* FIXME : foreach on the list instead */
if (response->EndpointReference != NULL && response->EndpointReference->data != NULL) {
- epr = response->EndpointReference->data;
+ epr = LASSO_WSA_ENDPOINT_REFERENCE(response->EndpointReference->data);
} else {
return NULL;
}
diff --git a/lasso/id-wsf-2.0/discovery.h b/lasso/id-wsf-2.0/discovery.h
index d9a847a4..d2561d8d 100644
--- a/lasso/id-wsf-2.0/discovery.h
+++ b/lasso/id-wsf-2.0/discovery.h
@@ -106,7 +106,7 @@ LASSO_EXPORT gint lasso_idwsf2_discovery_process_query_response_msg(LassoIdWsf2D
const gchar *message);
LASSO_EXPORT LassoIdWsf2DataService* lasso_idwsf2_discovery_get_service(
- LassoIdWsf2Discovery *discovery, const char *service_type);
+ LassoIdWsf2Discovery *discovery, const gchar *service_type);
#ifdef __cplusplus
}
diff --git a/lasso/xml/id-wsf-2.0/Makefile.am b/lasso/xml/id-wsf-2.0/Makefile.am
index a2e4af90..12490d1b 100644
--- a/lasso/xml/id-wsf-2.0/Makefile.am
+++ b/lasso/xml/id-wsf-2.0/Makefile.am
@@ -32,9 +32,6 @@ liblasso_xml_id_wsf2_la_SOURCES = \
dstref_query_response.c \
dstref_result_query.c \
dstref_sort.c \
- dst_data_response_base.c \
- dst_request.c \
- dst_result_query_base.c \
sec_token.c \
soap_binding_framework.c \
util_status.c \
@@ -45,7 +42,7 @@ liblassoinclude_HEADERS = \
disco_options.h \
disco_query.h \
disco_query_response.h \
- disco_requested_service.c \
+ disco_requested_service.h \
disco_security_context.h \
disco_service_context.h \
disco_svc_metadata.h \
@@ -67,5 +64,5 @@ liblassoinclude_HEADERS = \
sec_token.h \
soap_binding_framework.h \
util_status.h \
- util_response.c
+ util_response.h
diff --git a/lasso/xml/id-wsf-2.0/dst_data_response_base.c b/lasso/xml/id-wsf-2.0/dst_data_response_base.c
index 68ca993e..638361d1 100644
--- a/lasso/xml/id-wsf-2.0/dst_data_response_base.c
+++ b/lasso/xml/id-wsf-2.0/dst_data_response_base.c
@@ -90,7 +90,7 @@ lasso_idwsf2_dst_data_response_base_get_type()
(GInstanceInitFunc) instance_init,
};
- this_type = g_type_register_static(LASSO_TYPE_UTIL_RESPONSE,
+ this_type = g_type_register_static(LASSO_TYPE_IDWSF2_UTIL_RESPONSE,
"LassoIdWsf2DstDataResponseBase", &this_info, 0);
}
return this_type;
diff --git a/swig/Lasso-wsf2.i b/swig/Lasso-wsf2.i
index 9f613c8d..06a5c1cc 100644
--- a/swig/Lasso-wsf2.i
+++ b/swig/Lasso-wsf2.i
@@ -28,6 +28,7 @@
%{
#include <lasso/id-wsf-2.0/discovery.h>
+#include <lasso/id-wsf-2.0/data_service.h>
%}
@@ -48,10 +49,9 @@
/***********************************************************************
- * lasso:Discovery
+ * lasso:IdWsf2Discovery
***********************************************************************/
-
#ifndef SWIG_PHP_RENAMES
%rename(IdWsf2Discovery) LassoIdWsf2Discovery;
#endif
@@ -137,11 +137,11 @@ typedef struct {
END_THROW_ERROR()
THROW_ERROR()
- int processMetadataRegisterMsg(const gchar *message);
+ int processMetadataRegisterMsg(const char *message);
END_THROW_ERROR()
THROW_ERROR()
- int processMetadataRegisterResponseMsg(const gchar *message);
+ int processMetadataRegisterResponseMsg(const char *message);
END_THROW_ERROR()
THROW_ERROR()
@@ -149,7 +149,7 @@ typedef struct {
END_THROW_ERROR()
THROW_ERROR()
- int processMetadataAssociationAddMsg(const gchar *message);
+ int processMetadataAssociationAddMsg(const char *message);
END_THROW_ERROR()
THROW_ERROR()
@@ -157,7 +157,7 @@ typedef struct {
END_THROW_ERROR()
THROW_ERROR()
- int processMetadataAssociationAddResponseMsg(const gchar *message);
+ int processMetadataAssociationAddResponseMsg(const char *message);
END_THROW_ERROR()
THROW_ERROR()
@@ -165,16 +165,18 @@ typedef struct {
END_THROW_ERROR()
THROW_ERROR()
- int addRequestedServiceType(const gchar *service_type);
+ int addRequestedServiceType(const char *service_type);
END_THROW_ERROR()
THROW_ERROR()
- int processQueryMsg(const gchar *message);
+ int processQueryMsg(const char *message);
END_THROW_ERROR()
THROW_ERROR()
- int processQueryResponseMsg(const gchar *message);
+ int processQueryResponseMsg(const char *message);
END_THROW_ERROR()
+
+ LassoIdWsf2DataService* getService(const char *service_type = NULL);
}
%{
@@ -281,6 +283,117 @@ typedef struct {
#define LassoIdWsf2Discovery_processQueryMsg lasso_idwsf2_discovery_process_query_msg
#define LassoIdWsf2Discovery_processQueryResponseMsg lasso_idwsf2_discovery_process_query_response_msg
#define LassoIdWsf2Discovery_registerMetadata lasso_idwsf2_discovery_register_metadata
+#define LassoIdWsf2Discovery_getService lasso_idwsf2_discovery_get_service;
+
+%}
+
+
+/***********************************************************************
+ * lasso:IdWsf2DataService
+ ***********************************************************************/
+
+#ifndef SWIG_PHP_RENAMES
+%rename(IdWsf2DataService) LassoIdWsf2DataService;
+#endif
+typedef struct {
+} LassoIdWsf2DataService;
+%extend LassoIdWsf2DataService {
+ /* Attributes inherited from WsfProfile */
+
+ %immutable msgBody;
+ char *msgBody;
+
+ %immutable msgUrl;
+ char *msgUrl;
+
+ %newobject request_get;
+ LassoNode *request;
+
+ %newobject response_get;
+ LassoNode *response;
+
+ %newobject server_get;
+ LassoServer *server;
+
+ /* Constructor, Destructor & Static Methods */
+
+ LassoIdWsf2DataService(LassoServer *server);
+
+ ~LassoIdWsf2DataService();
+
+ /* Methods inherited from LassoNode */
+
+ %newobject dump;
+ char *dump();
+
+ /* Methods inherited from Wsf2Profile */
+
+ THROW_ERROR()
+ int buildRequestMsg();
+ END_THROW_ERROR()
+
+ THROW_ERROR()
+ int buildResponseMsg();
+ END_THROW_ERROR()
+
+ /* Methods */
+
+ THROW_ERROR()
+ int initQuery();
+ END_THROW_ERROR()
+
+ THROW_ERROR()
+ int addQueryItem(const char *item_xpath, const char *item_id);
+ END_THROW_ERROR()
+}
+
+%{
+
+/* Attributes inherited from WsfProfile implementations */
+
+/* msgBody */
+#define LassoIdWsf2DataService_get_msgBody(self) LASSO_WSF2_PROFILE(self)->msg_body
+#define LassoIdWsf2DataService_msgBody_get(self) LASSO_WSF2_PROFILE(self)->msg_body
+
+/* msgUrl */
+#define LassoIdWsf2DataService_get_msgUrl(self) LASSO_WSF2_PROFILE(self)->msg_url
+#define LassoIdWsf2DataService_msgUrl_get(self) LASSO_WSF2_PROFILE(self)->msg_url
+
+/* request */
+#define LassoIdWsf2DataService_get_request(self) get_node(LASSO_WSF2_PROFILE(self)->request)
+#define LassoIdWsf2DataService_request_get(self) get_node(LASSO_WSF2_PROFILE(self)->request)
+#define LassoIdWsf2DataService_set_request(self, value) set_node((gpointer *) &LASSO_WSF2_PROFILE(self)->request, (value))
+#define LassoIdWsf2DataService_request_set(self, value) set_node((gpointer *) &LASSO_WSF2_PROFILE(self)->request, (value))
+
+/* response */
+#define LassoIdWsf2DataService_get_response(self) get_node(LASSO_WSF2_PROFILE(self)->response)
+#define LassoIdWsf2DataService_response_get(self) get_node(LASSO_WSF2_PROFILE(self)->response)
+#define LassoIdWsf2DataService_set_response(self, value) set_node((gpointer *) &LASSO_WSF2_PROFILE(self)->response, (value))
+#define LassoIdWsf2DataService_response_set(self, value) set_node((gpointer *) &LASSO_WSF2_PROFILE(self)->response, (value))
+
+/* server */
+#define LassoIdWsf2DataService_get_server(self) get_node(LASSO_WSF2_PROFILE(self)->server)
+#define LassoIdWsf2DataService_server_get(self) get_node(LASSO_WSF2_PROFILE(self)->server)
+#define LassoIdWsf2DataService_set_server(self, value) set_node((gpointer *) &LASSO_WSF2_PROFILE(self)->server, (value))
+#define LassoIdWsf2DataService_server_set(self, value) set_node((gpointer *) &LASSO_WSF2_PROFILE(self)->server, (value))
+
+/* Constructors, destructors & static methods implementations */
+
+#define new_LassoIdWsf2DataService lasso_idwsf2_data_service_new
+#define delete_LassoIdWsf2DataService(self) lasso_node_destroy(LASSO_NODE(self))
+
+/* Implementations of methods inherited from LassoNode */
+
+#define LassoIdWsf2DataService_dump(self) lasso_node_dump(LASSO_NODE(self))
+
+/* Implementations of methods inherited from Wsf2Profile */
+
+#define LassoIdWsf2DataService_buildRequestMsg(self) lasso_wsf2_profile_build_request_msg(LASSO_WSF2_PROFILE(self))
+#define LassoIdWsf2DataService_buildResponseMsg(self) lasso_wsf2_profile_build_response_msg(LASSO_WSF2_PROFILE(self))
+
+/* Methods implementations */
+#define LassoIdWsf2DataService_initQuery lasso_idwsf2_data_service_init_query
+#define LassoIdWsf2DataService_addQueryItem lasso_idwsf2_data_service_add_query_item
%}