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

axiom_soap_builder.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_BUILDER_H
00018  #define AXIOM_SOAP_BUILDER_H
00019  
00020  #include <axiom_stax_builder.h>
00021  #include <axiom_soap_envelope.h>
00022  
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032 
00033 
00034 typedef struct axiom_soap_builder axiom_soap_builder_t;
00035 typedef struct axiom_soap_builder_ops  axiom_soap_builder_ops_t;
00036     
00048 AXIS2_DECLARE_DATA   struct axiom_soap_builder_ops
00049 {
00050         axis2_status_t (AXIS2_CALL *free)(axiom_soap_builder_t *builder,
00051                                           const axis2_env_t *env);
00052 
00053         axiom_soap_envelope_t* (AXIS2_CALL *get_soap_envelope)
00054                                          (axiom_soap_builder_t *builder,
00055                                           const axis2_env_t *env);
00056                                           
00057         axiom_document_t* (AXIS2_CALL *get_document)
00058                                          (axiom_soap_builder_t *builder,
00059                                           const axis2_env_t *env);
00060                                           
00061         axis2_status_t (AXIS2_CALL *next)(axiom_soap_builder_t *builder,
00062                                 const axis2_env_t *env);
00063                                 
00064                                                      
00065         axiom_node_t* (AXIS2_CALL *get_document_element)
00066                                             (axiom_soap_builder_t *builder,
00067                                              const axis2_env_t *env); 
00068                                              
00069         axis2_status_t (AXIS2_CALL *set_bool_processing_mandatory_fault_elements)
00070                                             (axiom_soap_builder_t *builder,
00071                                              const axis2_env_t *env,
00072                                              axis2_bool_t value);
00073         
00074         axis2_status_t (AXIS2_CALL *set_processing_detail_elements)
00075                                     (axiom_soap_builder_t *builder,
00076                                      const axis2_env_t *env,
00077                                      axis2_bool_t value);
00078                                      
00079         axis2_bool_t (AXIS2_CALL *is_processing_detail_elements)
00080                                     (axiom_soap_builder_t *builder, 
00081                                      const axis2_env_t *env);
00082                                      
00083                                      
00084         int (AXIS2_CALL *get_soap_version)(axiom_soap_builder_t *builder,
00085                                            const axis2_env_t *env);
00086                                            
00087         axis2_status_t (AXIS2_CALL *process_namespace_data)
00088                                           (axiom_soap_builder_t *builder,
00089                                            const axis2_env_t *env,
00090                                            axiom_node_t *om_node,
00091                                            axis2_bool_t is_soap_element);
00092         axis2_status_t (AXIS2_CALL *
00093         set_mime_body_parts)
00094                                     (axiom_soap_builder_t *builder, 
00095                                      const axis2_env_t *env,
00096                                      axis2_hash_t *map); 
00097 };
00098                                                       
00099 
00105 struct axiom_soap_builder
00106 {
00108     axiom_soap_builder_ops_t *ops;
00109 };
00110 
00116 AXIS2_EXTERN axiom_soap_builder_t * AXIS2_CALL
00117 axiom_soap_builder_create(const axis2_env_t *env,
00118                                 axiom_stax_builder_t *builder,
00119                                 const axis2_char_t *soap_version);
00120 
00121 /******************** Macros **************************************************/
00122     
00123 #define AXIOM_SOAP_BUILDER_FREE(builder, env) \
00124         ((builder)->ops->free(builder, env))
00125 
00126 #define AXIOM_SOAP_BUILDER_GET_SOAP_ENVELOPE(builder, env) \
00127         ((builder)->ops->get_soap_envelope(builder, env))
00128         
00129 #define AXIOM_SOAP_BUILDER_GET_DOCUMENT_ELEMENT(builder, env) \
00130         ((builder)->ops->get_document_element(builder, env))
00131         
00132 #define AXIOM_SOAP_BUILDER_NEXT(builder, env) \
00133         ((builder)->ops->next(builder, env))
00134         
00135 #define AXIOM_SOAP_BUILDER_GET_DOCUMENT(builder, env) \
00136         ((builder)->ops->get_document(builder, env))
00137         
00138 #define AXIOM_SOAP_BUILDER_NEXT(builder, env) \
00139         ((builder)->ops->next(builder, env)) 
00140         
00141 #define AXIOM_SOAP_BUILDER_SET_BOOL_PROCESSING_MANDATORY_FAULT_ELEMENTS(builder, env, value) \
00142         ((builder)->ops->set_bool_processing_mandatory_fault_elements(builder, env, value))
00143  
00144 #define AXIOM_SOAP_BUILDER_SET_PROCESSING_DETAIL_ELEMENTS(builder, env, value) \
00145         ((builder)->ops->set_processing_detail_elements(builder, env, value))
00146         
00147 #define AXIOM_SOAP_BUILDER_IS_PROCESSING_DETAIL_ELEMENTS(builder, env) \
00148         ((builder)->ops->is_processing_detail_elements(builder, env))                         
00149 
00150 
00151 #define AXIOM_SOAP_BUILDER_GET_SOAP_VERSION(builder, env) \
00152         ((builder)->ops->get_soap_version(builder, env))
00153         
00154 #define AXIOM_SOAP_BUILDER_PROCESS_NAMESPACE_DATA(builder, env, om_node, is_soap_element) \
00155         ((builder)->ops->process_namespace_data(builder, env, om_node, is_soap_element))
00156         
00157 #define AXIOM_SOAP_BUILDER_SET_MIME_BODY_PARTS(builder, env, map) \
00158         ((builder)->ops->set_mime_body_parts(builder, env, map))
00159         
00161 #ifdef __cplusplus
00162 }
00163 #endif 
00164 #endif /* AXIOM_SOAP_BUILDER_H */

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