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

woden_soap_module_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_SOAP_MODULE_ELEMENT_H
00018 #define WODEN_SOAP_MODULE_ELEMENT_H
00019 
00028 #include <axis2_allocator.h>
00029 #include <axis2_env.h>
00030 #include <axis2_error.h>
00031 #include <axis2_string.h>
00032 #include <axis2_utils.h>
00033 #include <axis2_hash.h>
00034 #include <axis2_qname.h>
00035 #include <axis2_uri.h>
00036 #include <axis2_array_list.h>
00037 #include <woden.h>
00038 #include <woden_ext_element.h>
00039 #include <woden_attr_extensible.h>
00040 #include <woden_element_extensible.h>
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00047 typedef struct woden_soap_module_element woden_soap_module_element_t;
00048 typedef struct woden_soap_module_element_ops woden_soap_module_element_ops_t;
00049 typedef union woden_soap_module_element_base woden_soap_module_element_base_t;
00050 
00056 struct woden_soap_module_element_ops
00057 {
00062     axis2_status_t (AXIS2_CALL *
00063     free) (
00064             void *soap_module_element,
00065             const axis2_env_t *env);
00066  
00067     woden_obj_types_t (AXIS2_CALL *
00068     type) (
00069             void *soap_module_element,
00070             const axis2_env_t *env);
00071 
00072     axis2_status_t (AXIS2_CALL *
00073     set_ref) (
00074             void *soap_module_element,
00075             const axis2_env_t *env,
00076             axis2_uri_t *uri);
00077 
00078     axis2_uri_t *(AXIS2_CALL *
00079     get_ref) (
00080             void *soap_module_element,
00081             const axis2_env_t *env); 
00082  
00083     axis2_status_t (AXIS2_CALL *
00084     set_parent_element) (
00085             void *soap_module_element,
00086             const axis2_env_t *env,
00087             void *wsdl_el);
00088 
00089     void *(AXIS2_CALL *
00090     get_parent_element) (
00091             void *soap_module_element,
00092             const axis2_env_t *env); 
00093   
00094     axis2_status_t (AXIS2_CALL *
00095     add_documentation_element) (
00096             void *soap_module_element,
00097             const axis2_env_t *env,
00098             void *doc_el);
00099 
00100     axis2_array_list_t *(AXIS2_CALL *
00101     get_documentation_elements) (
00102             void *soap_module_element,
00103             const axis2_env_t *env);
00104  
00105 };
00106 
00107 union woden_soap_module_element_base
00108 {
00109     woden_ext_element_t ext_element;
00110     woden_attr_extensible_t attr_extensible;
00111     woden_element_extensible_t element_extensible;
00112 };
00113 
00114 struct woden_soap_module_element
00115 {
00116     woden_soap_module_element_base_t base;
00117     woden_soap_module_element_ops_t *ops;
00118 };
00119 
00120 AXIS2_EXTERN woden_soap_module_element_t * AXIS2_CALL
00121 woden_soap_module_element_create(
00122         const axis2_env_t *env);
00123 
00124 /************************Woden C Internal Methods******************************/
00125 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00126 woden_soap_module_element_resolve_methods(
00127         woden_soap_module_element_t *soap_module_element,
00128         const axis2_env_t *env,
00129         axis2_hash_t *methods);
00130 /************************End of Woden C Internal Methods***********************/
00131 
00132 #define WODEN_SOAP_MODULE_ELEMENT_FREE(soap_module_element, env) \
00133       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00134          free (soap_module_element, env))
00135 
00136 #define WODEN_SOAP_MODULE_ELEMENT_TYPE(soap_module_element, env) \
00137       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00138          type (soap_module_element, env))
00139 
00140 #define WODEN_SOAP_MODULE_ELEMENT_SET_REF(soap_module_element, env, uri) \
00141       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00142          set_ref (soap_module_element, env, uri))
00143 
00144 #define WODEN_SOAP_MODULE_ELEMENT_GET_REF(soap_module_element, env) \
00145       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00146         get_ref  (soap_module_element, env))
00147 
00148 #define WODEN_SOAP_MODULE_ELEMENT_SET_PARENT_ELEMENT(soap_module_element, env, wsdl_el) \
00149       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00150          set_parent_element (soap_module_element, env, wsdl_el))
00151 
00152 #define WODEN_SOAP_MODULE_ELEMENT_GET_PARENT_ELEMENT(soap_module_element, env) \
00153       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00154         get_parent_element  (soap_module_element, env))
00155 
00156 #define WODEN_SOAP_MODULE_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_module_element, env, doc_el) \
00157       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00158         add_documentation_element  (soap_module_element, env, doc_el))
00159 
00160 #define WODEN_SOAP_MODULE_ELEMENT_GET_DOCUMENTATION_ELEMENTS(soap_module_element, env) \
00161       (((woden_soap_module_element_t *) soap_module_element)->ops->\
00162         get_documentation_elements  (soap_module_element, env))
00163 
00165 #ifdef __cplusplus
00166 }
00167 #endif
00168 #endif /* WODEN_SOAP_MODULE_ELEMENT_H */

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