woden_wsdl10_ext_registry.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_EXT_REGISTRY_H
00018 #define WODEN_WSDL10_EXT_REGISTRY_H
00019 
00026 #include <axis2_allocator.h>
00027 #include <axis2_env.h>
00028 #include <axis2_error.h>
00029 #include <axis2_string.h>
00030 #include <axis2_utils.h>
00031 #include <axis2_hash.h>
00032 #include <axis2_qname.h>
00033 #include <axis2_uri.h>
00034 #include <axis2_array_list.h>
00035 #include <woden.h>
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00042 typedef struct woden_wsdl10_ext_registry woden_wsdl10_ext_registry_t;
00043 typedef struct woden_wsdl10_ext_registry_ops woden_wsdl10_ext_registry_ops_t;
00044 struct woden_wsdl_element;
00045     
00051 struct woden_wsdl10_ext_registry_ops
00052 {
00057     axis2_status_t (AXIS2_CALL *
00058     free) (
00059             void *ext_registry,
00060             const axis2_env_t *env);
00061  
00077     axis2_status_t (AXIS2_CALL *
00078     register_deserializer) (
00079             void *registry,
00080             const axis2_env_t *env,
00081             axis2_char_t *parent_type,
00082             axis2_qname_t *element_qtype,
00083             void *ed);
00084 
00101     void *(AXIS2_CALL *
00102     query_deserializer) (
00103             void *registry,
00104             const axis2_env_t *env,
00105             axis2_char_t *parent_type,
00106             axis2_qname_t *element_type);
00107 
00121     void *(AXIS2_CALL *
00122     query_ext_element_type) (
00123             void *registry,
00124             const axis2_env_t *env,
00125             axis2_char_t *parent_class,
00126             axis2_qname_t *elem_qn);
00127 
00136     axis2_array_list_t *(AXIS2_CALL *
00137     get_allowable_exts) (
00138             void *registry,
00139             const axis2_env_t *env,
00140             axis2_char_t *parent_type);
00141 
00158     axis2_status_t (AXIS2_CALL *
00159     register_ext_element_type) (
00160             void *registry,
00161             const axis2_env_t *env,
00162             axis2_char_t *parent_type,
00163             axis2_qname_t *element_qtype,
00164             void *element);
00165 
00166 
00180     axis2_status_t (AXIS2_CALL *
00181     register_ext_attr_type) (
00182             void *registry,
00183             const axis2_env_t *env,
00184             axis2_char_t *owner_class,
00185             axis2_qname_t *attr_qname,
00186             void *attr);
00187 
00200     void *(AXIS2_CALL *
00201     query_ext_attr_type) (
00202             void *registry,
00203             const axis2_env_t *env,
00204             axis2_char_t *parent_class,
00205             axis2_qname_t *attr_qn);
00206 
00215     axis2_status_t (AXIS2_CALL *
00216     register_component_ext) (
00217             void *registry,
00218             const axis2_env_t *env,
00219             axis2_char_t *parent_class,
00220             axis2_uri_t *ext_namespc,
00221             void *comp_ext);
00222 
00231     void *(AXIS2_CALL *
00232     query_component_ext) (
00233             void *registry,
00234             const axis2_env_t *env,
00235             axis2_char_t *parent_class,
00236             axis2_uri_t *ext_namespc);
00237 
00244     axis2_array_list_t *(AXIS2_CALL *
00245     query_component_ext_namespaces) (
00246             void *registry,
00247             const axis2_env_t *env,
00248             axis2_char_t *parent_class);
00249 };
00250 
00251 struct woden_wsdl10_ext_registry
00252 {
00253     woden_wsdl10_ext_registry_ops_t *ops;
00254 };
00255 
00256 AXIS2_EXTERN woden_wsdl10_ext_registry_t * AXIS2_CALL
00257 woden_wsdl10_ext_registry_create(const axis2_env_t *env);
00258 
00259 #define WODEN_WSDL10_EXT_REGISTRY_FREE(ext_registry, env) \
00260       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00261          free (ext_registry, env))
00262 
00263 #define WODEN_WSDL10_EXT_REGISTRY_REGISTER_DESERIALIZER(ext_registry, env, parent_type, element_qtype, ed) \
00264       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00265          register_deserializer (ext_registry, env, parent_type, element_qtype, ed))
00266 
00267 #define WODEN_WSDL10_EXT_REGISTRY_QUERY_DESERIALIZER(ext_registry, env, parent_type, element_type) \
00268       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00269          query_deserializer (ext_registry, env, parent_type, element_type))
00270 
00271 #define WODEN_WSDL10_EXT_REGISTRY_QUERY_EXT_ELEMENT_TYPE(ext_registry, env, parent_class, elem_qn) \
00272       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00273          query_ext_element_type (ext_registry, env, parent_class, elem_qn))
00274 
00275 #define WODEN_WSDL10_EXT_REGISTRY_GET_ALLOWABLE_EXTS(ext_registry, env, parent_type) \
00276       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00277          get_allowable_exts (ext_registry, env, parent_type))
00278 
00279 #define WODEN_WSDL10_EXT_REGISTRY_REGISTER_EXT_ELEMENT_TYPE(ext_registry, env, parent_type, element_qtype, element) \
00280       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00281          register_ext_element_type (ext_registry, env, parent_type, element_qtype, element))
00282 
00283 #define WODEN_WSDL10_EXT_REGISTRY_REGISTER_EXT_ATTR_TYPE(ext_registry, env, owner_class, attr_qname, attr) \
00284       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00285          register_ext_attr_type (ext_registry, env, owner_class, attr_qname, attr))
00286 
00287 #define WODEN_WSDL10_EXT_REGISTRY_QUERY_EXT_ATTR_TYPE(ext_registry, env, parent_class, attr_qn) \
00288       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00289          query_ext_attr_type (ext_registry, env, parent_class, attr_qn))
00290 
00291 #define WODEN_WSDL10_EXT_REGISTRY_REGISTER_COMPONENT_EXT(ext_registry, env, parent_class, ext_namespc, comp_ext) \
00292       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00293          register_component_ext (ext_registry, env, parent_class, ext_namespc, comp_ext))
00294 
00295 #define WODEN_WSDL10_EXT_REGISTRY_QUERY_COMPONENT_EXT(ext_registry, env, parent_class, ext_namespc) \
00296       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00297          query_component_ext (ext_registry, env, parent_class, ext_namespc))
00298 
00299 #define WODEN_WSDL10_EXT_REGISTRY_QUERY_COMPONENT_EXT_NAMESPACES(ext_registry, env, parent_class) \
00300       (((woden_wsdl10_ext_registry_t *) ext_registry)->ops->\
00301          query_component_ext_namespaces (ext_registry, env, parent_class))
00302 
00303 
00305 #ifdef __cplusplus
00306 }
00307 #endif
00308 #endif /* WODEN_WSDL10_EXT_REGISTRY_H */

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