00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_INCLUDE_ELEMENT_H
00019 #define WODEN_INCLUDE_ELEMENT_H
00020
00030 #include <axis2_allocator.h>
00031 #include <axis2_env.h>
00032 #include <axis2_error.h>
00033 #include <axis2_string.h>
00034 #include <axis2_utils.h>
00035 #include <axis2_hash.h>
00036 #include <axis2_qname.h>
00037 #include <axis2_uri.h>
00038 #include <woden.h>
00039 #include <woden_documentable_element.h>
00040 #include <woden_nested_element.h>
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 typedef struct woden_include_element woden_include_element_t;
00048 typedef struct woden_include_element_ops woden_include_element_ops_t;
00049 typedef union woden_include_element_base woden_include_element_base_t;
00050
00056 struct woden_include_element_ops
00057 {
00062 axis2_status_t (AXIS2_CALL *
00063 free) (
00064 void *include_el,
00065 const axis2_env_t *env);
00066
00067 woden_obj_types_t (AXIS2_CALL *
00068 type) (void *include_el,
00069 const axis2_env_t *env);
00070
00071 axis2_status_t (AXIS2_CALL *
00072 set_location) (void *include_el,
00073 const axis2_env_t *env,
00074 axis2_uri_t *loc_uri);
00075
00076 axis2_uri_t *(AXIS2_CALL *
00077 get_location) (void *include_el,
00078 const axis2_env_t *env);
00079
00080 axis2_status_t (AXIS2_CALL *
00081 set_desc_element) (void *include_el,
00082 const axis2_env_t *env,
00083 void *desc);
00084
00085 void *(AXIS2_CALL *
00086 get_desc_element) (void *include_el,
00087 const axis2_env_t *env);
00088
00089 };
00090
00091
00092 struct woden_include_element
00093 {
00094 woden_documentable_element_t documentable_element;
00095 woden_include_element_ops_t *ops;
00096 };
00097
00098
00099 axis2_status_t AXIS2_CALL
00100 woden_include_element_resolve_methods(
00101 woden_include_element_t *include_element,
00102 const axis2_env_t *env,
00103 axis2_hash_t *methods);
00104
00105
00106 #define WODEN_INCLUDE_ELEMENT_FREE(include_el, env) \
00107 (((woden_include_element_t *) include_el)->ops->\
00108 free (include_el, env))
00109
00110 #define WODEN_INCLUDE_ELEMENT_TYPE(include_el, env) \
00111 (((woden_include_element_t *) include_el)->ops->\
00112 type (include_el, env))
00113
00114 #define WODEN_INCLUDE_ELEMENT_SET_LOCATION(include_el, env, loc_uri) \
00115 (((woden_include_element_t *) include_el)->ops->\
00116 set_location(include_el, env, loc_uri))
00117
00118 #define WODEN_INCLUDE_ELEMENT_GET_LOCATION(include_el, env) \
00119 (((woden_include_element_t *) include_el)->ops->\
00120 get_location(include_el, env))
00121
00122 #define WODEN_INCLUDE_ELEMENT_SET_DESC_ELEMENT(include_el, env, desc) \
00123 (((woden_include_element_t *) include_el)->ops->\
00124 set_desc_element(include_el, env, desc))
00125
00126 #define WODEN_INCLUDE_ELEMENT_GET_DESC_ELEMENT(include_el, env) \
00127 (((woden_include_element_t *) include_el)->ops->\
00128 get_desc_element(include_el, env))
00129
00131 #ifdef __cplusplus
00132 }
00133 #endif
00134 #endif