woden_wsdl10_endpoint.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_WSDL10_ENDPOINT_H
00018 #define WODEN_WSDL10_ENDPOINT_H
00019 
00027 #include <woden.h>
00028 #include <woden_wsdl10_endpoint_element.h>
00029 #include <woden_nested_configurable.h>
00030 #include <woden_nested_component.h>
00031 #include <woden_configurable_component.h>
00032 #include <woden_nc_name.h>
00033 
00039 typedef union woden_wsdl10_endpoint_base woden_wsdl10_endpoint_base_t;
00040 typedef struct woden_wsdl10_endpoint woden_wsdl10_endpoint_t;
00041 typedef struct woden_wsdl10_endpoint_ops woden_wsdl10_endpoint_ops_t;
00042 struct woden_documentation_element;
00043 struct woden_wsdl_component;
00044 struct woden_documentable;
00045 
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050 
00051 struct woden_wsdl10_endpoint_ops
00052 {
00057     axis2_status_t (AXIS2_CALL *
00058     free) (void *endpoint,
00059             const axis2_env_t *env);
00060     
00061     axis2_hash_t *(AXIS2_CALL *
00062     super_objs) (void *endpoint,
00063             const axis2_env_t *env);
00064 
00065     woden_obj_types_t (AXIS2_CALL *
00066     type) (void *endpoint,
00067             const axis2_env_t *env);
00071     struct woden_nested_configurable *(AXIS2_CALL *
00072     get_base_impl) (
00073             void *endpoint,
00074             const axis2_env_t *env);
00075 
00076     /* ************************************************************
00077      *  Endpoint interface methods (the WSDL Component model)
00078      * ************************************************************/
00079 
00080     woden_nc_name_t *(AXIS2_CALL *
00081     get_name) (
00082             void *endpoint,
00083             const axis2_env_t *env);
00084 
00085     void *(AXIS2_CALL *
00086     get_binding) (
00087             void *endpoint,
00088             const axis2_env_t *env);
00089 
00090     axis2_uri_t *(AXIS2_CALL *
00091     get_address) (
00092             void *endpoint,
00093             const axis2_env_t *env);
00094 
00095     axis2_status_t (AXIS2_CALL *
00096     set_binding_element) (
00097         void *endpoint,
00098         const axis2_env_t *env,
00099         void *binding);
00100 
00101 };
00102 
00103 union woden_wsdl10_endpoint_base
00104 {
00105     woden_nested_configurable_t nested_configurable;
00106     woden_wsdl10_endpoint_element_t endpoint_element;
00107     woden_configurable_component_t configurable_component;
00108     woden_nested_component_t nested_component;
00109 };
00110 
00111 struct woden_wsdl10_endpoint
00112 {
00113     woden_wsdl10_endpoint_base_t base;
00114     woden_wsdl10_endpoint_ops_t *ops;
00115 };
00116 
00117 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00118 woden_wsdl10_endpoint_create(
00119         const axis2_env_t *env);
00120 
00121 
00122 /***************************Woden C Internal Methods***************************/
00123 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00124 woden_wsdl10_endpoint_to_endpoint_element(
00125         void *endpoint,
00126         const axis2_env_t *env);
00127 
00128 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00129 woden_wsdl10_endpoint_to_nested_element(
00130         void *endpoint,
00131         const axis2_env_t *env);
00132 
00133 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00134 woden_wsdl10_endpoint_to_documentable_element(
00135         void *endpoint,
00136         const axis2_env_t *env);
00137 
00138 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00139 woden_wsdl10_endpoint_to_nested_configurable(
00140         void *endpoint,
00141         const axis2_env_t *env);
00142 
00143 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00144 woden_wsdl10_endpoint_to_configurable(
00145         void *endpoint,
00146         const axis2_env_t *env);
00147 
00148 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00149 woden_wsdl10_endpoint_to_nested_component(
00150         void *endpoint,
00151         const axis2_env_t *env);
00152 
00153 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00154 woden_wsdl10_endpoint_to_configurable_component(
00155         void *endpoint,
00156         const axis2_env_t *env);
00157 
00158 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00159 woden_wsdl10_endpoint_to_wsdl_component(
00160         void *endpoint,
00161         const axis2_env_t *env);
00162 
00163 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00164 woden_wsdl10_endpoint_to_configurable_element(
00165         void *endpoint,
00166         const axis2_env_t *env);
00167 
00168 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00169 woden_wsdl10_endpoint_to_documentable(
00170         void *endpoint,
00171         const axis2_env_t *env);
00172 
00173 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00174 woden_wsdl10_endpoint_to_attr_extensible(
00175         void *endpoint,
00176         const axis2_env_t *env);
00177 
00178 AXIS2_EXTERN woden_wsdl10_endpoint_t * AXIS2_CALL
00179 woden_wsdl10_endpoint_to_element_extensible(
00180         void *endpoint,
00181         const axis2_env_t *env);
00182 
00183 
00184 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00185 woden_wsdl10_endpoint_resolve_methods(
00186         woden_wsdl10_endpoint_t *endpoint,
00187         const axis2_env_t *env,
00188         woden_wsdl10_endpoint_t *endpoint_impl,
00189         axis2_hash_t *methods);
00190 /************************End of Woden C Internal Methods***********************/
00191 
00192 #define WODEN_WSDL10_ENDPOINT_FREE(endpoint, env) \
00193       (((woden_wsdl10_endpoint_t *) endpoint)->ops->free(endpoint, env))
00194 
00195 #define WODEN_WSDL10_ENDPOINT_SUPER_OBJS(endpoint, env) \
00196       (((woden_wsdl10_endpoint_t *) endpoint)->ops->super_objs(endpoint, env))
00197 
00198 #define WODEN_WSDL10_ENDPOINT_TYPE(endpoint, env) \
00199       (((woden_wsdl10_endpoint_t *) endpoint)->ops->type(endpoint, env))
00200 
00201 #define WODEN_WSDL10_ENDPOINT_GET_BASE_IMPL(endpoint, env) \
00202       (((woden_wsdl10_endpoint_t *) endpoint)->ops->get_base_impl(endpoint, env))
00203 
00204 #define WODEN_WSDL10_ENDPOINT_GET_NAME(endpoint, env) \
00205       (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00206          get_name(endpoint, env))
00207 
00208 #define WODEN_WSDL10_ENDPOINT_GET_BINDING(endpoint, env) \
00209       (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00210          get_binding(endpoint, env))
00211 
00212 #define WODEN_WSDL10_ENDPOINT_GET_ADDRESS(endpoint, env) \
00213       (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00214          get_address(endpoint, env))
00215 
00216 #define WODEN_WSDL10_ENDPOINT_SET_BINDING_ELEMENT(endpoint, env, binding) \
00217       (((woden_wsdl10_endpoint_t *) endpoint)->ops->\
00218          set_binding_element(endpoint, env, binding))
00219 
00221 #ifdef __cplusplus
00222 }
00223 #endif
00224 #endif /* WODEN_WSDL10_ENDPOINT_H */

Generated on Thu Aug 31 17:32:37 2006 for Axis2/C by  doxygen 1.4.6