00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_IMPORT_H
00019 #define WODEN_IMPORT_H
00020
00028 #include <woden.h>
00029 #include <woden_import_element.h>
00030 #include <woden_wsdl_obj.h>
00031 #include <woden_wsdl_ref.h>
00032
00038 typedef union woden_import_base woden_import_base_t;
00039 typedef struct woden_import woden_import_t;
00040 typedef struct woden_import_ops woden_import_ops_t;
00041 struct woden_wsdl_ref;
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00048 struct woden_import_ops
00049 {
00054 axis2_status_t (AXIS2_CALL *
00055 free) (void *import,
00056 const axis2_env_t *env);
00057
00058 axis2_hash_t *(AXIS2_CALL *
00059 super_objs) (void *import,
00060 const axis2_env_t *env);
00061
00062 woden_obj_types_t (AXIS2_CALL *
00063 type) (void *import,
00064 const axis2_env_t *env);
00068 struct woden_wsdl_ref *(AXIS2_CALL *
00069 get_base_impl) (
00070 void *import,
00071 const axis2_env_t *env);
00072
00073 axis2_uri_t *(AXIS2_CALL *
00074 get_namespace) (
00075 void *import,
00076 const axis2_env_t *env);
00077
00078 axis2_status_t (AXIS2_CALL *
00079 set_namespace) (
00080 void *import,
00081 const axis2_env_t *env,
00082 axis2_uri_t *ns_uri);
00083
00084 };
00085
00086 union woden_import_base
00087 {
00088 woden_import_element_t import_element;
00089 woden_wsdl_ref_t wsdl_ref;
00090 };
00091
00092 struct woden_import
00093 {
00094 woden_import_base_t base;
00095 woden_import_ops_t *ops;
00096 };
00097
00098 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00099 woden_import_create(
00100 const axis2_env_t *env);
00101
00102
00103
00104 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00105 woden_import_to_import_element(
00106 void *import,
00107 const axis2_env_t *env);
00108
00109 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00110 woden_import_to_wsdl_ref(
00111 void *import,
00112 const axis2_env_t *env);
00113
00114 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00115 woden_import_to_attr_extensible(
00116 void *import,
00117 const axis2_env_t *env);
00118
00119 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00120 woden_import_to_element_extensible(
00121 void *import,
00122 const axis2_env_t *env);
00123
00124 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00125 woden_import_resolve_methods(
00126 woden_import_t *import,
00127 const axis2_env_t *env,
00128 woden_import_t *import_impl,
00129 axis2_hash_t *methods);
00130
00131
00132 #define WODEN_IMPORT_FREE(import, env) \
00133 (((woden_import_t *) import)->ops->free(import, env))
00134
00135 #define WODEN_IMPORT_SUPER_OBJS(import, env) \
00136 (((woden_import_t *) import)->ops->super_objs(import, env))
00137
00138 #define WODEN_IMPORT_TYPE(import, env) \
00139 (((woden_import_t *) import)->ops->type(import, env))
00140
00141 #define WODEN_IMPORT_GET_BASE_IMPL(import, env) \
00142 (((woden_import_t *) import)->ops->get_base_impl(import, env))
00143
00144 #define WODEN_IMPORT_GET_NAMESPACE(import, env) \
00145 (((woden_import_t *) import)->ops->\
00146 get_namespace(import, env))
00147
00148 #define WODEN_IMPORT_SET_NAMESPACE(import, env, ns_uri) \
00149 (((woden_import_t *) import)->ops->\
00150 set_namespace(import, env, ns_uri))
00151
00153 #ifdef __cplusplus
00154 }
00155 #endif
00156 #endif