00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_INCLUDE_H
00019 #define WODEN_INCLUDE_H
00020
00028 #include <woden.h>
00029 #include <woden_include_element.h>
00030 #include <woden_wsdl_obj.h>
00031 #include <woden_wsdl_ref.h>
00032
00038 typedef union woden_include_base woden_include_base_t;
00039 typedef struct woden_include woden_include_t;
00040 typedef struct woden_include_ops woden_include_ops_t;
00041 struct woden_wsdl_ref;
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00048 struct woden_include_ops
00049 {
00054 axis2_status_t (AXIS2_CALL *
00055 free) (void *include,
00056 const axis2_env_t *env);
00057
00058 axis2_hash_t *(AXIS2_CALL *
00059 super_objs) (void *include,
00060 const axis2_env_t *env);
00061
00062 woden_obj_types_t (AXIS2_CALL *
00063 type) (void *include,
00064 const axis2_env_t *env);
00068 struct woden_wsdl_ref *(AXIS2_CALL *
00069 get_base_impl) (
00070 void *include,
00071 const axis2_env_t *env);
00072
00073
00074
00075
00076
00077 };
00078
00079 union woden_include_base
00080 {
00081 woden_include_element_t include_element;
00082 woden_wsdl_ref_t wsdl_ref;
00083 };
00084
00085 struct woden_include
00086 {
00087 woden_include_base_t base;
00088 woden_include_ops_t *ops;
00089 };
00090
00091 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00092 woden_include_create(
00093 const axis2_env_t *env);
00094
00095
00096
00097 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00098 woden_include_to_include_element(
00099 void *include,
00100 const axis2_env_t *env);
00101
00102 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00103 woden_include_to_wsdl_ref(
00104 void *include,
00105 const axis2_env_t *env);
00106
00107 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00108 woden_include_to_attr_extensible(
00109 void *include,
00110 const axis2_env_t *env);
00111
00112 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00113 woden_include_to_element_extensible(
00114 void *include,
00115 const axis2_env_t *env);
00116
00117 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00118 woden_include_resolve_methods(
00119 woden_include_t *include,
00120 const axis2_env_t *env,
00121 woden_include_t *include_impl,
00122 axis2_hash_t *methods);
00123
00124
00125 #define WODEN_INCLUDE_FREE(include, env) \
00126 (((woden_include_t *) include)->ops->free(include, env))
00127
00128 #define WODEN_INCLUDE_SUPER_OBJS(include, env) \
00129 (((woden_include_t *) include)->ops->super_objs(include, env))
00130
00131 #define WODEN_INCLUDE_TYPE(include, env) \
00132 (((woden_include_t *) include)->ops->type(include, env))
00133
00134 #define WODEN_INCLUDE_GET_BASE_IMPL(include, env) \
00135 (((woden_include_t *) include)->ops->get_base_impl(include, env))
00136
00138 #ifdef __cplusplus
00139 }
00140 #endif
00141 #endif