00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_DOCUMENTATION_H
00019 #define WODEN_DOCUMENTATION_H
00020
00032 #include <woden.h>
00033 #include <woden_documentation_element.h>
00034 #include <woden_wsdl_element.h>
00035
00041 typedef union woden_documentation_base woden_documentation_base_t;
00042 typedef struct woden_documentation woden_documentation_t;
00043 typedef struct woden_documentation_ops woden_documentation_ops_t;
00044 struct woden_documentation_element;
00045
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050
00051 struct woden_documentation_ops
00052 {
00057 axis2_status_t (AXIS2_CALL *
00058 free) (void *documentation,
00059 const axis2_env_t *env);
00060
00061 axis2_hash_t *(AXIS2_CALL *
00062 super_objs) (void *documentation,
00063 const axis2_env_t *env);
00064
00065 woden_obj_types_t (AXIS2_CALL *
00066 type) (void *documentation,
00067 const axis2_env_t *env);
00071 woden_wsdl_element_t *(AXIS2_CALL *
00072 get_base_impl) (
00073 void *documentation,
00074 const axis2_env_t *env);
00075 };
00076
00077 union woden_documentation_base
00078 {
00079 woden_wsdl_element_t wsdl_element;
00080 woden_documentation_element_t documentation_element;
00081 };
00082
00083 struct woden_documentation
00084 {
00085 woden_documentation_base_t base;
00086 woden_documentation_ops_t *ops;
00087 };
00088
00089 AXIS2_EXTERN woden_documentation_t * AXIS2_CALL
00090 woden_documentation_create(
00091 const axis2_env_t *env);
00092
00093
00094 AXIS2_EXTERN woden_documentation_t * AXIS2_CALL
00095 woden_documentation_to_documentation_element(
00096 void *documentation,
00097 const axis2_env_t *env);
00098
00099 AXIS2_EXTERN woden_documentation_t * AXIS2_CALL
00100 woden_documentation_to_attr_extensible(
00101 void *documentation,
00102 const axis2_env_t *env);
00103
00104 AXIS2_EXTERN woden_documentation_t * AXIS2_CALL
00105 woden_documentation_to_element_extensible(
00106 void *documentation,
00107 const axis2_env_t *env);
00108
00109 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00110 woden_documentation_resolve_methods(
00111 woden_documentation_t *documentation,
00112 const axis2_env_t *env,
00113 woden_documentation_t *documentation_impl,
00114 axis2_hash_t *methods);
00115
00116
00117
00118 #define WODEN_DOCUMENTATION_FREE(documentation, env) \
00119 (((woden_documentation_t *) documentation)->ops->free(documentation, env))
00120
00121 #define WODEN_DOCUMENTATION_SUPER_OBJS(documentation, env) \
00122 (((woden_documentation_t *) documentation)->ops->\
00123 super_objs(documentation, env))
00124
00125 #define WODEN_DOCUMENTATION_TYPE(documentation, env) \
00126 (((woden_documentation_t *) documentation)->ops->type(documentation, env))
00127
00128 #define WODEN_DOCUMENTATION_GET_BASE_IMPL(documentation, env) \
00129 (((woden_documentation_t *) documentation)->ops->\
00130 get_base_impl(documentation, env))
00131
00132
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137 #endif