00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_WSDL_COMPONENT_H
00019 #define AXIS2_WSDL_COMPONENT_H
00020
00025 #include <axis2_const.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_hash.h>
00032 #include <axis2_linked_list.h>
00033 #include <axis2_array_list.h>
00034 #include <axis2_wsdl_extensible_element.h>
00035
00036
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041
00042 struct axis2_wsdl_extensible_element;
00043 struct axis2_param_container;
00044 struct axis2_module_desc;
00045 typedef struct axis2_wsdl_component_ops axis2_wsdl_component_ops_t;
00046 typedef struct axis2_wsdl_component axis2_wsdl_component_t;
00047
00057 struct axis2_wsdl_component_ops
00058 {
00062 axis2_status_t (AXIS2_CALL *
00063 free) (axis2_wsdl_component_t *wsdl_component,
00064 const axis2_env_t *env);
00065
00071 axis2_status_t (AXIS2_CALL *
00072 set_component_properties) (axis2_wsdl_component_t *wsdl_component,
00073 const axis2_env_t *env,
00074 axis2_hash_t *properties);
00075
00076
00081 axis2_hash_t *(AXIS2_CALL *
00082 get_component_properties) (axis2_wsdl_component_t *wsdl_component,
00083 const axis2_env_t *env);
00084
00091 axis2_status_t (AXIS2_CALL *
00092 set_component_property) (axis2_wsdl_component_t *wsdl_component,
00093 const axis2_env_t *env,
00094 const axis2_char_t *key,
00095 void *value);
00096
00097
00103 void *(AXIS2_CALL *
00104 get_component_property) (axis2_wsdl_component_t *wsdl_component,
00105 const axis2_env_t *env,
00106 const axis2_char_t *key);
00107
00108
00109
00115 axis2_status_t (AXIS2_CALL *
00116 add_extensibility_element) (axis2_wsdl_component_t *wsdl_component,
00117 const axis2_env_t *env,
00118 void *element);
00119
00125 axis2_linked_list_t *(AXIS2_CALL *
00126 get_extensibility_elements) (axis2_wsdl_component_t *wsdl_component,
00127 const axis2_env_t *env);
00128
00129 };
00130
00136 struct axis2_wsdl_component
00137 {
00138 axis2_wsdl_component_ops_t *ops;
00139 };
00140
00144 AXIS2_EXTERN axis2_wsdl_component_t * AXIS2_CALL
00145 axis2_wsdl_component_create (const axis2_env_t *env);
00146
00147
00148
00149 #define AXIS2_WSDL_COMPONENT_FREE(wsdl_component, env) \
00150 ((wsdl_component)->ops->free (wsdl_component, env))
00151
00152 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTIES(wsdl_component, env, \
00153 properties) \
00154 ((wsdl_component)->ops->set_component_properties(wsdl_component , env, \
00155 properties))
00156
00157 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTIES(wsdl_component, env) \
00158 ((wsdl_component)->ops->get_component_properties(wsdl_component, env))
00159
00160 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(wsdl_component, env, \
00161 key, value) \
00162 ((wsdl_component)->ops->set_component_property(wsdl_component, env,\
00163 key, value))
00164
00165 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(wsdl_component, env, key) \
00166 ((wsdl_component)->ops->get_component_property(wsdl_component, env, key))
00167
00168
00169 #define AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_component, env, element) \
00170 ((wsdl_component)->ops->add_extensibility_element(wsdl_component, env, element))
00171
00172 #define AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(wsdl_component, env) \
00173 ((wsdl_component)->ops->get_extensibility_elements(wsdl_component, env))
00174
00175
00176
00178 #ifdef __cplusplus
00179 }
00180 #endif
00181
00182 #endif