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