woden_wsdl_ref.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_WSDL_REF_H
00018 #define WODEN_WSDL_REF_H
00019 
00030 #include <woden.h>
00031 #include <woden_wsdl_element.h>
00032 #include <woden_wsdl_component.h>
00033 
00039 typedef union woden_wsdl_ref_base woden_wsdl_ref_base_t;
00040 typedef struct woden_wsdl_ref woden_wsdl_ref_t;
00041 typedef struct woden_wsdl_ref_ops woden_wsdl_ref_ops_t;
00042 struct woden_component_exts;
00043 
00044 #ifdef __cplusplus
00045 extern "C"
00046 {
00047 #endif
00048 
00049 struct woden_wsdl_ref_ops
00050 {
00055     axis2_status_t (AXIS2_CALL *
00056     free) (
00057             void *wsdl_ref,
00058             const axis2_env_t *env);
00059     
00060     axis2_hash_t *(AXIS2_CALL *
00061     super_objs) (
00062             void *wsdl_ref,
00063             const axis2_env_t *env);
00064     
00065     woden_obj_types_t (AXIS2_CALL *
00066     type) (
00067             void *wsdl_ref,
00068             const axis2_env_t *env);
00069 
00073     woden_wsdl_element_t *(AXIS2_CALL *
00074     get_base_impl) (
00075             void *wsdl_ref,
00076             const axis2_env_t *env);
00077 
00078     axis2_uri_t *(AXIS2_CALL *
00079     get_location) (
00080             void *wsdl_ref,
00081             const axis2_env_t *env);
00082 
00083     axis2_status_t (AXIS2_CALL *
00084     set_location) (
00085             void *wsdl_ref,
00086             const axis2_env_t *env,
00087             axis2_uri_t *loc_uri);
00088 
00089     void *(AXIS2_CALL *
00090     get_desc_element) (
00091             void *wsdl_ref,
00092             const axis2_env_t *env);
00093 
00094     axis2_status_t (AXIS2_CALL *
00095     set_desc_element) (
00096             void *wsdl_ref,
00097             const axis2_env_t *env,
00098             void *desc);
00099 
00100     axis2_status_t (AXIS2_CALL *
00101     add_documentation_element) (
00102             void *wsdl_ref,
00103             const axis2_env_t *env,
00104             void *doc_el);
00105 
00106     axis2_array_list_t *(AXIS2_CALL *
00107     get_documentation_elements) (
00108             void *wsdl_ref,
00109             const axis2_env_t *env);
00110 
00111 
00112 };
00113 
00114 struct woden_wsdl_ref
00115 {
00116     woden_wsdl_element_t wsdl_element;
00117     woden_wsdl_ref_ops_t *ops;
00118 };
00119 
00120 AXIS2_EXTERN woden_wsdl_ref_t * AXIS2_CALL
00121 woden_wsdl_ref_create(
00122         const axis2_env_t *env);
00123 
00124 /************************Woden C Internal Methods******************************/
00125 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00126 woden_wsdl_ref_resolve_methods(
00127         woden_wsdl_ref_t *wsdl_ref,
00128         const axis2_env_t *env,
00129         woden_wsdl_ref_t *wsdl_ref_impl,
00130         axis2_hash_t *methods);
00131 /************************End of Woden C Internal Methods***********************/
00132 
00133 #define WODEN_WSDL_REF_FREE(wsdl_ref, env) \
00134       (((woden_wsdl_ref_t *) wsdl_ref)->ops->free(wsdl_ref, env))
00135 
00136 #define WODEN_WSDL_REF_SUPER_OBJS(wsdl_ref, env) \
00137       (((woden_wsdl_ref_t *) wsdl_ref)->ops->super_objs(wsdl_ref, env))
00138 
00139 #define WODEN_WSDL_REF_TYPE(wsdl_ref, env) \
00140       (((woden_wsdl_ref_t *) wsdl_ref)->ops->type(wsdl_ref, env))
00141 
00142 #define WODEN_WSDL_REF_GET_BASE_IMPL(wsdl_ref, env) \
00143       (((woden_wsdl_ref_t *) wsdl_ref)->ops->get_base_impl(wsdl_ref, env))
00144 
00145 #define WODEN_WSDL_REF_GET_LOCATION(wsdl_ref, env) \
00146       (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00147         get_location (wsdl_ref, env))
00148 
00149 #define WODEN_WSDL_REF_SET_LOCATION(wsdl_ref, env, loc_uri) \
00150       (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00151          set_location(wsdl_ref, env, loc_uri))
00152 
00153 #define WODEN_WSDL_REF_GET_DESC_ELEMENT(wsdl_ref, env) \
00154       (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00155         get_desc_element (wsdl_ref, env))
00156 
00157 #define WODEN_WSDL_REF_SET_DESC_ELEMENT(wsdl_ref, env, desc) \
00158       (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00159          set_desc_element(wsdl_ref, env, desc))
00160 
00161 #define WODEN_WSDL_REF_ADD_DOCUMENTATION_ELEMENT(wsdl_ref, env, doc_el) \
00162       (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00163         add_documentation_element (wsdl_ref, env, doc_el))
00164 
00165 #define WODEN_WSDL_REF_GET_DOCUMENTATION_ELEMENTS(wsdl_ref, env) \
00166       (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
00167          get_documentation_elements(wsdl_ref, env))
00168 
00170 #ifdef __cplusplus
00171 }
00172 #endif
00173 #endif /* WODEN_WSDL_REF_H */

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