woden_soap_module.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_H
00018 #define WODEN_SOAP_MODULE_H
00019 
00028 #include <woden.h>
00029 #include <woden_soap_module_element.h>
00030 
00036 typedef union woden_soap_module_base woden_soap_module_base_t;
00037 typedef struct woden_soap_module woden_soap_module_t;
00038 typedef struct woden_soap_module_ops woden_soap_module_ops_t;
00039 
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044 
00045 struct woden_soap_module_ops
00046 {
00051     axis2_status_t (AXIS2_CALL * 
00052     free) (
00053             void *module,
00054             const axis2_env_t *env);
00055 
00056     axis2_hash_t *(AXIS2_CALL * 
00057     super_objs) (
00058             void *module,
00059             const axis2_env_t *env);
00060 
00061     woden_obj_types_t (AXIS2_CALL * 
00062     type) (
00063             void *module,
00064             const axis2_env_t *env);
00065 
00066     struct woden_component_exts *(AXIS2_CALL *
00067     get_base_impl) (
00068             void *module,
00069             const axis2_env_t *env);
00070 
00071 
00072     /* ***********************************************************************
00073      *  Component model methods (SOAPHeaderBlock interface), some shared with Element model
00074      * ***********************************************************************/
00075 
00076     axis2_uri_t *(AXIS2_CALL *
00077     get_ref) (
00078             void *module,
00079             axis2_env_t *env);
00080 
00081     axis2_bool_t (AXIS2_CALL * 
00082     is_required) (
00083             void *module,
00084             axis2_env_t *env);
00085 
00086     void *(AXIS2_CALL *
00087     get_parent) (
00088             void *module,
00089             axis2_env_t *env);
00090 
00091     void *(AXIS2_CALL *
00092     to_element) (
00093             void *module,
00094             axis2_env_t *env);
00095 
00096 };
00097 
00098 struct woden_soap_module
00099 {
00100     woden_soap_module_element_t module_element;
00101     woden_soap_module_ops_t *ops;
00102 };
00103 
00104 AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
00105 woden_soap_module_create(
00106         const axis2_env_t *env);
00107 
00108 
00109 /***************************Woden C Internal Methods***************************/
00110 AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
00111 woden_soap_module_to_soap_module_element(
00112         void *module,
00113         const axis2_env_t *env);
00114 
00115 AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
00116 woden_soap_module_to_ext_element(
00117         void *module,
00118         const axis2_env_t *env);
00119 
00120 AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
00121 woden_soap_module_to_attr_extensible(
00122         void *module,
00123         const axis2_env_t *env);
00124 
00125 AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
00126 woden_soap_module_to_element_extensible(
00127         void *module,
00128         const axis2_env_t *env);
00129 
00130 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00131 woden_soap_module_resolve_methods(
00132         woden_soap_module_t *soap_module,
00133         const axis2_env_t *env,
00134         woden_soap_module_t *soap_module_impl,
00135         axis2_hash_t *methods);
00136 /************************End of Woden C Internal Methods***********************/
00137 
00138 #define WODEN_SOAP_MODULE_FREE(soap_module, env) \
00139       (((woden_soap_module_t *) soap_module)->ops->free(soap_module, env))
00140 
00141 #define WODEN_SOAP_MODULE_SUPER_OBJS(soap_module, env) \
00142       (((woden_soap_module_t *) soap_module)->ops->super_objs(soap_module, env))
00143 
00144 #define WODEN_SOAP_MODULE_TYPE(soap_module, env) \
00145       (((woden_soap_module_t *) soap_module)->ops->type(soap_module, env))
00146 
00147 #define WODEN_SOAP_MODULE_GET_BASE_IMPL(soap_module, env) \
00148       (((woden_soap_module_t *) soap_module)->ops->get_base_impl(soap_module, env))
00149 
00150 #define WODEN_SOAP_MODULE_GET_REF(soap_module, env) \
00151       (((woden_soap_module_t *) soap_module)->\
00152         get_ref (soap_module, env))
00153 
00154 #define WODEN_SOAP_MODULE_IS_REQUIRED(soap_module, env) \
00155       (((woden_soap_module_t *) soap_module)->\
00156         is_required (soap_module, env))
00157 
00158 #define WODEN_SOAP_MODULE_GET_PARENT(soap_module, env) \
00159       (((woden_soap_module_t *) soap_module)->\
00160         get_parent (soap_module, env))
00161 
00162 #define WODEN_SOAP_MODULE_TO_ELEMENT(soap_module, env) \
00163       (((woden_soap_module_t *) soap_module)->\
00164         to_element (soap_module, env))
00165 
00167 #ifdef __cplusplus
00168 }
00169 #endif
00170 #endif /* WODEN_SOAP_MODULE_H */

Generated on Tue Oct 3 18:21:11 2006 for Axis2/C by  doxygen 1.4.7