summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-09-11 15:51:46 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-09-11 15:51:46 +0000
commit7f2e83604fe563869f67218fd9b86376d2a26c13 (patch)
tree3f268eed528e9b6a4306a1556080e3ae898a92ec
parentec01a14f54ec6685c3ab8c5e166e2fcddfe3e8df (diff)
ID-WSF 2.0: add set_request/set_response method to Profile object
* lasso/id-wsf-2.0/profile.c: * lasso/id-wsf-2.0/profile.h: add two methods that set the response object and replace the content of the SOAP message with this object.
-rw-r--r--lasso/id-wsf-2.0/profile.c40
-rw-r--r--lasso/id-wsf-2.0/profile.h3
2 files changed, 43 insertions, 0 deletions
diff --git a/lasso/id-wsf-2.0/profile.c b/lasso/id-wsf-2.0/profile.c
index b8609bd4..62347317 100644
--- a/lasso/id-wsf-2.0/profile.c
+++ b/lasso/id-wsf-2.0/profile.c
@@ -220,7 +220,47 @@ LassoSoapEnvelope* lasso_idwsf2_profile_get_soap_envelope_response(LassoIdWsf2Pr
}
+/**
+ * lasso_idwsf2_profile_set_response:
+ * @idwsf2_profile: a #LassoIdWsf2Profile object
+ * @response: (transfer full) (allow-none): a #LassoNode to set as the new content of the SOAP
+ * response
+ *
+ * Replace the current content of the response with node.
+ *
+ */
+void
+lasso_idwsf2_profile_set_response(LassoIdWsf2Profile *idwsf2_profile, LassoNode *response)
+{
+ if (! LASSO_IDWSF2_PROFILE(idwsf2_profile) || !idwsf2_profile->soap_envelope_response ||
+ ! idwsf2_profile->soap_envelope_response->Body)
+ return;
+ lasso_assign_new_gobject(((LassoProfile*)idwsf2_profile)->response, response);
+ lasso_release_list_of_gobjects(idwsf2_profile->soap_envelope_response->Body->any);
+ lasso_list_add_gobject(idwsf2_profile->soap_envelope_response->Body->any, response);
+ return;
+}
+/**
+ * lasso_idwsf2_profile_set_request:
+ * @idwsf2_profile: a #LassoIdWsf2Profile object
+ * @request: (transfer full) (allow-none): a #LassoNode to set as the new content of the SOAP
+ * request.
+ *
+ * Replace the current content of the request with node.
+ *
+ */
+void
+lasso_idwsf2_profile_set_request(LassoIdWsf2Profile *idwsf2_profile, LassoNode *request)
+{
+ if (! LASSO_IDWSF2_PROFILE(idwsf2_profile) || !idwsf2_profile->soap_envelope_request ||
+ ! idwsf2_profile->soap_envelope_request->Body)
+ return;
+ lasso_assign_new_gobject(((LassoProfile*)idwsf2_profile)->request, request);
+ lasso_release_list_of_gobjects(idwsf2_profile->soap_envelope_request->Body->any);
+ lasso_list_add_gobject(idwsf2_profile->soap_envelope_request->Body->any, request);
+ return;
+}
/*****************************************************************************/
/* overridden parent class methods */
/*****************************************************************************/
diff --git a/lasso/id-wsf-2.0/profile.h b/lasso/id-wsf-2.0/profile.h
index e766d685..895360f1 100644
--- a/lasso/id-wsf-2.0/profile.h
+++ b/lasso/id-wsf-2.0/profile.h
@@ -86,6 +86,9 @@ LASSO_EXPORT LassoSoapEnvelope* lasso_idwsf2_profile_get_soap_envelope_request(L
LASSO_EXPORT LassoSoapEnvelope* lasso_idwsf2_profile_get_soap_envelope_response(LassoIdWsf2Profile *idwsf2_profile);
+LASSO_EXPORT void lasso_idwsf2_profile_set_response(LassoIdWsf2Profile *idwsf2_profile, LassoNode *response);
+
+LASSO_EXPORT void lasso_idwsf2_profile_set_request(LassoIdWsf2Profile *idwsf2_profile, LassoNode *request);
#ifdef __cplusplus
}