00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXUTIL_PARAM_H
00020 #define AXUTIL_PARAM_H
00021
00027 #include <axutil_utils_defines.h>
00028 #include <axutil_env.h>
00029 #include <axutil_hash.h>
00030 #include <axutil_array_list.h>
00031
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036
00046 #define AXIS2_TEXT_PARAM 0
00047
00051 #define AXIS2_DOM_PARAM 1
00052
00053 typedef struct axutil_param axutil_param_t;
00054
00060 typedef void(
00061 AXIS2_CALL
00062 * AXIS2_PARAM_VALUE_FREE) (
00063 void *param_value,
00064 const axutil_env_t * env);
00065
00069 AXIS2_EXTERN axutil_param_t *AXIS2_CALL
00070 axutil_param_create(
00071 const axutil_env_t * env,
00072 axis2_char_t * name,
00073 void *value);
00074
00079 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00080 axutil_param_get_name(
00081 struct axutil_param *param,
00082 const axutil_env_t * env);
00083
00088 AXIS2_EXTERN void *AXIS2_CALL
00089 axutil_param_get_value(
00090 struct axutil_param *param,
00091 const axutil_env_t * env);
00092
00097 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00098 axutil_param_set_name(
00099 struct axutil_param *param,
00100 const axutil_env_t * env,
00101 const axis2_char_t * name);
00102
00108 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00109 axutil_param_set_value(
00110 struct axutil_param *param,
00111 const axutil_env_t * env,
00112 const void *value);
00113
00119 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00120 axutil_param_is_locked(
00121 struct axutil_param *param,
00122 const axutil_env_t * env);
00123
00129 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00130 axutil_param_set_locked(
00131 struct axutil_param *param,
00132 const axutil_env_t * env,
00133 axis2_bool_t value);
00134
00140 AXIS2_EXTERN int AXIS2_CALL
00141 axutil_param_get_param_type(
00142 struct axutil_param *param,
00143 const axutil_env_t * env);
00144
00145 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00146 axutil_param_set_param_type(
00147 struct axutil_param *param,
00148 const axutil_env_t * env,
00149 int type);
00150
00151 AXIS2_EXTERN void AXIS2_CALL
00152 axutil_param_free(
00153 struct axutil_param *param,
00154 const axutil_env_t * env);
00155
00156 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00157 axutil_param_set_attributes(
00158 struct axutil_param *param,
00159 const axutil_env_t * env,
00160 axutil_hash_t * attrs);
00161
00162 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00163 axutil_param_get_attributes(
00164 struct axutil_param *param,
00165 const axutil_env_t * env);
00166
00167 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00168 axutil_param_set_value_list(
00169 struct axutil_param *param,
00170 const axutil_env_t * env,
00171 axutil_array_list_t * value_list);
00172
00173 AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
00174 axutil_param_get_value_list(
00175 struct axutil_param *param,
00176 const axutil_env_t * env);
00177
00178 AXIS2_EXTERN void AXIS2_CALL
00179 axutil_param_value_free(
00180 void *param_value,
00181 const axutil_env_t * env);
00182
00183 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00184 axutil_param_set_value_free(
00185 struct axutil_param *param,
00186 const axutil_env_t * env,
00187 AXIS2_PARAM_VALUE_FREE free_fn);
00188
00189 AXIS2_EXTERN void AXIS2_CALL
00190 axutil_param_dummy_free_fn(
00191 void *param,
00192 const axutil_env_t * env);
00193
00196 #ifdef __cplusplus
00197 }
00198 #endif
00199
00200 #endif