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

Generated on Thu Oct 26 21:00:10 2006 for Axis2/C by  doxygen 1.4.7