summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-01-04 09:15:09 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-01-04 09:15:09 +0000
commitf4aefd71f8d86e41cc9a60953b6c54dd0d7d291f (patch)
tree2aa9d38b85d75dbd65f9af7959dbdb2ce7651711
parent72ba41fa7fb70688fbc016114587553f80ea7efb (diff)
ID-WSF 2.0 XML: in util_response.{c,h}, add helper functions to idwsf2_util_status
-rw-r--r--lasso/xml/id-wsf-2.0/util_response.c55
-rw-r--r--lasso/xml/id-wsf-2.0/util_response.h4
2 files changed, 59 insertions, 0 deletions
diff --git a/lasso/xml/id-wsf-2.0/util_response.c b/lasso/xml/id-wsf-2.0/util_response.c
index bf5a7a79..bea09585 100644
--- a/lasso/xml/id-wsf-2.0/util_response.c
+++ b/lasso/xml/id-wsf-2.0/util_response.c
@@ -24,6 +24,7 @@
#include "../private.h"
#include "util_response.h"
+#include "../../utils.h"
/**
* SECTION:util_response
@@ -126,3 +127,57 @@ lasso_idwsf2_util_response_new()
{
return g_object_new(LASSO_TYPE_IDWSF2_UTIL_RESPONSE, NULL);
}
+
+/**
+ * lasso_idwsf2_util_response_set_status:
+ * @idwsf2_util_response: a #LassoIdWsf2UtilResponse object
+ * @status: a status code identifier
+ *
+ * Set the first level status code and no second level status code.
+ */
+void
+lasso_idwsf2_util_response_set_status(LassoIdWsf2UtilResponse *idwsf2_util_response,
+ const char *status)
+{
+ LassoIdWsf2UtilStatus *idwsf2_util_status;
+
+ if (! LASSO_IS_IDWSF2_UTIL_RESPONSE(idwsf2_util_response))
+ return;
+ if (status == NULL || status[0] == '\0')
+ return;
+
+ idwsf2_util_status = lasso_idwsf2_util_status_new();
+ lasso_assign_string(idwsf2_util_status->code, status);
+ lasso_assign_new_gobject(idwsf2_util_response->Status, idwsf2_util_status);
+}
+
+void
+lasso_idwsf2_util_response_set_status2(LassoIdWsf2UtilResponse *idwsf2_util_response,
+ const char *status, const char *status2)
+{
+ LassoIdWsf2UtilStatus *idwsf2_util_status = NULL;
+ LassoIdWsf2UtilStatus *idwsf2_util_status2 = NULL;
+
+ if (! LASSO_IS_IDWSF2_UTIL_RESPONSE(idwsf2_util_response))
+ return;
+ if (status2 == NULL || status2[0] == '\0')
+ return;
+
+ if (status) {
+ idwsf2_util_status = lasso_idwsf2_util_status_new();
+ lasso_assign_string(idwsf2_util_status->code, status);
+ } else {
+ if (LASSO_IS_IDWSF2_UTIL_STATUS(idwsf2_util_response->Status)) {
+ idwsf2_util_status = idwsf2_util_response->Status;
+ } else {
+ return;
+ }
+ }
+
+ if (idwsf2_util_status) {
+ idwsf2_util_status2 = lasso_idwsf2_util_status_new();
+ lasso_assign_string(idwsf2_util_status2->code, status2);
+ lasso_list_add_new_gobject(idwsf2_util_status->Status, idwsf2_util_status2);
+ lasso_assign_new_gobject(idwsf2_util_response->Status, idwsf2_util_status);
+ }
+}
diff --git a/lasso/xml/id-wsf-2.0/util_response.h b/lasso/xml/id-wsf-2.0/util_response.h
index 9bc5886a..78f0a3e2 100644
--- a/lasso/xml/id-wsf-2.0/util_response.h
+++ b/lasso/xml/id-wsf-2.0/util_response.h
@@ -76,6 +76,10 @@ struct _LassoIdWsf2UtilResponseClass {
LASSO_EXPORT GType lasso_idwsf2_util_response_get_type(void);
LASSO_EXPORT LassoIdWsf2UtilResponse* lasso_idwsf2_util_response_new(void);
+LASSO_EXPORT void lasso_idwsf2_util_response_set_status(
+ LassoIdWsf2UtilResponse *idwsf2_util_response, const char *status);
+LASSO_EXPORT void lasso_idwsf2_util_response_set_status2(
+ LassoIdWsf2UtilResponse *idwsf2_util_response, const char *status, const char *status2);