woden_import.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_IMPORT_H
00018 #define WODEN_IMPORT_H
00019 
00027 #include <woden.h>
00028 #include <woden_import_element.h>
00029 #include <woden_wsdl_obj.h>
00030 #include <woden_wsdl_ref.h>
00031 
00037 typedef union woden_import_base woden_import_base_t;
00038 typedef struct woden_import woden_import_t;
00039 typedef struct woden_import_ops woden_import_ops_t;
00040 struct woden_wsdl_ref;
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00047 struct woden_import_ops
00048 {
00053     axis2_status_t (AXIS2_CALL *
00054     free) (void *import,
00055             const axis2_env_t *env);
00056 
00057     axis2_hash_t *(AXIS2_CALL *
00058     super_objs) (void *import,
00059             const axis2_env_t *env);
00060 
00061     woden_obj_types_t (AXIS2_CALL *
00062     type) (void *import,
00063             const axis2_env_t *env);
00067     struct woden_wsdl_ref *(AXIS2_CALL *
00068     get_base_impl) (
00069             void *import,
00070             const axis2_env_t *env);
00071 
00072     axis2_uri_t *(AXIS2_CALL *
00073     get_namespace) (
00074             void *import,
00075             const axis2_env_t *env);
00076 
00077     axis2_status_t (AXIS2_CALL *
00078     set_namespace) (
00079             void *import,
00080             const axis2_env_t *env,
00081             axis2_uri_t *ns_uri);
00082 
00083 };
00084 
00085 union woden_import_base
00086 {
00087     woden_import_element_t import_element;
00088     woden_wsdl_ref_t wsdl_ref;
00089 };
00090 
00091 struct woden_import
00092 {
00093     woden_import_base_t base;
00094     woden_import_ops_t *ops;
00095 };
00096 
00097 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00098 woden_import_create(
00099         const axis2_env_t *env);
00100 
00101 
00102 /***************************Woden C Internal Methods***************************/
00103 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00104 woden_import_to_import_element(
00105         void *import,
00106         const axis2_env_t *env);
00107 
00108 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00109 woden_import_to_wsdl_ref(
00110         void *import,
00111         const axis2_env_t *env);
00112 
00113 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00114 woden_import_to_attr_extensible(
00115         void *import,
00116         const axis2_env_t *env);
00117 
00118 AXIS2_EXTERN woden_import_t * AXIS2_CALL
00119 woden_import_to_element_extensible(
00120         void *import,
00121         const axis2_env_t *env);
00122 
00123 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00124 woden_import_resolve_methods(
00125         woden_import_t *import,
00126         const axis2_env_t *env,
00127         woden_import_t *import_impl,
00128         axis2_hash_t *methods);
00129 /************************End of Woden C Internal Methods***********************/
00130 
00131 #define WODEN_IMPORT_FREE(import, env) \
00132       (((woden_import_t *) import)->ops->free(import, env))
00133 
00134 #define WODEN_IMPORT_SUPER_OBJS(import, env) \
00135       (((woden_import_t *) import)->ops->super_objs(import, env))
00136 
00137 #define WODEN_IMPORT_TYPE(import, env) \
00138       (((woden_import_t *) import)->ops->type(import, env))
00139 
00140 #define WODEN_IMPORT_GET_BASE_IMPL(import, env) \
00141       (((woden_import_t *) import)->ops->get_base_impl(import, env))
00142 
00143 #define WODEN_IMPORT_GET_NAMESPACE(import, env) \
00144       (((woden_import_t *) import)->ops->\
00145          get_namespace(import, env))
00146 
00147 #define WODEN_IMPORT_SET_NAMESPACE(import, env, ns_uri) \
00148       (((woden_import_t *) import)->ops->\
00149        set_namespace(import, env, ns_uri))
00150 
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155 #endif /* WODEN_IMPORT_H */

Generated on Thu Oct 26 21:11:24 2006 for Axis2/C by  doxygen 1.4.7