Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

xml_schema_app_info.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 XML_SCHEMA_APP_INFO_H
00018 #define XML_SCHEMA_APP_INFO_H
00019 
00028 #include <xml_schema_defines.h>
00029 #include <xml_schema_obj.h>
00030 #include <axis2_hash.h>
00031 
00037 typedef struct xml_schema_app_info xml_schema_app_info_t;
00038 typedef struct xml_schema_app_info_ops xml_schema_app_info_ops_t;
00039 
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044 
00045 struct xml_schema_app_info_ops
00046 {
00051     axis2_status_t (AXIS2_CALL *
00052     free) (
00053             void *app_info,
00054             const axis2_env_t *env);
00055 
00056     axis2_hash_t *(AXIS2_CALL *
00057     super_objs) (
00058             void *app_info,
00059             const axis2_env_t *env);
00060 
00061     xml_schema_types_t (AXIS2_CALL *
00062     get_type) (
00063             void *app_info,
00064             const axis2_env_t *env);
00065 
00066     xml_schema_obj_t *(AXIS2_CALL *
00067     get_base_impl) (void *app_info,
00068                         const axis2_env_t *env);
00069     
00070     axis2_char_t *(AXIS2_CALL *
00071     get_source)(void *app_info,
00072                 const axis2_env_t *env);
00073 
00074     axis2_status_t (AXIS2_CALL *
00075     set_source) (void *app_info,
00076                 const axis2_env_t *env,
00077                 axis2_char_t *source);
00078 
00079     /* TODO replace (void *) mark up with node list */
00080     void *(AXIS2_CALL *
00081     get_markup) (void *app_info,
00082                     const axis2_env_t *env);
00083 
00084     /* TODO replace (void *) mark up with node list */
00085     axis2_status_t (AXIS2_CALL *
00086     set_markup) (void *app_info,
00087                     const axis2_env_t *env,
00088                     void *markup);
00089 
00090 };
00091 
00092 struct xml_schema_app_info
00093 {
00094     xml_schema_obj_t base;
00095     xml_schema_app_info_ops_t *ops;
00096 };
00097 
00098 AXIS2_EXTERN xml_schema_app_info_t * AXIS2_CALL
00099 xml_schema_app_info_create(const axis2_env_t *env);
00100 
00101 
00102 /*********************** macros ***********************************************/
00103 
00104 #define XML_SCHEMA_APP_INFO_FREE(app_info, env) \
00105       (((xml_schema_app_info_t *) app_info)->ops->\
00106             free(app_info, env))
00107 
00108 #define XML_SCHEMA_APP_INFO_SUPER_OBJS(app_info, env) \
00109       (((xml_schema_app_info_t *) app_info)->ops->\
00110             super_objs(app_info, env))
00111 
00112 #define XML_SCHEMA_APP_INFO_GET_TYPE(app_info, env) \
00113       (((xml_schema_app_info_t *) app_info)->ops->\
00114             get_type(app_info, env))
00115 
00116 #define XML_SCHEMA_APP_INFO_GET_SOURCE(app_info, env) \
00117       (((xml_schema_app_info_t *) app_info)->ops->\
00118             get_source(app_info, env))
00119 
00120 #define XML_SCHEMA_APP_INFO_SET_SOURCE(app_info, env, source) \
00121       (((xml_schema_app_info_t *) app_info)->ops->\
00122             set_source(app_info, env, source))
00123 
00124 #define XML_SCHEMA_APP_INFO_GET_MARKUP(app_info, env) \
00125       (((xml_schema_app_info_t *) app_info)->ops->\
00126             get_markup(app_info, env))
00127 
00128 #define XML_SCHEMA_APP_INFO_SET_MARKUP(app_info, env, markup) \
00129       (((xml_schema_app_info_t *) app_info)->ops->\
00130             set_markup(app_info, env, markup))
00131 
00132 /************************ end macros ******************************************/
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137 #endif /* XML_SCHEMA_APP_INFO_H */

Generated on Fri Jun 16 18:02:32 2006 for Axis2/C by  doxygen 1.4.2