00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_COMPONENT_EXTS_H
00018 #define WODEN_COMPONENT_EXTS_H
00019
00042 #include <axis2_allocator.h>
00043 #include <axis2_env.h>
00044 #include <axis2_error.h>
00045 #include <axis2_string.h>
00046 #include <axis2_utils.h>
00047 #include <axis2_hash.h>
00048 #include <axis2_qname.h>
00049 #include <axis2_uri.h>
00050 #include <woden.h>
00051
00052 #ifdef __cplusplus
00053 extern "C"
00054 {
00055 #endif
00056
00057 typedef struct woden_component_exts woden_component_exts_t;
00058 typedef struct woden_component_exts_ops woden_component_exts_ops_t;
00059 struct woden_wsdl_element;
00060
00061
00065 #define WODEN_URI_NS_SOAP "http://www.w3.org/2006/01/wsdl/soap"
00066 #define WODEN_URI_NS_HTTP "http://www.w3.org/2006/01/wsdl/http"
00067
00073 struct woden_component_exts_ops
00074 {
00079 axis2_status_t (AXIS2_CALL *
00080 free) (void *component_exts,
00081 const axis2_env_t *env);
00082
00083 axis2_status_t (AXIS2_CALL *
00084 to_component_exts_free) (void *component_exts,
00085 const axis2_env_t *env);
00086
00087 woden_obj_types_t (AXIS2_CALL *
00088 type) (void *component_exts,
00089 const axis2_env_t *env);
00090
00091 axis2_uri_t *(AXIS2_CALL *
00092 get_namespace) (
00093 void *component_exts,
00094 const axis2_env_t *env);
00095
00096 axis2_status_t (AXIS2_CALL *
00097 init) (
00098 void *component_exts,
00099 const axis2_env_t *env,
00100 struct woden_wsdl_element *parent_el,
00101 axis2_uri_t *namespc);
00102
00103 void *(AXIS2_CALL *
00104 get_parent_element) (
00105 void *component_exts,
00106 const axis2_env_t *env);
00107 };
00108
00109 struct woden_component_exts
00110 {
00111 woden_component_exts_ops_t *ops;
00112 };
00113
00114 AXIS2_EXTERN woden_component_exts_t * AXIS2_CALL
00115 woden_component_exts_create(const axis2_env_t *env);
00116
00121 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00122 woden_component_exts_resolve_methods(
00123 woden_component_exts_t *component_exts,
00124 const axis2_env_t *env,
00125 axis2_hash_t *methods);
00126
00127 #define WODEN_COMPONENT_EXTS_FREE(component_exts, env) \
00128 (((woden_component_exts_t *) component_exts)->ops->\
00129 free (component_exts, env))
00130
00131 #define WODEN_COMPONENT_EXTS_TO_COMPONENT_EXTS_FREE(component_exts, env) \
00132 (((woden_component_exts_t *) component_exts)->ops->\
00133 to_component_exts_free (component_exts, env))
00134
00135 #define WODEN_COMPONENT_EXTS_TYPE(component_exts, env) \
00136 (((woden_component_exts_t *) component_exts)->ops->\
00137 type (component_exts, env))
00138
00139 #define WODEN_COMPONENT_EXTS_INIT(component_exts, env, parent_el, namespc) \
00140 (((woden_component_exts_t *) component_exts)->ops->\
00141 init(component_exts, env, \
00142 parent_el, namespc))
00143
00144 #define WODEN_COMPONENT_EXTS_GET_NAMESPACE(component_exts, env) \
00145 (((woden_component_exts_t *) component_exts)->ops->\
00146 get_namespace(component_exts, env))
00147
00148 #define WODEN_COMPONENT_EXTS_GET_PARENT_ELEMENT(component_exts, env) \
00149 (((woden_component_exts_t *) component_exts)->ops->\
00150 get_parent_element(component_exts, env))
00151
00153 #ifdef __cplusplus
00154 }
00155 #endif
00156 #endif