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