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