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