woden_interface_op.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_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 /***************************Woden C Internal Methods***************************/
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 /************************End of Woden C Internal Methods***********************/
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 /* WODEN_INTERFACE_OP_H */

Generated on Thu Oct 26 21:11:24 2006 for Axis2/C by  doxygen 1.4.7