woden_interface_op_element.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_ELEMENT_H
00019 #define WODEN_INTERFACE_OP_ELEMENT_H
00020 
00030 #include <axis2_allocator.h>
00031 #include <axis2_env.h>
00032 #include <axis2_error.h>
00033 #include <axis2_string.h>
00034 #include <axis2_utils.h>
00035 #include <axis2_hash.h>
00036 #include <axis2_qname.h>
00037 #include <axis2_uri.h>
00038 #include <axis2_array_list.h>
00039 #include <woden.h>
00040 #include <woden_documentable_element.h>
00041 #include <woden_configurable_element.h>
00042 #include <woden_nested_element.h>
00043 
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048 
00049 typedef struct woden_interface_op_element woden_interface_op_element_t;
00050 typedef struct woden_interface_op_element_ops woden_interface_op_element_ops_t;
00051 typedef union woden_interface_op_element_base woden_interface_op_element_base_t;
00052 
00058 struct woden_interface_op_element_ops
00059 {
00064     axis2_status_t (AXIS2_CALL *
00065     free) (
00066             void *interface_op_element,
00067             const axis2_env_t *env);
00068  
00069     woden_obj_types_t (AXIS2_CALL *
00070     type) (
00071             void *interface_op_element,
00072             const axis2_env_t *env);
00073     
00074     axis2_status_t (AXIS2_CALL *
00075     set_qname) (
00076             void *iface_op_ele,
00077             const axis2_env_t *env,
00078             axis2_qname_t *qname);
00079 
00080     axis2_qname_t *(AXIS2_CALL *
00081     get_qname) (
00082             void *iface_op_ele,
00083             const axis2_env_t *env);
00084  
00085     axis2_status_t (AXIS2_CALL *
00086     set_pattern) (
00087             void *iface_op_ele,
00088             const axis2_env_t *env,
00089             axis2_uri_t *uri);
00090     
00091     axis2_uri_t *(AXIS2_CALL *
00092     get_pattern) (
00093             void *iface_op_ele,
00094             const axis2_env_t *env);
00095  
00096     axis2_status_t (AXIS2_CALL *
00097     add_style_uri) (
00098             void *iface_op_ele,
00099             const axis2_env_t *env,
00100             axis2_uri_t *uri);
00101 
00102     axis2_status_t (AXIS2_CALL *
00103     remove_style_uri) (
00104             void *iface_op_ele,
00105             const axis2_env_t *env,
00106             axis2_uri_t *uri);
00107     
00108     axis2_uri_t *(AXIS2_CALL *
00109     get_style) (
00110             void *iface_op_ele,
00111             const axis2_env_t *env);
00112     
00113     axis2_status_t (AXIS2_CALL *
00114     add_interface_msg_ref_element) (
00115             void *iface_op_ele,
00116             const axis2_env_t *env,
00117             void *msg_ref);
00118 
00119     axis2_status_t (AXIS2_CALL *
00120     remove_interface_msg_ref_element) (
00121             void *iface_op_ele,
00122             const axis2_env_t *env,
00123             void *msg_ref);
00124  
00125     axis2_array_list_t *(AXIS2_CALL *
00126     get_interface_msg_ref_elements) (
00127             void *iface_op_ele,
00128             const axis2_env_t *env);
00129      
00130     axis2_status_t (AXIS2_CALL *
00131     add_interface_fault_ref_element) (
00132             void *iface_op_ele,
00133             const axis2_env_t *env,
00134             void *fault_ref);
00135 
00136     axis2_status_t (AXIS2_CALL *
00137     remove_interface_fault_ref_element) (
00138             void *iface_op_ele,
00139             const axis2_env_t *env,
00140             void *fault_ref);
00141  
00142     axis2_array_list_t *(AXIS2_CALL *
00143     get_interface_fault_ref_elements) (
00144             void *iface_op_ele,
00145             const axis2_env_t *env);
00146     
00147 
00148 };
00149 
00150 union woden_interface_op_element_base
00151 {
00152     woden_documentable_element_t documentable_element;
00153     woden_configurable_element_t configurable_element;
00154     woden_nested_element_t nested_element;
00155 };
00156 
00157 struct woden_interface_op_element
00158 {
00159     woden_interface_op_element_base_t base;
00160     woden_interface_op_element_ops_t *ops;
00161 };
00162 
00163 AXIS2_EXTERN woden_interface_op_element_t * AXIS2_CALL
00164 woden_interface_op_element_create(
00165         const axis2_env_t *env);
00166 
00167 /************************Woden C Internal Methods******************************/
00168 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00169 woden_interface_op_element_resolve_methods(
00170         woden_interface_op_element_t *interface_op_element,
00171         const axis2_env_t *env,
00172         axis2_hash_t *methods);
00173 /************************End of Woden C Internal Methods***********************/
00174 
00175 #define WODEN_INTERFACE_OP_ELEMENT_FREE(interface_op_element, env) \
00176       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00177          free (interface_op_element, env))
00178 
00179 #define WODEN_INTERFACE_OP_ELEMENT_TYPE(interface_op_element, env) \
00180       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00181          type (interface_op_element, env))
00182 
00183 #define WODEN_INTERFACE_OP_ELEMENT_SET_QNAME(interface_op_element, env, qname) \
00184       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00185          set_qname (interface_op_element, env, qname))
00186 
00187 #define WODEN_INTERFACE_OP_ELEMENT_GET_QNAME(interface_op_element, env) \
00188       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00189         get_qname  (interface_op_element, env))
00190 
00191 #define WODEN_INTERFACE_OP_ELEMENT_SET_PATTERN(interface_op_element, env, uri) \
00192       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00193          set_pattern (interface_op_element, env, uri))
00194 
00195 #define WODEN_INTERFACE_OP_ELEMENT_GET_PATTERN(interface_op_element, env) \
00196       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00197          get_pattern (interface_op_element, env))
00198 
00199 #define WODEN_INTERFACE_OP_ELEMENT_ADD_STYLE_URI(interface_op_element, env, uri) \
00200       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00201         add_style_uri  (interface_op_element, env, uri))
00202 
00203 #define WODEN_INTERFACE_OP_ELEMENT_REMOVE_STYLE_URI(interface_op_element, env, uri) \
00204       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00205         remove_style_uri  (interface_op_element, env, uri))
00206 
00207 #define WODEN_INTERFACE_OP_ELEMENT_GET_STYLE(interface_op_element, env) \
00208       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00209         get_style  (interface_op_element, env))
00210 
00211 #define WODEN_INTERFACE_OP_ELEMENT_ADD_INTERFACE_MSG_REF_ELEMENT(interface_op_element, env, msg_ref) \
00212       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00213          add_interface_msg_ref_element (interface_op_element, env, msg_ref))
00214 
00215 #define WODEN_INTERFACE_OP_ELEMENT_REMOVE_MSG_REF_ELEMENT(interface_op_element, env, msg_ref) \
00216       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00217          remove_msg_ref_element (interface_op_element, env, msg_ref))
00218 
00219 #define WODEN_INTERFACE_OP_ELEMENT_GET_INTERFACE_MSG_REF_ELEMENTS(interface_op_element, env) \
00220       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00221          get_interface_msg_ref_elements (interface_op_element, env))
00222 
00223 #define WODEN_INTERFACE_OP_ELEMENT_ADD_INTERFACE_FAULT_REF_ELEMENT(interface_op_element, env, fault_ref) \
00224       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00225          add_interface_fault_ref_element (interface_op_element, env, fault_ref))
00226 
00227 #define WODEN_INTERFACE_OP_ELEMENT_REMOVE_FAULT_REF_ELEMENT(interface_op_element, env, fault_ref) \
00228       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00229          remove_fault_ref_element (interface_op_element, env, fault_ref))
00230 
00231 #define WODEN_INTERFACE_OP_ELEMENT_GET_INTERFACE_FAULT_REF_ELEMENTS(interface_op_element, env) \
00232       (((woden_interface_op_element_t *) interface_op_element)->ops->\
00233          get_interface_fault_ref_elements (interface_op_element, env))
00234 
00235 
00236 
00237 
00238 
00240 #ifdef __cplusplus
00241 }
00242 #endif
00243 #endif /* WODEN_INTERFACE_OP_ELEMENT_H */

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