00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_INTERFACE_OP_H
00019 #define WODEN_INTERFACE_OP_H
00020
00027 #include <woden.h>
00028 #include <woden_interface_op_element.h>
00029 #include <woden_nested_configurable.h>
00030 #include <axis2_qname.h>
00031
00037 typedef union woden_interface_op_base woden_interface_op_base_t;
00038 typedef struct woden_interface_op woden_interface_op_t;
00039 typedef struct woden_interface_op_ops woden_interface_op_ops_t;
00040
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 struct woden_interface_op_ops
00048 {
00053 axis2_status_t (AXIS2_CALL *
00054 free) (void *interface_op,
00055 const axis2_env_t *env);
00056
00057 axis2_hash_t *(AXIS2_CALL *
00058 super_objs) (void *interface_op,
00059 const axis2_env_t *env);
00060
00061 woden_obj_types_t (AXIS2_CALL *
00062 type) (void *interface_op,
00063 const axis2_env_t *env);
00067 struct woden_nested_configurable *(AXIS2_CALL *
00068 get_base_impl) (
00069 void *interface_op,
00070 const axis2_env_t *env);
00071
00072 axis2_qname_t *(AXIS2_CALL *
00073 get_qname) (
00074 void *interface_op,
00075 const axis2_env_t *env);
00076
00077 axis2_uri_t *(AXIS2_CALL *
00078 get_msg_exchange_pattern) (
00079 void *interface_op,
00080 const axis2_env_t *env);
00081
00082 axis2_array_list_t *(AXIS2_CALL *
00083 get_interface_msg_refs) (
00084 void *interface_op,
00085 const axis2_env_t *env);
00086
00087 axis2_array_list_t *(AXIS2_CALL *
00088 get_interface_fault_refs) (
00089 void *interface_op,
00090 const axis2_env_t *env);
00091
00092 axis2_array_list_t *(AXIS2_CALL *
00093 get_style) (
00094 void *interface_op,
00095 const axis2_env_t *env);
00096
00097 void *(AXIS2_CALL *
00098 to_element) (
00099 void *interface_op,
00100 const axis2_env_t *env);
00101
00102 };
00103
00104 union woden_interface_op_base
00105 {
00106 woden_nested_configurable_t nested_configurable;
00107 woden_interface_op_element_t interface_op_element;
00108 };
00109
00110 struct woden_interface_op
00111 {
00112 woden_interface_op_base_t base;
00113 woden_interface_op_ops_t *ops;
00114 };
00115
00116 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00117 woden_interface_op_create(
00118 const axis2_env_t *env);
00119
00120
00121
00122 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00123 woden_interface_op_to_interface_op_element(
00124 void *interface_op,
00125 const axis2_env_t *env);
00126
00127 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00128 woden_interface_op_to_nested_configurable(
00129 void *interface_op,
00130 const axis2_env_t *env);
00131
00132 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00133 woden_interface_op_to_nested_component(
00134 void *interface_op,
00135 const axis2_env_t *env);
00136
00137 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00138 woden_interface_op_to_configurable(
00139 void *interface_op,
00140 const axis2_env_t *env);
00141
00142 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00143 woden_interface_op_to_nested_element(
00144 void *interface_op,
00145 const axis2_env_t *env);
00146
00147 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00148 woden_interface_op_to_configurable_element(
00149 void *interface_op,
00150 const axis2_env_t *env);
00151
00152 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00153 woden_interface_op_to_documentable_element(
00154 void *interface_op,
00155 const axis2_env_t *env);
00156
00157 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00158 woden_interface_op_to_documentable(
00159 void *interface_op,
00160 const axis2_env_t *env);
00161
00162 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00163 woden_interface_op_to_attr_extensible(
00164 void *interface_op,
00165 const axis2_env_t *env);
00166
00167 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00168 woden_interface_op_to_element_extensible(
00169 void *interface_op,
00170 const axis2_env_t *env);
00171
00172
00173 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00174 woden_interface_op_resolve_methods(
00175 woden_interface_op_t *interface_op,
00176 const axis2_env_t *env,
00177 woden_interface_op_t *interface_op_impl,
00178 axis2_hash_t *methods);
00179
00180
00181 #define WODEN_INTERFACE_OP_FREE(interface_op, env) \
00182 (((woden_interface_op_t *) interface_op)->ops->free(interface_op, env))
00183
00184 #define WODEN_INTERFACE_OP_SUPER_OBJS(interface_op, env) \
00185 (((woden_interface_op_t *) interface_op)->ops->super_objs(interface_op, env))
00186
00187 #define WODEN_INTERFACE_OP_TYPE(interface_op, env) \
00188 (((woden_interface_op_t *) interface_op)->ops->type(interface_op, env))
00189
00190 #define WODEN_INTERFACE_OP_GET_BASE_IMPL(interface_op, env) \
00191 (((woden_interface_op_t *) interface_op)->ops->get_base_impl(interface_op, env))
00192
00193 #define WODEN_INTERFACE_OP_GET_QNAME(interface_op, env) \
00194 (((woden_interface_op_t *) interface_op)->ops->\
00195 get_qname(interface_op, env))
00196
00197 #define WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op, env) \
00198 (((woden_interface_op_t *) interface_op)->ops->\
00199 get_msg_exchange_pattern(interface_op, env))
00200
00201 #define WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env) \
00202 (((woden_interface_op_t *) interface_op)->ops->\
00203 get_interface_msg_refs(interface_op, env))
00204
00205 #define WODEN_INTERFACE_OP_GET_INTERFACE_FAULT_REFS(interface_op, env) \
00206 (((woden_interface_op_t *) interface_op)->ops->\
00207 get_interface_fault_refs(interface_op, env))
00208
00209 #define WODEN_INTERFACE_OP_GET_STYLE(interface_op, env) \
00210 (((woden_interface_op_t *) interface_op)->ops->\
00211 get_style(interface_op, env))
00212
00213 #define WODEN_INTERFACE_OP_TO_ELEMENT(interface_op, env) \
00214 (((woden_interface_op_t *) interface_op)->ops->\
00215 to_element(interface_op, env))
00216
00218 #ifdef __cplusplus
00219 }
00220 #endif
00221 #endif