00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_MSG_REG_ELEMENT_H
00018 #define WODEN_MSG_REG_ELEMENT_H
00019
00027 #include <axis2_allocator.h>
00028 #include <axis2_env.h>
00029 #include <axis2_error.h>
00030 #include <axis2_string.h>
00031 #include <axis2_utils.h>
00032 #include <axis2_hash.h>
00033 #include <axis2_qname.h>
00034 #include <axis2_uri.h>
00035 #include <axis2_array_list.h>
00036 #include <woden.h>
00037 #include <woden_documentable_element.h>
00038 #include <woden_configurable_element.h>
00039 #include <woden_nested_element.h>
00040
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045
00046 typedef struct woden_msg_ref_element woden_msg_ref_element_t;
00047 typedef struct woden_msg_ref_element_ops woden_msg_ref_element_ops_t;
00048 typedef union woden_msg_ref_element_base woden_msg_ref_element_base_t;
00049
00055 struct woden_msg_ref_element_ops
00056 {
00061 axis2_status_t (AXIS2_CALL *
00062 free) (
00063 void *msg_ref_element,
00064 const axis2_env_t *env);
00065
00066 woden_obj_types_t (AXIS2_CALL *
00067 type) (
00068 void *msg_ref_element,
00069 const axis2_env_t *env);
00070
00071 axis2_status_t (AXIS2_CALL *
00072 set_msg_label) (
00073 void *iface_fault_ele,
00074 const axis2_env_t *env,
00075 void *msg_label);
00076
00077 void *(AXIS2_CALL *
00078 get_msg_label) (
00079 void *iface_fault_ele,
00080 const axis2_env_t *env);
00081
00082 axis2_status_t (AXIS2_CALL *
00083 set_msg_content_model) (
00084 void *iface_fault_ele,
00085 const axis2_env_t *env,
00086 axis2_char_t *nm_token);
00087
00088 axis2_char_t *(AXIS2_CALL *
00089 get_msg_content_model) (
00090 void *iface_fault_ele,
00091 const axis2_env_t *env);
00092
00100 axis2_status_t (AXIS2_CALL *
00101 set_element_qname) (
00102 void *iface_fault_ele,
00103 const axis2_env_t *env,
00104 axis2_qname_t *element);
00105
00106 axis2_qname_t *(AXIS2_CALL *
00107 get_element_qname) (
00108 void *iface_fault_ele,
00109 const axis2_env_t *env);
00110
00121 void *(AXIS2_CALL *
00122 get_element) (
00123 void *iface_fault_ele,
00124 const axis2_env_t *env);
00125
00126 axis2_status_t (AXIS2_CALL *
00127 set_direction) (
00128 void *iface_fault_ele,
00129 const axis2_env_t *env,
00130 void *dir);
00131
00132 void *(AXIS2_CALL *
00133 get_direction) (
00134 void *iface_fault_ele,
00135 const axis2_env_t *env);
00136
00137
00138 };
00139
00140 union woden_msg_ref_element_base
00141 {
00142 woden_documentable_element_t documentable_element;
00143 woden_configurable_element_t configurable_element;
00144 woden_nested_element_t nested_element;
00145 };
00146
00147 struct woden_msg_ref_element
00148 {
00149 woden_msg_ref_element_base_t base;
00150 woden_msg_ref_element_ops_t *ops;
00151 };
00152
00153 AXIS2_EXTERN woden_msg_ref_element_t * AXIS2_CALL
00154 woden_msg_ref_element_create(
00155 const axis2_env_t *env);
00156
00157
00158 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00159 woden_msg_ref_element_resolve_methods(
00160 woden_msg_ref_element_t *msg_ref_element,
00161 const axis2_env_t *env,
00162 axis2_hash_t *methods);
00163
00164
00165 #define WODEN_MSG_REG_ELEMENT_FREE(msg_ref_element, env) \
00166 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00167 free (msg_ref_element, env))
00168
00169 #define WODEN_MSG_REG_ELEMENT_TYPE(msg_ref_element, env) \
00170 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00171 type (msg_ref_element, env))
00172
00173 #define WODEN_MSG_REG_ELEMENT_SET_MSG_LABEL(msg_ref_element, env, msg_label) \
00174 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00175 set_msg_label (msg_ref_element, env, msg_label))
00176
00177 #define WODEN_MSG_REG_ELEMENT_GET_MSG_LABEL(msg_ref_element, env) \
00178 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00179 get_msg_label (msg_ref_element, env))
00180
00181 #define WODEN_MSG_REG_ELEMENT_SET_MSG_CONTENT_MODEL(msg_ref_element, env, nm_token) \
00182 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00183 set_msg_content_model (msg_ref_element, env, nm_token))
00184
00185 #define WODEN_MSG_REG_ELEMENT_GET_MSG_CONTENT_MODEL(msg_ref_element, env) \
00186 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00187 get_msg_content_model (msg_ref_element, env))
00188
00189 #define WODEN_MSG_REG_ELEMENT_SET_ELEMENT_QNAME(msg_ref_element, env, element) \
00190 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00191 set_element_qname (msg_ref_element, env, element))
00192
00193 #define WODEN_MSG_REG_ELEMENT_GET_ELEMENT_QNAME(msg_ref_element, env) \
00194 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00195 get_element_qname (msg_ref_element, env))
00196
00197 #define WODEN_MSG_REG_ELEMENT_GET_ELEMENT(msg_ref_element, env) \
00198 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00199 get_element (msg_ref_element, env))
00200
00201 #define WODEN_MSG_REG_ELEMENT_SET_DIRECTION(msg_ref_element, env, dir) \
00202 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00203 set_direction (msg_ref_element, env, dir))
00204
00205 #define WODEN_MSG_REG_ELEMENT_GET_DIRECTION(msg_ref_element, env) \
00206 (((woden_msg_ref_element_t *) msg_ref_element)->ops->\
00207 get_direction (msg_ref_element, env))
00208
00209
00210
00211
00213 #ifdef __cplusplus
00214 }
00215 #endif
00216 #endif