00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_PARAM_CONTAINER_H
00018 #define AXIS2_PARAM_CONTAINER_H
00019
00025 #include <axis2.h>
00026 #include <axis2_error.h>
00027 #include <axis2_defines.h>
00028 #include <axis2_env.h>
00029 #include <axis2_allocator.h>
00030 #include <axis2_string.h>
00031 #include <axis2_array_list.h>
00032 #include <axis2_hash.h>
00033
00034
00035 #include <axis2_qname.h>
00036 #include <axis2_param.h>
00037
00038 #ifdef __cplusplus
00039 extern "C"
00040 {
00041 #endif
00042
00043 struct axis2_param_container;
00044 struct axis2_param_container_ops;
00045
00055 AXIS2_DECLARE_DATA typedef struct axis2_param_container_ops
00056 {
00060 axis2_status_t (AXIS2_CALL *free)(struct axis2_param_container *param_container,
00061 axis2_env_t **env);
00062
00067 axis2_status_t (AXIS2_CALL *add_param)
00068 (struct axis2_param_container *param_container,
00069 axis2_env_t **env,
00070 axis2_param_t *param);
00071
00076 axis2_param_t *(AXIS2_CALL *get_param)
00077 (struct axis2_param_container *param_container,
00078 axis2_env_t **env,
00079 const axis2_char_t *name);
00080
00081
00085 axis2_array_list_t *(AXIS2_CALL *get_params)
00086 (struct axis2_param_container *param_container,
00087 axis2_env_t **env);
00088
00093 axis2_bool_t (AXIS2_CALL *is_param_locked)
00094 (struct axis2_param_container *param_container,
00095 axis2_env_t **env,
00096 const axis2_char_t *param_name) ;
00097
00098 }axis2_param_container_ops_t;
00099
00104 AXIS2_DECLARE_DATA typedef struct axis2_param_container
00105 {
00106 axis2_param_container_ops_t *ops;
00107 }axis2_param_container_t;
00108
00113 AXIS2_DECLARE(axis2_param_container_t *) axis2_param_container_create (axis2_env_t **env);
00114
00115
00116
00117 #define AXIS2_PARAM_CONTAINER_FREE(param_container, env) \
00118 ((param_container->ops)->free (param_container, env))
00119
00120 #define AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container, env, param) \
00121 ((param_container->ops)->add_param (param_container, env, param))
00122
00123 #define AXIS2_PARAM_CONTAINER_GET_PARAM(param_container, env, name) \
00124 ((param_container->ops)->get_param (param_container, env, name))
00125
00126 #define AXIS2_PARAM_CONTAINER_GET_PARAMS(param_container, env) \
00127 ((param_container->ops)->get_params (param_container, env))
00128
00129 #define AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED(param_container, env, \
00130 param_name) \
00131 ((param_container->ops)->is_param_locked (param_container, env, \
00132 param_name))
00133
00134
00135
00138 #ifdef __cplusplus
00139 }
00140 #endif
00141 #endif