You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2010/02/12 09:02:28 UTC
svn commit: r909284 - /webservices/axis2/trunk/c/util/src/param_container.c
Author: nandika
Date: Fri Feb 12 08:02:27 2010
New Revision: 909284
URL: http://svn.apache.org/viewvc?rev=909284&view=rev
Log:
added method delete_param to param container
Modified:
webservices/axis2/trunk/c/util/src/param_container.c
Modified: webservices/axis2/trunk/c/util/src/param_container.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/param_container.c?rev=909284&r1=909283&r2=909284&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/param_container.c (original)
+++ webservices/axis2/trunk/c/util/src/param_container.c Fri Feb 12 08:02:27 2010
@@ -156,7 +156,29 @@
axutil_param_container_t *param_container,
const axutil_env_t *env)
{
- return param_container->params_list;
+ if(param_container->params_list)
+ {
+ return param_container->params_list;
+ }else
+ {
+ axutil_hash_index_t *hi = NULL;
+ void *val = NULL;
+
+ param_container->params_list = axutil_array_list_create(env, 0);
+
+ for(hi = axutil_hash_first(param_container->params, env); hi; hi
+ = axutil_hash_next(env, hi))
+ {
+ axutil_param_t *param = NULL;
+ axutil_hash_this(hi, NULL, NULL, &val);
+ param = (axutil_param_t *)val;
+ if(param)
+ {
+ axutil_array_list_add(param_container->params_list, env, param);
+ }
+ }
+ }
+ return param_container->params_list;
}
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
@@ -176,3 +198,31 @@
}
return axutil_param_is_locked(param, env);
}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axutil_param_container_delete_param(
+ axutil_param_container_t *param_container,
+ const axutil_env_t *env,
+ const axis2_char_t *param_name)
+{
+ axutil_param_t *param = NULL;
+
+ if(!param_name)
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "The requested parameter does not exist");
+ return AXIS2_FAILURE;
+ }
+ param = axutil_hash_get(param_container->params, param_name, AXIS2_HASH_KEY_STRING);
+ if(param)
+ {
+ /** Parameter exists, So remove it from hash table and delete the array list param_list
+ which will be built in the next call to get_params
+ */
+ axutil_hash_set(param_container->params, param_name, AXIS2_HASH_KEY_STRING, NULL);
+ axutil_param_free(param, env);
+ axutil_array_list_free(param_container->params_list, env);
+ param_container->params_list = NULL;
+ return AXIS2_SUCCESS;
+ }
+ return AXIS2_FAILURE;
+}