Lasso Reference Manual | ||||
---|---|---|---|---|
Top | Description |
Synopsis
struct LassoDataService; LassoDataService * lasso_data_service_new (LassoServer *server
); LassoDataService * lasso_data_service_new_full (LassoServer *server
,LassoDiscoResourceOffering *offering
); lasso_error_t lasso_data_service_init_query (LassoDataService *service
,const char *select
,const char *item_id
,const char *security_mech_id
); lasso_error_t lasso_data_service_add_query_item (LassoDataService *service
,const char *select
,const char *item_id
); lasso_error_t lasso_data_service_build_modify_response_msg (LassoDataService *service
); lasso_error_t lasso_data_service_build_response_msg (LassoDataService *service
); lasso_error_t lasso_data_service_process_query_response_msg (LassoDataService *service
,const char *message
); lasso_error_t lasso_data_service_get_answer (LassoDataService *service
,xmlNode **output
); lasso_error_t lasso_data_service_get_answers (LassoDataService *service
,GList **output
); lasso_error_t lasso_data_service_get_answers_by_select (LassoDataService *service
,const char *select
,GList **output
); lasso_error_t lasso_data_service_get_answers_by_item_id (LassoDataService *service
,const char *item_id
,GList **output
); lasso_error_t lasso_data_service_init_modify (LassoDataService *service
,const char *security_mech_id
); lasso_error_t lasso_data_service_add_modification (LassoDataService *service
,const gchar *select
,xmlNode *xmlData
,gboolean overrideAllowed
,time_t *notChangedSince
,LassoDstModification **output
); lasso_error_t lasso_data_service_process_modify_response_msg (LassoDataService *service
,const gchar *soap_msg
); lasso_error_t lasso_data_service_process_request_msg (LassoDataService *service
,const char *message
,const char *security_mech_id
); lasso_error_t lasso_data_service_validate_request (LassoDataService *service
); lasso_error_t lasso_data_service_build_query_response_msg (LassoDataService *service
); lasso_error_t lasso_data_service_get_query_item (LassoDataService *service
,const char *select
,const char *item_id
,LassoDstQueryItem **output
); void lasso_data_service_set_resource_data (LassoDataService *service
,const xmlNode *resource_data
); xmlNode * lasso_data_service_get_resource_data (LassoDataService *service
);
Description
DataService allows Attribute Consumers (WSC) to request an Attribute Provider (WSP) to get or modify data about users with their consent.
Following up on LassoDiscovery first example, it created a service
object,
this is a LassoDataService instance. This example continues from that step
and retrieves the name of the principal:
char *soap_answer; // SOAP answer from data service xmlNode *principal_name; // libxml2 xmlNode with the principal name service = lasso_discovery_get_service(discovery); lasso_data_service_init_query(service, "/pp:PP/pp:InformalName", NULL); lasso_data_service_build_request_msg(service); // service must perform SOAP call to LASSO_WSF_PROFILE(service)->msg_url // the SOAP message is LASSO_WSF_PROFILE(service)->msg_body. The answer // is stored in char* soap_answer; lasso_data_service_process_query_response_msg(service, soap_answer); principal_name = lasso_data_service_get_answer(service, "/pp:PP/pp:InformalName"); // app should probably then use xmlNodeGetContent libxml2 function to get // access to node content.
Details
lasso_data_service_new ()
LassoDataService * lasso_data_service_new (LassoServer *server
);
Creates a new LassoDataService.
|
the LassoServer |
Returns : |
a newly created LassoDataService object; or NULL if an error occured. |
lasso_data_service_new_full ()
LassoDataService * lasso_data_service_new_full (LassoServer *server
,LassoDiscoResourceOffering *offering
);
Creates a new LassoDataService.
|
the LassoServer |
|
the LassoDiscoResourceOffering |
Returns : |
a newly created LassoDataService object; or NULL if an error occured. |
lasso_data_service_init_query ()
lasso_error_t lasso_data_service_init_query (LassoDataService *service
,const char *select
,const char *item_id
,const char *security_mech_id
);
Initializes a new dst:Query request, asking for element select
(with optional itemID set to
item_id
). item_id
may be NULL only if the query won't contain other query items. You must
follow this constraint, it will not be checked.
If both select
and item_id
are NULL, only a skeleton request is created and calls to
lasso_data_service_add_query_item()
will need to be done.
|
a LassoDataService |
|
resource selection string (typically a XPath query) |
|
query item identifier (optional). [allow-none] |
|
a security mechanism id. [allow-none] |
Returns : |
0 on success; or a negative value otherwise. |
lasso_data_service_add_query_item ()
lasso_error_t lasso_data_service_add_query_item (LassoDataService *service
,const char *select
,const char *item_id
);
Adds a dst:QueryItem to the current dst:Query request. If there are already query item in the
request and itemId
is NULL, the call will fail.
|
a LassoDataService |
|
resource selection string (typically a XPath query) |
|
query item identifier |
Returns : |
0 if sucessfull, an error code otherwise. |
lasso_data_service_build_modify_response_msg ()
lasso_error_t lasso_data_service_build_modify_response_msg
(LassoDataService *service
);
lasso_data_service_build_response_msg ()
lasso_error_t lasso_data_service_build_response_msg
(LassoDataService *service
);
Builds a dst:QueryResponse message.
|
a LassoDataService |
Returns : |
0 on success; or a negative value otherwise. |
lasso_data_service_process_query_response_msg ()
lasso_error_t lasso_data_service_process_query_response_msg (LassoDataService *service
,const char *message
);
Processes a dst:Query message. Rebuilds a request object from the message and extracts ResourcedID.
|
a LassoDataService |
|
the dst query response message |
Returns : |
0 on success; or a negative value otherwise. |
lasso_data_service_get_answer ()
lasso_error_t lasso_data_service_get_answer (LassoDataService *service
,xmlNode **output
);
Get the first xmlNode of the first Data element of the QueryResponse message.
|
a LassoDataService object. |
|
an xmlNode** pointer where to put the xmlNode* of the result. [out] |
Returns : |
0 if sucessful, an error code otherwise. |
lasso_data_service_get_answers ()
lasso_error_t lasso_data_service_get_answers (LassoDataService *service
,GList **output
);
Get all the xmlNode content of the first Data element of the QueryResponse message.
|
a LassoDataService object. |
|
an xmlNode** pointer where to put the xmlNode* of the result. [transfer full][allow-none][element-type xmlNode] |
Returns : |
0 if sucessful, an error code otherwise. |
lasso_data_service_get_answers_by_select ()
lasso_error_t lasso_data_service_get_answers_by_select (LassoDataService *service
,const char *select
,GList **output
);
Returns the answers for the specified select
request.
|
a LassoDataService |
|
resource selection string (typically a XPath query) |
|
a GList** to store a GList* containing the result, it must be freed. [allow-none][element-type xmlNode] |
Returns : |
0 if successful, an error code otheriwse |
lasso_data_service_get_answers_by_item_id ()
lasso_error_t lasso_data_service_get_answers_by_item_id (LassoDataService *service
,const char *item_id
,GList **output
);
Returns the answers for the specified itemID
request.
|
a LassoDataService |
|
query item identifier |
|
a GList** to store a GList* containing the result, it must be freed. [allow-none][element-type xmlNode] |
Returns : |
0 if successful, an error code otherwise |
lasso_data_service_init_modify ()
lasso_error_t lasso_data_service_init_modify (LassoDataService *service
,const char *security_mech_id
);
Initialize a Data Service Template Modify request using a command to select some data, and an XML fragment to replace the selected data.
|
a LassoDataService object |
|
a security mechanism id. [allow-none] |
Returns : |
0 if successful, an error code otherwise. |
lasso_data_service_add_modification ()
lasso_error_t lasso_data_service_add_modification (LassoDataService *service
,const gchar *select
,xmlNode *xmlData
,gboolean overrideAllowed
,time_t *notChangedSince
,LassoDstModification **output
);
Add a new modification to the current modify request. If overrideAllowed is FALSE, xmlData must absolutely be present. Refer to the ID-WSF DST 1.0 specification for the semantic of the created message.
|
a LassoDataService object |
|
a selector string |
|
optional NewData content. [allow-none] |
|
whether to permit delete or replace of existings. [allow-none][default FALSE] |
|
if not NULL, give the time (as a local time_t value) of the last known modification to the datas, it is used to permit secure concurrent accesses. [allow-none] |
|
a LassoDstModification** pointer where to put the LassoDstModification of the result. [out] |
Returns : |
0 if successful and the new modification object in *output, an error code otherwise. |
lasso_data_service_process_modify_response_msg ()
lasso_error_t lasso_data_service_process_modify_response_msg (LassoDataService *service
,const gchar *soap_msg
);
Process a modify response message.
|
a LassoDataService |
|
the SOAP message |
Returns : |
0 on success; or a negative value otherwise. |
lasso_data_service_process_request_msg ()
lasso_error_t lasso_data_service_process_request_msg (LassoDataService *service
,const char *message
,const char *security_mech_id
);
|
a LassoDataService object |
|
a C string containing the SOAP request |
|
a C string describing the required security mechanism or NULL |
Returns : |
0 if successfull, an error code otherwise. |
lasso_data_service_validate_request ()
lasso_error_t lasso_data_service_validate_request (LassoDataService *service
);
lasso_data_service_build_query_response_msg ()
lasso_error_t lasso_data_service_build_query_response_msg
(LassoDataService *service
);
lasso_data_service_get_query_item ()
lasso_error_t lasso_data_service_get_query_item (LassoDataService *service
,const char *select
,const char *item_id
,LassoDstQueryItem **output
);
Look up the first query item in the current request matching the given criteria, select
or
item_id
. At least one of the criteria must be present for the call to succeed.
|
a LassoDataService |
|
the select string of the query item to found |
|
the item id of the query item to found |
|
a LassoDstQueryItem handle to store the result object, its reference count is not incremented. [transfer none] |
Returns : |
0 if successful, an error code otherwise. |
lasso_data_service_set_resource_data ()
void lasso_data_service_set_resource_data (LassoDataService *service
,const xmlNode *resource_data
);
Set the resource data content.
|
a LassoDataService object |
|
an xmlnode representing the resource data of the service. [allow-none] |
lasso_data_service_get_resource_data ()
xmlNode * lasso_data_service_get_resource_data
(LassoDataService *service
);
Return the XML resrouce data in this data service.
|
a LassoDataService object |
Returns : |
a newly allocated xmlNode or NULL. [transfer full][allow-none] |