woden_type_def.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef WODEN_TYPE_DEF_H
00019 #define WODEN_TYPE_DEF_H
00020 
00032 #include <woden.h>
00033 #include <axis2_hash.h>
00034 #include <axis2_qname.h>
00035 #include <axis2_uri.h>
00036 
00042 typedef union woden_type_def_base woden_type_def_base_t;
00043 typedef struct woden_type_def woden_type_def_t;
00044 typedef struct woden_type_def_ops woden_type_def_ops_t;
00045 
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050 
00051 struct woden_type_def_ops
00052 {
00057     axis2_status_t (AXIS2_CALL *
00058     free) (void *type_def,
00059             const axis2_env_t *env);
00060     
00061     axis2_hash_t *(AXIS2_CALL *
00062     super_objs) (void *type_def,
00063             const axis2_env_t *env);
00064     
00065     woden_obj_types_t (AXIS2_CALL *
00066     type) (void *type_def,
00067             const axis2_env_t *env);
00071     void *(AXIS2_CALL *
00072     get_base_impl) (
00073             void *type_def,
00074             const axis2_env_t *env);
00075 
00076     axis2_status_t (AXIS2_CALL *
00077     set_qname) (
00078             void *type_def,
00079             const axis2_env_t *env,
00080             axis2_qname_t *qname);
00081 
00082     axis2_qname_t *(AXIS2_CALL *
00083     get_qname) (
00084             void *type_def,
00085             const axis2_env_t *env);
00086 
00087     axis2_status_t (AXIS2_CALL *
00088     set_system) (
00089             void *type_def,
00090             const axis2_env_t *env,
00091             axis2_uri_t *type_system_uri);
00092 
00093     axis2_uri_t *(AXIS2_CALL *
00094     get_system) (
00095             void *type_def,
00096             const axis2_env_t *env);
00097 
00098     axis2_status_t (AXIS2_CALL *
00099     set_content_model) (
00100             void *type_def,
00101             const axis2_env_t *env,
00102             axis2_char_t *content_model);
00103 
00104     axis2_char_t *(AXIS2_CALL *
00105     get_content_model) (
00106             void *type_def,
00107             const axis2_env_t *env);
00108 
00109 
00110     axis2_status_t (AXIS2_CALL *
00111     set_content) (
00112             void *type_def,
00113             const axis2_env_t *env,
00114             void *type_def_content);
00115 
00116     void *(AXIS2_CALL *
00117     get_content) (
00118             void *type_def,
00119             const axis2_env_t *env);
00120 
00121 };
00122 
00123 struct woden_type_def
00124 {
00125     woden_type_def_ops_t *ops;
00126 };
00127 
00128 AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
00129 woden_type_def_create(
00130         const axis2_env_t *env);
00131 
00132 /************************Woden C Internal Methods******************************/
00133 AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
00134 woden_type_def_to_type_def_element(
00135         void *type_def,
00136         const axis2_env_t *env);
00137 
00138 AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
00139 woden_type_def_to_attr_extensible(
00140         void *type_def,
00141         const axis2_env_t *env);
00142 
00143 AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
00144 woden_type_def_to_element_extensible(
00145         void *type_def,
00146         const axis2_env_t *env);
00147 
00148 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00149 woden_type_def_resolve_methods(
00150         woden_type_def_t *type_def,
00151         const axis2_env_t *env,
00152         woden_type_def_t *type_def_impl,
00153         axis2_hash_t *methods);
00154 /************************End of Woden C Internal Methods***********************/
00155 
00156 
00157 #define WODEN_TYPE_DEF_FREE(type_def, env) \
00158       (((woden_type_def_t *) type_def)->ops->free(type_def, env))
00159 
00160 #define WODEN_TYPE_DEF_SUPER_OBJS(type_def, env) \
00161       (((woden_type_def_t *) type_def)->ops->\
00162          super_objs(type_def, env))
00163 
00164 #define WODEN_TYPE_DEF_TYPE(type_def, env) \
00165       (((woden_type_def_t *) type_def)->ops->type(type_def, env))
00166 
00167 #define WODEN_TYPE_DEF_GET_BASE_IMPL(type_def, env) \
00168       (((woden_type_def_t *) type_def)->ops->\
00169          get_base_impl(type_def, env))
00170 
00171 #define WODEN_TYPE_DEF_SET_QNAME(type_def, env, qname) \
00172       (((woden_type_def_t *) type_def)->ops->\
00173          set_qname(type_def, env, qname))
00174 
00175 #define WODEN_TYPE_DEF_GET_QNAME(type_def, env) \
00176       (((woden_type_def_t *) type_def)->ops->\
00177          get_qname(type_def, env))
00178 
00179 #define WODEN_TYPE_DEF_SET_SYSTEM(type_def, env, type_system_uri) \
00180       (((woden_type_def_t *) type_def)->ops->\
00181          set_system(type_def, env, type_system_uri))
00182 
00183 #define WODEN_TYPE_DEF_GET_SYSTEM(type_def, env) \
00184       (((woden_type_def_t *) type_def)->ops->\
00185          get_system(type_def, env))
00186 
00187 #define WODEN_TYPE_DEF_SET_CONTENT_MODEL(type_def, env, content_model) \
00188       (((woden_type_def_t *) type_def)->ops->\
00189          set_content_model(type_def, env, content_model))
00190 
00191 #define WODEN_TYPE_DEF_GET_CONTENT_MODEL(type_def, env) \
00192       (((woden_type_def_t *) type_def)->ops->\
00193          get_content_model(type_def, env))
00194 
00195 #define WODEN_TYPE_DEF_SET_CONTENT(type_def, env, type_def_content) \
00196       (((woden_type_def_t *) type_def)->ops->\
00197          set_content(type_def, env, type_def_content))
00198 
00199 #define WODEN_TYPE_DEF_GET_CONTENT(type_def, env) \
00200       (((woden_type_def_t *) type_def)->ops->\
00201          get_content(type_def, env))
00202 
00204 #ifdef __cplusplus
00205 }
00206 #endif
00207 #endif /* WODEN_TYPE_DEF_H */

Generated on Wed Dec 20 20:34:50 2006 for Axis2/C by  doxygen 1.5.1