00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XML_SCHEMA_SIMPLE_TYPE_CONTENT_H
00018 #define XML_SCHEMA_SIMPLE_TYPE_CONTENT_H
00019
00026 #include <xml_schema_annotated.h>
00027 #include <axis2_hash.h>
00028
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037
00038 typedef struct xml_schema_simple_type_content
00039 xml_schema_simple_type_content_t;
00040 typedef struct xml_schema_simple_type_content_ops
00041 xml_schema_simple_type_content_ops_t;
00042
00043
00044 struct xml_schema_simple_type_content_ops
00045 {
00050 axis2_status_t (AXIS2_CALL *
00051 free) (void *sim_type_cont,
00052 const axis2_env_t *env);
00053
00054 xml_schema_annotated_t *(AXIS2_CALL *
00055 get_base_impl) (void *sim_type_cont,
00056 const axis2_env_t *env);
00057
00058 xml_schema_types_t (AXIS2_CALL *
00059 get_type)(void *sim_type_cont,
00060 const axis2_env_t *env);
00061
00062 axis2_hash_t* (AXIS2_CALL *
00063 super_objs)(void *sim_type_cont,
00064 const axis2_env_t *env);
00065
00066 };
00067
00068 struct xml_schema_simple_type_content
00069 {
00070 xml_schema_annotated_t base;
00071 xml_schema_simple_type_content_ops_t *ops;
00072 };
00073
00082 AXIS2_EXTERN xml_schema_simple_type_content_t * AXIS2_CALL
00083 xml_schema_simple_type_content_create(const axis2_env_t *env);
00084
00088 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00089 xml_schema_simple_type_content_resolve_methods(
00090 xml_schema_simple_type_content_t *sim_type_cont,
00091 const axis2_env_t *env,
00092 xml_schema_simple_type_content_t *sim_type_cont_impl,
00093 XML_SCHEMA_SUPER_OBJS_FN super_objs,
00094 XML_SCHEMA_GET_TYPE_FN get_type,
00095 XML_SCHEMA_FREE_FN free_fn);
00096
00097
00098 #define XML_SCHEMA_SIMPLE_TYPE_CONTENT_FREE(sim_type_cont, env) \
00099 (((xml_schema_simple_type_content_t *) sim_type_cont)->ops->\
00100 free(sim_type_cont, env))
00101
00102 #define XML_SCHEMA_SIMPLE_TYPE_CONTENT_GET_BASE_IMPL(sim_type_cont, env) \
00103 (((xml_schema_simple_type_content_t *) sim_type_cont)->ops->\
00104 get_base_impl(sim_type_cont, env))
00105
00106 #define XML_SCHEMA_SIMPLE_TYPE_CONTENT_GET_TYPE(sim_type_cont, env) \
00107 (((xml_schema_simple_type_content_t *) sim_type_cont)->ops->\
00108 get_type(sim_type_cont, env))
00109
00110 #define XML_SCHEMA_SIMPLE_TYPE_CONTENT_SUPER_OBJS(sim_type_cont, env) \
00111 (((xml_schema_simple_type_content_t *) sim_type_cont)->ops->\
00112 super_objs(sim_type_cont, env))
00113
00114
00116 #ifdef __cplusplus
00117 }
00118 #endif
00119 #endif