woden_soap_header_block_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_HEADER_BLOCK_ELEMENT_H
00018 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_H
00019 
00027 #include <axis2_allocator.h>
00028 #include <axis2_env.h>
00029 #include <axis2_error.h>
00030 #include <axis2_string.h>
00031 #include <axis2_utils.h>
00032 #include <axis2_hash.h>
00033 #include <axis2_qname.h>
00034 #include <axis2_uri.h>
00035 #include <axis2_array_list.h>
00036 #include <woden.h>
00037 #include <woden_ext_element.h>
00038 #include <woden_attr_extensible.h>
00039 #include <woden_element_extensible.h>
00040 
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045 
00046 typedef struct woden_soap_header_block_element woden_soap_header_block_element_t;
00047 typedef struct woden_soap_header_block_element_ops woden_soap_header_block_element_ops_t;
00048 typedef union woden_soap_header_block_element_base woden_soap_header_block_element_base_t;
00049 
00055 struct woden_soap_header_block_element_ops
00056 {
00061     axis2_status_t (AXIS2_CALL *
00062     free) (
00063             void *soap_header_block_element,
00064             const axis2_env_t *env);
00065  
00066     woden_obj_types_t (AXIS2_CALL *
00067     type) (
00068             void *soap_header_block_element,
00069             const axis2_env_t *env);
00070 
00077     axis2_status_t (AXIS2_CALL *
00078     set_element_qname) (
00079             void *soap_header_block_element,
00080             const axis2_env_t *env,
00081             axis2_qname_t *qname);
00082 
00083     axis2_qname_t *(AXIS2_CALL *
00084     get_element_qname) (
00085             void *soap_header_block_element,
00086             const axis2_env_t *env); 
00087  
00098     void *(AXIS2_CALL *
00099     get_element) (
00100             void *soap_header_block_element,
00101             const axis2_env_t *env);
00102 
00103     axis2_status_t (AXIS2_CALL *
00104     set_must_understand) (
00105             void *soap_header_block_element,
00106             const axis2_env_t *env,
00107             axis2_bool_t understood); 
00108 
00109     axis2_bool_t (AXIS2_CALL *
00110     must_understand) (
00111             void *soap_header_block_element,
00112             const axis2_env_t *env);
00113   
00114     axis2_status_t (AXIS2_CALL *
00115     set_parent_element) (
00116             void *soap_header_block_element,
00117             const axis2_env_t *env,
00118             void *wsdl_el);
00119 
00120     void *(AXIS2_CALL *
00121     get_parent_element) (
00122             void *soap_header_block_element,
00123             const axis2_env_t *env); 
00124   
00125     axis2_status_t (AXIS2_CALL *
00126     add_documentation_element) (
00127             void *soap_header_block_element,
00128             const axis2_env_t *env,
00129             void *doc_el);
00130 
00131     axis2_array_list_t *(AXIS2_CALL *
00132     get_documentation_elements) (
00133             void *soap_header_block_element,
00134             const axis2_env_t *env);
00135  
00136 };
00137 
00138 union woden_soap_header_block_element_base
00139 {
00140     woden_ext_element_t ext_element;
00141     woden_attr_extensible_t attr_extensible;
00142     woden_element_extensible_t element_extensible;
00143 };
00144 
00145 struct woden_soap_header_block_element
00146 {
00147     woden_soap_header_block_element_base_t base;
00148     woden_soap_header_block_element_ops_t *ops;
00149 };
00150 
00151 AXIS2_EXTERN woden_soap_header_block_element_t * AXIS2_CALL
00152 woden_soap_header_block_element_create(
00153         const axis2_env_t *env);
00154 
00155 /************************Woden C Internal Methods******************************/
00156 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00157 woden_soap_header_block_element_resolve_methods(
00158         woden_soap_header_block_element_t *soap_header_block_element,
00159         const axis2_env_t *env,
00160         axis2_hash_t *methods);
00161 /************************End of Woden C Internal Methods***********************/
00162 
00163 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_FREE(soap_header_block_element, env) \
00164       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00165          free (soap_header_block_element, env))
00166 
00167 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_TYPE(soap_header_block_element, env) \
00168       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00169          type (soap_header_block_element, env))
00170 
00171 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_SET_ELEMENT_QNAME(soap_header_block_element, env, qname) \
00172       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00173          set_element_qname (soap_header_block_element, env, qname))
00174 
00175 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_GET_ELEMENT_QNAME(soap_header_block_element, env) \
00176       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00177         get_element_qname  (soap_header_block_element, env))
00178 
00179 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_GET_ELEMENT(soap_header_block_element, env) \
00180       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00181          get_element (soap_header_block_element, env))
00182 
00183 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_SET_MUST_UNDERSTAND(soap_header_block_element, env, understood) \
00184       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00185          set_must_understand (soap_header_block_element, env, understood))
00186 
00187 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_MUST_UNDERSTAND(soap_header_block_element, env) \
00188       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00189         must_understand  (soap_header_block_element, env))
00190 
00191 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_SET_PARENT_ELEMENT(soap_header_block_element, env, wsdl_el) \
00192       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00193          set_parent_element (soap_header_block_element, env, wsdl_el))
00194 
00195 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_GET_PARENT_ELEMENT(soap_header_block_element, env) \
00196       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00197         get_parent_element  (soap_header_block_element, env))
00198 
00199 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_header_block_element, env, doc_el) \
00200       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00201         add_documentation_element  (soap_header_block_element, env, doc_el))
00202 
00203 #define WODEN_SOAP_HEADER_BLOCK_ELEMENT_GET_DOCUMENTATION_ELEMENTS(soap_header_block_element, env) \
00204       (((woden_soap_header_block_element_t *) soap_header_block_element)->ops->\
00205         get_documentation_elements  (soap_header_block_element, env))
00206 
00208 #ifdef __cplusplus
00209 }
00210 #endif
00211 #endif /* WODEN_SOAP_HEADER_BLOCK_ELEMENT_H */

Generated on Tue Oct 3 20:47:59 2006 for Axis2/C by  doxygen 1.4.7