summaryrefslogtreecommitdiffstats
path: root/lasso/id-wsf-2.0/data_service.h
diff options
context:
space:
mode:
Diffstat (limited to 'lasso/id-wsf-2.0/data_service.h')
-rw-r--r--lasso/id-wsf-2.0/data_service.h114
1 files changed, 66 insertions, 48 deletions
diff --git a/lasso/id-wsf-2.0/data_service.h b/lasso/id-wsf-2.0/data_service.h
index 5f4fd919..9a0f5861 100644
--- a/lasso/id-wsf-2.0/data_service.h
+++ b/lasso/id-wsf-2.0/data_service.h
@@ -33,6 +33,8 @@ extern "C" {
#include "profile.h"
#include "../xml/xml.h"
#include "../xml/id-wsf-2.0/dstref_query_item.h"
+#include "../xml/id-wsf-2.0/util_status.h"
+#include "../xml/id-wsf-2.0/dstref_data.h"
#include "../xml/ws/wsa_endpoint_reference.h"
@@ -55,12 +57,6 @@ typedef struct _LassoIdWsf2DataServicePrivate LassoIdWsf2DataServicePrivate;
struct _LassoIdWsf2DataService {
LassoIdWsf2Profile parent;
- /*< public >*/
- xmlNode *data;
- gchar *type;
- gchar *redirect_url;
- GList *query_items; /* of strings */
-
/*< private >*/
LassoIdWsf2DataServicePrivate *private_data;
};
@@ -69,54 +65,76 @@ struct _LassoIdWsf2DataServiceClass {
LassoIdWsf2ProfileClass parent;
};
+typedef enum {
+ LASSO_IDWSF2_DATA_SERVICE_REQUEST_TYPE_UNKNOWN,
+ LASSO_IDWSF2_DATA_SERVICE_REQUEST_TYPE_QUERY,
+ LASSO_IDWSF2_DATA_SERVICE_REQUEST_TYPE_MODIFY,
+ LASSO_IDWSF2_DATA_SERVICE_REQUEST_TYPE_CREATE,
+ LASSO_IDWSF2_DATA_SERVICE_REQUEST_TYPE_DELETE
+} LassoIdWsf2DataServiceRequestType;
+
LASSO_EXPORT GType lasso_idwsf2_data_service_get_type(void);
+/* Service initialization */
LASSO_EXPORT LassoIdWsf2DataService* lasso_idwsf2_data_service_new(LassoServer *server);
-LASSO_EXPORT LassoIdWsf2DataService* lasso_idwsf2_data_service_new_full(LassoServer *server,
- LassoWsAddrEndpointReference *epr);
-
+/* Request initialization */
LASSO_EXPORT gint lasso_idwsf2_data_service_init_query(LassoIdWsf2DataService *service);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_add_query_item(
- LassoIdWsf2DataService *service, const gchar *item_xpath, const gchar *item_id);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_process_query_msg(LassoIdWsf2DataService *service,
- const gchar *message);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_process_query_response_msg(
- LassoIdWsf2DataService *service, const gchar *message);
-
-LASSO_EXPORT GList* lasso_idwsf2_data_service_get_attribute_nodes(LassoIdWsf2DataService *service,
- const gchar *item_id);
-
-LASSO_EXPORT xmlNode* lasso_idwsf2_data_service_get_attribute_node(LassoIdWsf2DataService *service,
- const gchar *item_id);
-
-LASSO_EXPORT GList* lasso_idwsf2_data_service_get_attribute_strings(LassoIdWsf2DataService *service,
- const gchar *item_id);
-
-LASSO_EXPORT gchar* lasso_idwsf2_data_service_get_attribute_string(LassoIdWsf2DataService *service,
- const gchar *item_id);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_init_redirect_user_for_consent(
- LassoIdWsf2DataService *service, const gchar *redirect_url);
-
LASSO_EXPORT gint lasso_idwsf2_data_service_init_modify(LassoIdWsf2DataService *service);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_add_modify_item(
- LassoIdWsf2DataService *service, const gchar *item_xpath, const gchar *item_id,
- const gchar *new_data, gboolean overrideAllowed);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_process_modify_msg(LassoIdWsf2DataService *service,
- const gchar *message);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_parse_modify_items(LassoIdWsf2DataService *service);
-
-LASSO_EXPORT gint lasso_idwsf2_data_service_process_modify_response_msg(
- LassoIdWsf2DataService *service, const gchar *message);
+LASSO_EXPORT gint lasso_idwsf2_data_service_init_create(LassoIdWsf2DataService *service);
+LASSO_EXPORT gint lasso_idwsf2_data_service_init_delete(LassoIdWsf2DataService *service);
+LASSO_EXPORT gint lasso_idwsf2_data_service_set_service_type(LassoIdWsf2DataService *service,
+ const char *prefix, const char *service_type);
+LASSO_EXPORT const char* lasso_idwsf2_data_service_get_service_type(
+ LassoIdWsf2DataService *service);
+LASSO_EXPORT const char* lasso_idwsf2_data_service_get_service_type_prefix(
+ LassoIdWsf2DataService *service);
+
+/* Manipulate request */
+LASSO_EXPORT LassoIdWsf2DataServiceRequestType lasso_idwsf2_data_service_get_request_type(
+ LassoIdWsf2DataService *service);
+LASSO_EXPORT gint lasso_idwsf2_data_service_add_query_item(
+ LassoIdWsf2DataService *service, const gchar *item_query, const gchar *item_id);
+LASSO_EXPORT gint lasso_idwsf2_data_service_add_modify_item(LassoIdWsf2DataService *service,
+ const gchar *item_query, xmlNode *new_data, gboolean overrideAllowed,
+ const gchar *item_id);
+LASSO_EXPORT gint lasso_idwsf2_data_service_add_namespace(LassoIdWsf2DataService *data_service,
+ const char *prefix, const char *href);
+
+/* Produce request */
+LASSO_EXPORT gint lasso_idwsf2_data_service_build_request_msg(LassoIdWsf2DataService *service,
+ const char *security_mech_id);
+
+/* Handle request */
+LASSO_EXPORT gint lasso_idwsf2_data_service_process_request_msg(LassoIdWsf2DataService *service,
+ const char *msg);
+LASSO_EXPORT GList *lasso_idwsf2_data_service_get_item_ids(LassoIdWsf2DataService *data_service);
+LASSO_EXPORT GList *lasso_idwsf2_data_service_get_items(LassoIdWsf2DataService *data_service);
+LASSO_EXPORT LassoNode* lasso_idwsf2_data_service_get_item(LassoIdWsf2DataService *data_service,
+ const char *item_id);
+
+/* Reponse initialization */
+LASSO_EXPORT gint lasso_idwsf2_data_service_init_response(LassoIdWsf2DataService *service);
+LASSO_EXPORT gint lasso_idwsf2_data_service_set_status_code(LassoIdWsf2DataService *service,
+ const char *status_code, const char *status_code2);
+
+/* Manipulate response */
+LASSO_EXPORT gint lasso_idwsf2_data_service_set_query_item_result(
+ LassoIdWsf2DataService *data_service, const char *item_id, xmlNode *xml_data,
+ gboolean add);
+
+/* Produce response */
+LASSO_EXPORT gint lasso_idwsf2_data_service_build_response_msg(LassoIdWsf2DataService *service);
+
+/* Handle response */
+LASSO_EXPORT gint lasso_idwsf2_data_service_process_response_msg(
+ LassoIdWsf2DataService *service, const char *msg);
+LASSO_EXPORT LassoIdWsf2UtilStatus *lasso_idwsf2_data_service_get_response_status(
+ LassoIdWsf2DataService *service);
+LASSO_EXPORT LassoIdWsf2DstRefData* lasso_idwsf2_data_service_get_query_item_result(
+ LassoIdWsf2DataService *service, const char *item_id);
+LASSO_EXPORT GList* lasso_idwsf2_data_service_get_query_item_results(
+ LassoIdWsf2DataService *service);
#ifdef __cplusplus
}