Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

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

Generated on Fri Jun 16 18:02:32 2006 for Axis2/C by  doxygen 1.4.2