diff options
| author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-04 09:15:09 +0000 |
|---|---|---|
| committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-04 09:15:09 +0000 |
| commit | f4aefd71f8d86e41cc9a60953b6c54dd0d7d291f (patch) | |
| tree | 2aa9d38b85d75dbd65f9af7959dbdb2ce7651711 | |
| parent | 72ba41fa7fb70688fbc016114587553f80ea7efb (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.c | 55 | ||||
| -rw-r--r-- | lasso/xml/id-wsf-2.0/util_response.h | 4 |
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); |
