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