00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_INTERFACE_OP_ELEMENT_H
00018 #define WODEN_INTERFACE_OP_ELEMENT_H
00019
00029 #include <axis2_allocator.h>
00030 #include <axis2_env.h>
00031 #include <axis2_error.h>
00032 #include <axis2_string.h>
00033 #include <axis2_utils.h>
00034 #include <axis2_hash.h>
00035 #include <axis2_qname.h>
00036 #include <axis2_uri.h>
00037 #include <axis2_array_list.h>
00038 #include <woden.h>
00039 #include <woden_documentable_element.h>
00040 #include <woden_configurable_element.h>
00041 #include <woden_nested_element.h>
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00048 typedef struct woden_interface_op_element woden_interface_op_element_t;
00049 typedef struct woden_interface_op_element_ops woden_interface_op_element_ops_t;
00050 typedef union woden_interface_op_element_base woden_interface_op_element_base_t;
00051
00057 struct woden_interface_op_element_ops
00058 {
00063 axis2_status_t (AXIS2_CALL *
00064 free) (
00065 void *interface_op_element,
00066 const axis2_env_t *env);
00067
00068 woden_obj_types_t (AXIS2_CALL *
00069 type) (
00070 void *interface_op_element,
00071 const axis2_env_t *env);
00072
00073 axis2_status_t (AXIS2_CALL *
00074 set_qname) (
00075 void *iface_op_ele,
00076 const axis2_env_t *env,
00077 axis2_qname_t *qname);
00078
00079 axis2_qname_t *(AXIS2_CALL *
00080 get_qname) (
00081 void *iface_op_ele,
00082 const axis2_env_t *env);
00083
00084 axis2_status_t (AXIS2_CALL *
00085 set_pattern) (
00086 void *iface_op_ele,
00087 const axis2_env_t *env,
00088 axis2_uri_t *uri);
00089
00090 axis2_uri_t *(AXIS2_CALL *
00091 get_pattern) (
00092 void *iface_op_ele,
00093 const axis2_env_t *env);
00094
00095 axis2_status_t (AXIS2_CALL *
00096 add_style_uri) (
00097 void *iface_op_ele,
00098 const axis2_env_t *env,
00099 axis2_uri_t *uri);
00100
00101 axis2_status_t (AXIS2_CALL *
00102 remove_style_uri) (
00103 void *iface_op_ele,
00104 const axis2_env_t *env,
00105 axis2_uri_t *uri);
00106
00107 axis2_uri_t *(AXIS2_CALL *
00108 get_style) (
00109 void *iface_op_ele,
00110 const axis2_env_t *env);
00111
00112 axis2_status_t (AXIS2_CALL *
00113 add_interface_msg_ref_element) (
00114 void *iface_op_ele,
00115 const axis2_env_t *env,
00116 void *msg_ref);
00117
00118 axis2_status_t (AXIS2_CALL *
00119 remove_interface_msg_ref_element) (
00120 void *iface_op_ele,
00121 const axis2_env_t *env,
00122 void *msg_ref);
00123
00124 axis2_array_list_t *(AXIS2_CALL *
00125 get_interface_msg_ref_elements) (
00126 void *iface_op_ele,
00127 const axis2_env_t *env);
00128
00129 axis2_status_t (AXIS2_CALL *
00130 add_interface_fault_ref_element) (
00131 void *iface_op_ele,
00132 const axis2_env_t *env,
00133 void *fault_ref);
00134
00135 axis2_status_t (AXIS2_CALL *
00136 remove_interface_fault_ref_element) (
00137 void *iface_op_ele,
00138 const axis2_env_t *env,
00139 void *fault_ref);
00140
00141 axis2_array_list_t *(AXIS2_CALL *
00142 get_interface_fault_ref_elements) (
00143 void *iface_op_ele,
00144 const axis2_env_t *env);
00145
00146
00147 };
00148
00149 union woden_interface_op_element_base
00150 {
00151 woden_documentable_element_t documentable_element;
00152 woden_configurable_element_t configurable_element;
00153 woden_nested_element_t nested_element;
00154 };
00155
00156 struct woden_interface_op_element
00157 {
00158 woden_interface_op_element_base_t base;
00159 woden_interface_op_element_ops_t *ops;
00160 };
00161
00162 AXIS2_EXTERN woden_interface_op_element_t * AXIS2_CALL
00163 woden_interface_op_element_create(
00164 const axis2_env_t *env);
00165
00166
00167 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00168 woden_interface_op_element_resolve_methods(
00169 woden_interface_op_element_t *interface_op_element,
00170 const axis2_env_t *env,
00171 axis2_hash_t *methods);
00172
00173
00174 #define WODEN_INTERFACE_OP_ELEMENT_FREE(interface_op_element, env) \
00175 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00176 free (interface_op_element, env))
00177
00178 #define WODEN_INTERFACE_OP_ELEMENT_TYPE(interface_op_element, env) \
00179 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00180 type (interface_op_element, env))
00181
00182 #define WODEN_INTERFACE_OP_ELEMENT_SET_QNAME(interface_op_element, env, qname) \
00183 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00184 set_qname (interface_op_element, env, qname))
00185
00186 #define WODEN_INTERFACE_OP_ELEMENT_GET_QNAME(interface_op_element, env) \
00187 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00188 get_qname (interface_op_element, env))
00189
00190 #define WODEN_INTERFACE_OP_ELEMENT_SET_PATTERN(interface_op_element, env, uri) \
00191 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00192 set_pattern (interface_op_element, env, uri))
00193
00194 #define WODEN_INTERFACE_OP_ELEMENT_GET_PATTERN(interface_op_element, env) \
00195 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00196 get_pattern (interface_op_element, env))
00197
00198 #define WODEN_INTERFACE_OP_ELEMENT_ADD_STYLE_URI(interface_op_element, env, uri) \
00199 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00200 add_style_uri (interface_op_element, env, uri))
00201
00202 #define WODEN_INTERFACE_OP_ELEMENT_REMOVE_STYLE_URI(interface_op_element, env, uri) \
00203 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00204 remove_style_uri (interface_op_element, env, uri))
00205
00206 #define WODEN_INTERFACE_OP_ELEMENT_GET_STYLE(interface_op_element, env) \
00207 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00208 get_style (interface_op_element, env))
00209
00210 #define WODEN_INTERFACE_OP_ELEMENT_ADD_INTERFACE_MSG_REF_ELEMENT(interface_op_element, env, msg_ref) \
00211 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00212 add_interface_msg_ref_element (interface_op_element, env, msg_ref))
00213
00214 #define WODEN_INTERFACE_OP_ELEMENT_REMOVE_MSG_REF_ELEMENT(interface_op_element, env, msg_ref) \
00215 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00216 remove_msg_ref_element (interface_op_element, env, msg_ref))
00217
00218 #define WODEN_INTERFACE_OP_ELEMENT_GET_INTERFACE_MSG_REF_ELEMENTS(interface_op_element, env) \
00219 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00220 get_interface_msg_ref_elements (interface_op_element, env))
00221
00222 #define WODEN_INTERFACE_OP_ELEMENT_ADD_INTERFACE_FAULT_REF_ELEMENT(interface_op_element, env, fault_ref) \
00223 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00224 add_interface_fault_ref_element (interface_op_element, env, fault_ref))
00225
00226 #define WODEN_INTERFACE_OP_ELEMENT_REMOVE_FAULT_REF_ELEMENT(interface_op_element, env, fault_ref) \
00227 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00228 remove_fault_ref_element (interface_op_element, env, fault_ref))
00229
00230 #define WODEN_INTERFACE_OP_ELEMENT_GET_INTERFACE_FAULT_REF_ELEMENTS(interface_op_element, env) \
00231 (((woden_interface_op_element_t *) interface_op_element)->ops->\
00232 get_interface_fault_ref_elements (interface_op_element, env))
00233
00234
00235
00236
00237
00239 #ifdef __cplusplus
00240 }
00241 #endif
00242 #endif