00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_DESC_H
00018 #define AXIS2_DESC_H
00019
00025 #include <axis2_param_container.h>
00026 #include <axis2_hash.h>
00027 #include <axis2_description.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00038 typedef struct axis2_desc_ops axis2_desc_ops_t;
00039 typedef struct axis2_desc axis2_desc_t;
00040
00041
00046 AXIS2_DECLARE_DATA struct axis2_desc_ops
00047 {
00048 axis2_status_t (AXIS2_CALL *
00049 free) (
00050 axis2_desc_t *desc,
00051 const axis2_env_t *env);
00052
00053 axis2_status_t (AXIS2_CALL *
00054 add_param) (axis2_desc_t *desc,
00055 const axis2_env_t *env,
00056 axis2_param_t *param);
00057
00058 axis2_param_t *(AXIS2_CALL *
00059 get_param) (
00060 const axis2_desc_t *desc,
00061 const axis2_env_t *env,
00062 const axis2_char_t *param_name);
00063
00064 axis2_array_list_t *(AXIS2_CALL *
00065 get_all_params)(
00066 axis2_desc_t *desc,
00067 const axis2_env_t *env);
00068
00069 axis2_bool_t (AXIS2_CALL *
00070 is_param_locked)(
00071 const axis2_desc_t *desc,
00072 const axis2_env_t *env,
00073 const axis2_char_t *param_name);
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 axis2_status_t (AXIS2_CALL *
00087 add_child)(
00088 const axis2_desc_t *desc,
00089 const axis2_env_t *env,
00090 const axis2_char_t *key,
00091 const void* child);
00092
00093 axis2_hash_t *(AXIS2_CALL *
00094 get_all_children)(const axis2_desc_t *desc,
00095 const axis2_env_t *env);
00096
00097 void *(AXIS2_CALL *
00098 get_child)(const axis2_desc_t *desc,
00099 const axis2_env_t *env,
00100 const axis2_char_t *key);
00101
00102 axis2_status_t (AXIS2_CALL *
00103 remove_child)(const axis2_desc_t *desc,
00104 const axis2_env_t *env,
00105 const axis2_char_t *key);
00106 };
00107
00112 AXIS2_DECLARE_DATA struct axis2_desc
00113 {
00114 axis2_desc_ops_t *ops;
00115
00116 };
00117
00122 AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
00123 axis2_desc_create (const axis2_env_t *env);
00124
00125
00126
00127 #define AXIS2_DESC_FREE(desc, env) \
00128 ((desc)->ops->free (desc, env))
00129
00130 #define AXIS2_DESC_ADD_PARAM(desc, env, param) \
00131 ((desc)->ops->add_param (desc, env, param))
00132
00133 #define AXIS2_DESC_GET_PARAM(desc, env, key) \
00134 ((desc)->ops->get_param (desc, env, key))
00135
00136 #define AXIS2_DESC_GET_ALL_PARAMS(desc, env) \
00137 ((desc)->ops->get_all_params (desc, env))
00138
00139 #define AXIS2_DESC_IS_PARAM_LOCKED(desc, env, param_name) \
00140 ((desc)->ops->is_param_locked(desc, env, param_name))
00141
00142 #define AXIS2_DESC_SET_POLICY_INCLUDE(desc, env, policy_container) \
00143 ((desc)->ops->set_policy_include(desc, env, policy_container))
00144
00145 #define AXIS2_DESC_GET_POLICY_INCLUDE(desc, env) \
00146 ((desc)->ops->get_policy_container(desc, env))
00147
00148 #define AXIS2_DESC_ADD_CHILD(desc, env, key, child) \
00149 ((desc)->ops->add_child(desc, env, key, child))
00150
00151 #define AXIS2_DESC_GET_ALL_CHILDREN(desc, env) \
00152 ((desc)->ops->get_all_children(desc, env))
00153
00154 #define AXIS2_DESC_GET_CHILD(desc, env, key) \
00155 ((desc)->ops->get_child(desc, env, key))
00156
00157 #define AXIS2_DESC_REMOVE_CHILD(desc, env, key) \
00158 ((desc)->ops->remove_child(desc, env, key))
00159
00161 #ifdef __cplusplus
00162 }
00163 #endif
00164 #endif