woden_interface_msg_ref.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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  *  Non-API implementation methods
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 /***************************Woden C Internal Methods***************************/
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 /************************End of Woden C Internal Methods***********************/
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 /* WODEN_INTERFACE_MSG_REF_H */

Generated on Thu Aug 31 17:32:37 2006 for Axis2/C by  doxygen 1.4.6