00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_INTERFACE_MSG_REF_H
00019 #define WODEN_INTERFACE_MSG_REF_H
00020
00027 #include <woden.h>
00028 #include <woden_interface_msg_ref_element.h>
00029 #include <woden_nested_configurable.h>
00030 #include <axis2_qname.h>
00031
00037 typedef union woden_interface_msg_ref_base woden_interface_msg_ref_base_t;
00038 typedef struct woden_interface_msg_ref woden_interface_msg_ref_t;
00039 typedef struct woden_interface_msg_ref_ops woden_interface_msg_ref_ops_t;
00040
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 struct woden_interface_msg_ref_ops
00048 {
00053 axis2_status_t (AXIS2_CALL *
00054 free) (void *interface_msg_ref,
00055 const axis2_env_t *env);
00056
00057 axis2_hash_t *(AXIS2_CALL *
00058 super_objs) (void *interface_msg_ref,
00059 const axis2_env_t *env);
00060
00061 woden_obj_types_t (AXIS2_CALL *
00062 type) (void *interface_msg_ref,
00063 const axis2_env_t *env);
00067 struct woden_nested_configurable *(AXIS2_CALL *
00068 get_base_impl) (
00069 void *interface_msg_ref,
00070 const axis2_env_t *env);
00071
00072 void *(AXIS2_CALL *
00073 get_msg_label) (
00074 void *interface_msg_ref,
00075 const axis2_env_t *env);
00076
00077 void *(AXIS2_CALL *
00078 get_direction) (
00079 void *interface_msg_ref,
00080 const axis2_env_t *env);
00081
00089 axis2_char_t *(AXIS2_CALL *
00090 get_msg_content_model) (
00091 void *interface_msg_ref,
00092 const axis2_env_t *env);
00093
00094 void *(AXIS2_CALL *
00095 get_element_declaration) (
00096 void *interface_msg_ref,
00097 const axis2_env_t *env);
00098
00099 void *(AXIS2_CALL *
00100 to_element) (
00101 void *interface_msg_ref,
00102 const axis2_env_t *env);
00103
00104
00105
00106
00107 axis2_status_t (AXIS2_CALL *
00108 set_element_declaration) (
00109 void *interface_msg_ref,
00110 const axis2_env_t *env,
00111 void *element);
00112
00113 axis2_status_t (AXIS2_CALL *
00114 set_types) (
00115 void *interface_msg_ref,
00116 const axis2_env_t *env,
00117 void *types);
00118 };
00119
00120 union woden_interface_msg_ref_base
00121 {
00122 woden_nested_configurable_t nested_configurable;
00123 woden_interface_msg_ref_element_t interface_msg_ref_element;
00124 };
00125
00126 struct woden_interface_msg_ref
00127 {
00128 woden_interface_msg_ref_base_t base;
00129 woden_interface_msg_ref_ops_t *ops;
00130 };
00131
00132 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00133 woden_interface_msg_ref_create(
00134 const axis2_env_t *env);
00135
00136
00137
00138 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00139 woden_interface_msg_ref_to_interface_msg_ref_element(
00140 void *interface_msg_ref,
00141 const axis2_env_t *env);
00142
00143 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00144 woden_interface_msg_ref_to_nested_configurable(
00145 void *interface_msg_ref,
00146 const axis2_env_t *env);
00147
00148 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00149 woden_interface_msg_ref_to_configurable(
00150 void *interface_msg_ref,
00151 const axis2_env_t *env);
00152
00153 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00154 woden_interface_msg_ref_to_nested_element(
00155 void *interface_msg_ref,
00156 const axis2_env_t *env);
00157
00158 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00159 woden_interface_msg_ref_to_configurable_element(
00160 void *interface_msg_ref,
00161 const axis2_env_t *env);
00162
00163 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00164 woden_interface_msg_ref_to_documentable_element(
00165 void *interface_msg_ref,
00166 const axis2_env_t *env);
00167
00168 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00169 woden_interface_msg_ref_to_documentable(
00170 void *interface_msg_ref,
00171 const axis2_env_t *env);
00172
00173 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00174 woden_interface_msg_ref_to_attr_extensible(
00175 void *interface_msg_ref,
00176 const axis2_env_t *env);
00177
00178 AXIS2_EXTERN woden_interface_msg_ref_t * AXIS2_CALL
00179 woden_interface_msg_ref_to_element_extensible(
00180 void *interface_msg_ref,
00181 const axis2_env_t *env);
00182
00183
00184 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00185 woden_interface_msg_ref_resolve_methods(
00186 woden_interface_msg_ref_t *interface_msg_ref,
00187 const axis2_env_t *env,
00188 woden_interface_msg_ref_t *interface_msg_ref_impl,
00189 axis2_hash_t *methods);
00190
00191
00192 #define WODEN_INTERFACE_MSG_REF_FREE(interface_msg_ref, env) \
00193 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00194 free(interface_msg_ref, env))
00195
00196 #define WODEN_INTERFACE_MSG_REF_SUPER_OBJS(interface_msg_ref, env) \
00197 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00198 super_objs(interface_msg_ref, env))
00199
00200 #define WODEN_INTERFACE_MSG_REF_TYPE(interface_msg_ref, env) \
00201 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00202 type(interface_msg_ref, env))
00203
00204 #define WODEN_INTERFACE_MSG_REF_GET_BASE_IMPL(interface_msg_ref, env) \
00205 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00206 get_base_impl(interface_msg_ref, env))
00207
00208 #define WODEN_INTERFACE_MSG_REF_GET_MESSAGE_LABEL(interface_msg_ref, env) \
00209 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00210 get_msg_label(interface_msg_ref, env))
00211
00212 #define WODEN_INTERFACE_MSG_REF_GET_DIRECTION(interface_msg_ref, env) \
00213 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00214 get_direction(interface_msg_ref, env))
00215
00216 #define WODEN_INTERFACE_MSG_REF_GET_MSG_CONTENT_MODEL(interface_msg_ref, env) \
00217 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00218 get_msg_content_model(interface_msg_ref, env))
00219
00220 #define WODEN_INTERFACE_MSG_REF_GET_ELEMENT_DECLARATION(interface_msg_ref, env) \
00221 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00222 get_element_declaration(interface_msg_ref, env))
00223
00224 #define WODEN_INTERFACE_MSG_REF_TO_ELEMENT(interface_msg_ref, env) \
00225 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00226 to_element(interface_msg_ref, env))
00227
00228 #define WODEN_INTERFACE_MSG_REF_SET_ELEMENT_DECLARATION(interface_msg_ref, env, element) \
00229 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00230 set_element_declaration(interface_msg_ref, env, element))
00231
00232 #define WODEN_INTERFACE_MSG_REF_SET_TYPES(interface_msg_ref, env, types) \
00233 (((woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
00234 set_types(interface_msg_ref, env, types))
00235
00237 #ifdef __cplusplus
00238 }
00239 #endif
00240 #endif