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