00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_BINDING_OP_ELEMENT_H
00019 #define WODEN_BINDING_OP_ELEMENT_H
00020
00028 #include <axis2_allocator.h>
00029 #include <axis2_env.h>
00030 #include <axis2_error.h>
00031 #include <axis2_string.h>
00032 #include <axis2_utils.h>
00033 #include <axis2_hash.h>
00034 #include <axis2_qname.h>
00035 #include <axis2_uri.h>
00036 #include <axis2_array_list.h>
00037 #include <woden.h>
00038 #include <woden_documentable_element.h>
00039 #include <woden_configurable_element.h>
00040 #include <woden_nested_element.h>
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 typedef struct woden_binding_op_element woden_binding_op_element_t;
00048 typedef struct woden_binding_op_element_ops woden_binding_op_element_ops_t;
00049 typedef union woden_binding_op_element_base woden_binding_op_element_base_t;
00050
00056 struct woden_binding_op_element_ops
00057 {
00062 axis2_status_t (AXIS2_CALL *
00063 free) (
00064 void *binding_op_element,
00065 const axis2_env_t *env);
00066
00067 woden_obj_types_t (AXIS2_CALL *
00068 type) (
00069 void *binding_op_element,
00070 const axis2_env_t *env);
00071
00078 axis2_status_t (AXIS2_CALL *
00079 set_ref) (
00080 void *iface_op_ele,
00081 const axis2_env_t *env,
00082 axis2_qname_t *qname);
00083
00084 axis2_qname_t *(AXIS2_CALL *
00085 get_ref) (
00086 void *iface_op_ele,
00087 const axis2_env_t *env);
00088
00095 void *(AXIS2_CALL *
00096 get_interface_op_element) (
00097 void *iface_op_ele,
00098 const axis2_env_t *env);
00099
00100 axis2_status_t (AXIS2_CALL *
00101 add_binding_msg_ref_element) (
00102 void *iface_op_ele,
00103 const axis2_env_t *env,
00104 void *msg_ref);
00105
00106 axis2_status_t (AXIS2_CALL *
00107 remove_binding_msg_ref_element) (
00108 void *iface_op_ele,
00109 const axis2_env_t *env,
00110 void *msg_ref);
00111
00112 axis2_array_list_t *(AXIS2_CALL *
00113 get_binding_msg_ref_elements) (
00114 void *iface_op_ele,
00115 const axis2_env_t *env);
00116
00117 axis2_status_t (AXIS2_CALL *
00118 add_binding_fault_ref_element) (
00119 void *iface_op_ele,
00120 const axis2_env_t *env,
00121 void *fault_ref);
00122
00123 axis2_status_t (AXIS2_CALL *
00124 remove_binding_fault_ref_element) (
00125 void *iface_op_ele,
00126 const axis2_env_t *env,
00127 void *fault_ref);
00128
00129 axis2_array_list_t *(AXIS2_CALL *
00130 get_binding_fault_ref_elements) (
00131 void *iface_op_ele,
00132 const axis2_env_t *env);
00133
00134
00135 };
00136
00137 union woden_binding_op_element_base
00138 {
00139 woden_documentable_element_t documentable_element;
00140 woden_configurable_element_t configurable_element;
00141 woden_nested_element_t nested_element;
00142 };
00143
00144 struct woden_binding_op_element
00145 {
00146 woden_binding_op_element_base_t base;
00147 woden_binding_op_element_ops_t *ops;
00148 };
00149
00150 AXIS2_EXTERN woden_binding_op_element_t * AXIS2_CALL
00151 woden_binding_op_element_create(
00152 const axis2_env_t *env);
00153
00154
00155 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00156 woden_binding_op_element_resolve_methods(
00157 woden_binding_op_element_t *binding_op_element,
00158 const axis2_env_t *env,
00159 axis2_hash_t *methods);
00160
00161
00162 #define WODEN_BINDING_OP_ELEMENT_FREE(binding_op_element, env) \
00163 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00164 free (binding_op_element, env))
00165
00166 #define WODEN_BINDING_OP_ELEMENT_TYPE(binding_op_element, env) \
00167 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00168 type (binding_op_element, env))
00169
00170 #define WODEN_BINDING_OP_ELEMENT_SET_REF(binding_op_element, env, qname) \
00171 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00172 set_ref (binding_op_element, env, qname))
00173
00174 #define WODEN_BINDING_OP_ELEMENT_GET_REF(binding_op_element, env) \
00175 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00176 get_ref (binding_op_element, env))
00177
00178 #define WODEN_BINDING_OP_ELEMENT_GET_INTERFACE_OP_ELEMENT(binding_op_element, env) \
00179 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00180 get_interface_op_element (binding_op_element, env))
00181
00182 #define WODEN_BINDING_OP_ELEMENT_ADD_BINDING_MSG_REF_ELEMENT(binding_op_element, env, msg_ref) \
00183 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00184 add_binding_msg_ref_element (binding_op_element, env, msg_ref))
00185
00186 #define WODEN_BINDING_OP_ELEMENT_REMOVE_MSG_REF_ELEMENT(binding_op_element, env, msg_ref) \
00187 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00188 remove_msg_ref_element (binding_op_element, env, msg_ref))
00189
00190 #define WODEN_BINDING_OP_ELEMENT_GET_BINDING_MSG_REF_ELEMENTS(binding_op_element, env) \
00191 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00192 get_binding_msg_ref_elements (binding_op_element, env))
00193
00194 #define WODEN_BINDING_OP_ELEMENT_ADD_BINDING_FAULT_REF_ELEMENT(binding_op_element, env, fault_ref) \
00195 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00196 add_binding_fault_ref_element (binding_op_element, env, fault_ref))
00197
00198 #define WODEN_BINDING_OP_ELEMENT_REMOVE_FAULT_REF_ELEMENT(binding_op_element, env, fault_ref) \
00199 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00200 remove_fault_ref_element (binding_op_element, env, fault_ref))
00201
00202 #define WODEN_BINDING_OP_ELEMENT_GET_BINDING_FAULT_REF_ELEMENTS(binding_op_element, env) \
00203 (((woden_binding_op_element_t *) binding_op_element)->ops->\
00204 get_binding_fault_ref_elements (binding_op_element, env))
00205
00206
00207
00208
00209
00211 #ifdef __cplusplus
00212 }
00213 #endif
00214 #endif