axiom_soap_body.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 AXIOM_SOAP_BODY_H
00019 #define AXIOM_SOAP_BODY_H
00020  
00026 #include <axis2_env.h>
00027 #include <axiom_node.h>
00028 #include <axiom_element.h>
00029 #include <axiom_namespace.h>
00030 #include <axiom_soap_fault.h>
00031 #include <axiom_soap_envelope.h>    
00032 
00033 
00034 #ifdef __cplusplus
00035 extern "C"
00036 {
00037 #endif
00038 
00039 
00040 typedef struct axiom_soap_body      axiom_soap_body_t;
00041 typedef struct axiom_soap_body_ops  axiom_soap_body_ops_t;
00042 struct axiom_soap_builder;
00043     
00064     struct axiom_soap_body_ops
00065     {
00073         axis2_status_t (AXIS2_CALL *
00074       free)(axiom_soap_body_t *body,
00075               const axis2_env_t *env);
00076       
00084         axis2_bool_t (AXIS2_CALL *
00085       has_fault)(axiom_soap_body_t *body,
00086                    const axis2_env_t *env);
00087                
00096         axiom_soap_fault_t* (AXIS2_CALL *
00097       get_fault)(axiom_soap_body_t *body,
00098                    const axis2_env_t *env);
00099                
00106         axiom_node_t* (AXIS2_CALL *
00107       get_base_node)(axiom_soap_body_t *body,
00108                        const axis2_env_t *env);
00109                   
00116         int (AXIS2_CALL *
00117       get_soap_version)(axiom_soap_body_t *body,
00118                           const axis2_env_t *env);
00119                                                       
00120                                                      
00125         axis2_status_t (AXIS2_CALL *
00126       build)(axiom_soap_body_t *body, 
00127                const axis2_env_t *env);                                                 
00128 
00137         axis2_status_t (AXIS2_CALL *
00138         add_child)(axiom_soap_body_t *body,
00139                    const axis2_env_t *env,
00140                    axiom_node_t *child);
00141                    
00142 
00143 };                                                      
00144 
00149     struct axiom_soap_body
00150     {
00152         axiom_soap_body_ops_t *ops;
00153        
00154     };
00155 
00161 AXIS2_EXTERN axiom_soap_body_t * AXIS2_CALL
00162 axiom_soap_body_create_with_parent(const axis2_env_t *env, 
00163                                    struct axiom_soap_envelope *envelope);
00164     
00165 /******************** Macros **************************************************/
00166     
00168 #define AXIOM_SOAP_BODY_FREE( body, env) \
00169         ((body)->ops->free( body, env))
00170         
00172 #define AXIOM_SOAP_BODY_HAS_FAULT( body, env) \
00173         ((body)->ops->has_fault( body, env))
00174         
00175 #define AXIOM_SOAP_BODY_GET_FAULT( body, env) \
00176         ((body)->ops->get_fault( body, env))
00177         
00178 #define AXIOM_SOAP_BODY_GET_BASE_NODE( body, env) \
00179         ((body)->ops->get_base_node( body, env))
00180                                    
00181 #define AXIOM_SOAP_BODY_GET_SOAP_VERSION( body, env) \
00182         ((body)->ops->get_soap_version( body, env))
00183 
00184 #define AXIOM_SOAP_BODY_BUILD( body, env) \
00185         ((body)->ops->build( body, env))
00186 
00187 #define AXIOM_SOAP_BODY_ADD_CHILD( body, env, child) \
00188         ((body)->ops->add_child( body, env, child));
00189 
00190 #ifdef __cplusplus
00191 }
00192 #endif
00193 
00194 #endif /* AXIOM_SOAP_BODY_H */

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