woden_include.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_INCLUDE_H
00018 #define WODEN_INCLUDE_H
00019 
00027 #include <woden.h>
00028 #include <woden_include_element.h>
00029 #include <woden_wsdl_obj.h>
00030 #include <woden_wsdl_ref.h>
00031 
00037 typedef union woden_include_base woden_include_base_t;
00038 typedef struct woden_include woden_include_t;
00039 typedef struct woden_include_ops woden_include_ops_t;
00040 struct woden_wsdl_ref;
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00047 struct woden_include_ops
00048 {
00053     axis2_status_t (AXIS2_CALL *
00054     free) (void *include,
00055             const axis2_env_t *env);
00056 
00057     axis2_hash_t *(AXIS2_CALL *
00058     super_objs) (void *include,
00059             const axis2_env_t *env);
00060 
00061     woden_obj_types_t (AXIS2_CALL *
00062     type) (void *include,
00063             const axis2_env_t *env);
00067     struct woden_wsdl_ref *(AXIS2_CALL *
00068     get_base_impl) (
00069             void *include,
00070             const axis2_env_t *env);
00071 
00072     /* No additional definitions required. This class inherits all of its behaviour 
00073      * from woden_wsdl_ref. We just need this subclass so we can create an
00074      * object representing include_element, which maps to <wsdl:include>.
00075      */
00076 };
00077 
00078 union woden_include_base
00079 {
00080     woden_include_element_t include_element;
00081     woden_wsdl_ref_t wsdl_ref;
00082 };
00083 
00084 struct woden_include
00085 {
00086     woden_include_base_t base;
00087     woden_include_ops_t *ops;
00088 };
00089 
00090 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00091 woden_include_create(
00092         const axis2_env_t *env);
00093 
00094 
00095 /***************************Woden C Internal Methods***************************/
00096 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00097 woden_include_to_include_element(
00098         void *include,
00099         const axis2_env_t *env);
00100 
00101 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00102 woden_include_to_wsdl_ref(
00103         void *include,
00104         const axis2_env_t *env);
00105 
00106 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00107 woden_include_to_attr_extensible(
00108         void *include,
00109         const axis2_env_t *env);
00110 
00111 AXIS2_EXTERN woden_include_t * AXIS2_CALL
00112 woden_include_to_element_extensible(
00113         void *include,
00114         const axis2_env_t *env);
00115 
00116 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00117 woden_include_resolve_methods(
00118         woden_include_t *include,
00119         const axis2_env_t *env,
00120         woden_include_t *include_impl,
00121         axis2_hash_t *methods);
00122 /************************End of Woden C Internal Methods***********************/
00123 
00124 #define WODEN_INCLUDE_FREE(include, env) \
00125       (((woden_include_t *) include)->ops->free(include, env))
00126 
00127 #define WODEN_INCLUDE_SUPER_OBJS(include, env) \
00128       (((woden_include_t *) include)->ops->super_objs(include, env))
00129 
00130 #define WODEN_INCLUDE_TYPE(include, env) \
00131       (((woden_include_t *) include)->ops->type(include, env))
00132 
00133 #define WODEN_INCLUDE_GET_BASE_IMPL(include, env) \
00134       (((woden_include_t *) include)->ops->get_base_impl(include, env))
00135 
00137 #ifdef __cplusplus
00138 }
00139 #endif
00140 #endif /* WODEN_INCLUDE_H */

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