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