diff options
Diffstat (limited to 'lasso/id-wsf-2.0/data_service.h')
-rw-r--r-- | lasso/id-wsf-2.0/data_service.h | 114 |
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 } |