woden_interface_op.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef WODEN_INTERFACE_OP_H
00019 #define WODEN_INTERFACE_OP_H
00020 
00027 #include <woden.h>
00028 #include <woden_interface_op_element.h>
00029 #include <woden_nested_configurable.h>
00030 #include <axis2_qname.h>
00031 
00037 typedef union woden_interface_op_base woden_interface_op_base_t;
00038 typedef struct woden_interface_op woden_interface_op_t;
00039 typedef struct woden_interface_op_ops woden_interface_op_ops_t;
00040 
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00047 struct woden_interface_op_ops
00048 {
00053     axis2_status_t (AXIS2_CALL *
00054     free) (void *interface_op,
00055             const axis2_env_t *env);
00056 
00057     axis2_hash_t *(AXIS2_CALL *
00058     super_objs) (void *interface_op,
00059             const axis2_env_t *env);
00060 
00061     woden_obj_types_t (AXIS2_CALL *
00062     type) (void *interface_op,
00063             const axis2_env_t *env);
00067     struct woden_nested_configurable *(AXIS2_CALL *
00068     get_base_impl) (
00069             void *interface_op,
00070             const axis2_env_t *env);
00071 
00072     axis2_qname_t *(AXIS2_CALL *
00073     get_qname) (
00074             void *interface_op,
00075             const axis2_env_t *env);
00076 
00077     axis2_uri_t *(AXIS2_CALL *
00078     get_msg_exchange_pattern) (
00079             void *interface_op,
00080             const axis2_env_t *env);
00081 
00082     axis2_array_list_t *(AXIS2_CALL *
00083     get_interface_msg_refs) (
00084             void *interface_op,
00085             const axis2_env_t *env);
00086 
00087     axis2_array_list_t *(AXIS2_CALL *
00088     get_interface_fault_refs) (
00089             void *interface_op,
00090             const axis2_env_t *env);
00091 
00092     axis2_array_list_t *(AXIS2_CALL *
00093     get_style) (
00094             void *interface_op,
00095             const axis2_env_t *env);
00096 
00097     void *(AXIS2_CALL *
00098     to_element)  (
00099             void *interface_op,
00100             const axis2_env_t *env);
00101 
00102 };
00103 
00104 union woden_interface_op_base
00105 {
00106     woden_nested_configurable_t nested_configurable;
00107     woden_interface_op_element_t interface_op_element;
00108 };
00109 
00110 struct woden_interface_op
00111 {
00112     woden_interface_op_base_t base;
00113     woden_interface_op_ops_t *ops;
00114 };
00115 
00116 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00117 woden_interface_op_create(
00118         const axis2_env_t *env);
00119 
00120 
00121 /***************************Woden C Internal Methods***************************/
00122 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00123 woden_interface_op_to_interface_op_element(
00124         void *interface_op,
00125         const axis2_env_t *env);
00126 
00127 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00128 woden_interface_op_to_nested_configurable(
00129         void *interface_op,
00130         const axis2_env_t *env);
00131 
00132 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00133 woden_interface_op_to_nested_component(
00134         void *interface_op,
00135         const axis2_env_t *env);
00136 
00137 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00138 woden_interface_op_to_configurable(
00139         void *interface_op,
00140         const axis2_env_t *env);
00141 
00142 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00143 woden_interface_op_to_nested_element(
00144         void *interface_op,
00145         const axis2_env_t *env);
00146 
00147 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00148 woden_interface_op_to_configurable_element(
00149         void *interface_op,
00150         const axis2_env_t *env);
00151 
00152 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00153 woden_interface_op_to_documentable_element(
00154         void *interface_op,
00155         const axis2_env_t *env);
00156 
00157 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00158 woden_interface_op_to_documentable(
00159         void *interface_op,
00160         const axis2_env_t *env);
00161 
00162 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00163 woden_interface_op_to_attr_extensible(
00164         void *interface_op,
00165         const axis2_env_t *env);
00166 
00167 AXIS2_EXTERN woden_interface_op_t * AXIS2_CALL
00168 woden_interface_op_to_element_extensible(
00169         void *interface_op,
00170         const axis2_env_t *env);
00171 
00172 
00173 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00174 woden_interface_op_resolve_methods(
00175         woden_interface_op_t *interface_op,
00176         const axis2_env_t *env,
00177         woden_interface_op_t *interface_op_impl,
00178         axis2_hash_t *methods);
00179 /************************End of Woden C Internal Methods***********************/
00180 
00181 #define WODEN_INTERFACE_OP_FREE(interface_op, env) \
00182       (((woden_interface_op_t *) interface_op)->ops->free(interface_op, env))
00183 
00184 #define WODEN_INTERFACE_OP_SUPER_OBJS(interface_op, env) \
00185       (((woden_interface_op_t *) interface_op)->ops->super_objs(interface_op, env))
00186 
00187 #define WODEN_INTERFACE_OP_TYPE(interface_op, env) \
00188       (((woden_interface_op_t *) interface_op)->ops->type(interface_op, env))
00189 
00190 #define WODEN_INTERFACE_OP_GET_BASE_IMPL(interface_op, env) \
00191       (((woden_interface_op_t *) interface_op)->ops->get_base_impl(interface_op, env))
00192 
00193 #define WODEN_INTERFACE_OP_GET_QNAME(interface_op, env) \
00194       (((woden_interface_op_t *) interface_op)->ops->\
00195          get_qname(interface_op, env))
00196 
00197 #define WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op, env) \
00198       (((woden_interface_op_t *) interface_op)->ops->\
00199          get_msg_exchange_pattern(interface_op, env))
00200 
00201 #define WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env) \
00202       (((woden_interface_op_t *) interface_op)->ops->\
00203          get_interface_msg_refs(interface_op, env))
00204 
00205 #define WODEN_INTERFACE_OP_GET_INTERFACE_FAULT_REFS(interface_op, env) \
00206       (((woden_interface_op_t *) interface_op)->ops->\
00207          get_interface_fault_refs(interface_op, env))
00208 
00209 #define WODEN_INTERFACE_OP_GET_STYLE(interface_op, env) \
00210       (((woden_interface_op_t *) interface_op)->ops->\
00211          get_style(interface_op, env))
00212 
00213 #define WODEN_INTERFACE_OP_TO_ELEMENT(interface_op, env) \
00214       (((woden_interface_op_t *) interface_op)->ops->\
00215          to_element(interface_op, env))
00216 
00218 #ifdef __cplusplus
00219 }
00220 #endif
00221 #endif /* WODEN_INTERFACE_OP_H */

Generated on Wed Dec 20 20:34:50 2006 for Axis2/C by  doxygen 1.5.1