00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_IMPORTED_SCHEMA_H
00018 #define WODEN_IMPORTED_SCHEMA_H
00019
00028 #include <woden_schema.h>
00029
00035 typedef struct woden_imported_schema woden_imported_schema_t;
00036 typedef struct woden_imported_schema_ops woden_imported_schema_ops_t;
00037
00038 #ifdef __cplusplus
00039 extern "C"
00040 {
00041 #endif
00042
00043 struct woden_imported_schema_ops
00044 {
00049 axis2_status_t (AXIS2_CALL *
00050 free) (
00051 void *schema,
00052 const axis2_env_t *env);
00053
00054 axis2_hash_t *(AXIS2_CALL *
00055 super_objs) (
00056 void *schema,
00057 const axis2_env_t *env);
00058
00059 woden_obj_types_t (AXIS2_CALL *
00060 type) (
00061 void *schema,
00062 const axis2_env_t *env);
00066 woden_schema_t *(AXIS2_CALL *
00067 get_base_impl) (
00068 void *schema,
00069 const axis2_env_t *env);
00070
00071 axis2_status_t (AXIS2_CALL *
00072 set_location) (
00073 void *schema,
00074 const axis2_env_t *env,
00075 struct axis2_uri *location);
00076
00077 struct axis2_uri *(AXIS2_CALL *
00078 get_location) (
00079 void *schema,
00080 const axis2_env_t *env);
00081
00082
00083 };
00084
00085 struct woden_imported_schema
00086 {
00087 woden_schema_t schema;
00088 woden_imported_schema_ops_t *ops;
00089 };
00090
00091 AXIS2_EXTERN woden_imported_schema_t * AXIS2_CALL
00092 woden_imported_schema_create(
00093 const axis2_env_t *env);
00094
00095
00096 AXIS2_EXTERN woden_imported_schema_t * AXIS2_CALL
00097 woden_imported_schema_to_schema(
00098 void *schema,
00099 const axis2_env_t *env);
00100
00101 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00102 woden_imported_schema_resolve_methods(
00103 woden_imported_schema_t *schema,
00104 const axis2_env_t *env,
00105 woden_imported_schema_t *schema_impl,
00106 axis2_hash_t *methods);
00107
00108
00109 #define WODEN_IMPORTED_SCHEMA_FREE(schema, env) \
00110 (((woden_imported_schema_t *) schema)->ops->free(schema, env))
00111
00112 #define WODEN_IMPORTED_SCHEMA_SUPER_OBJS(schema, env) \
00113 (((woden_imported_schema_t *) schema)->ops->super_objs(schema, env))
00114
00115 #define WODEN_IMPORTED_SCHEMA_TYPE(schema, env) \
00116 (((woden_imported_schema_t *) schema)->ops->type(schema, env))
00117
00118 #define WODEN_IMPORTED_SCHEMA_GET_BASE_IMPL(schema, env) \
00119 (((woden_imported_schema_t *) schema)->ops->get_base_impl(schema, \
00120 env))
00121
00122 #define WODEN_IMPORTED_SCHEMA_SET_LOCATION(schema, env, location) \
00123 (((woden_imported_schema_t *) schema)->ops->set_location(schema, \
00124 env, location))
00125
00126 #define WODEN_IMPORTED_SCHEMA_GET_LOCATION(schema, env) \
00127 (((woden_imported_schema_t *) schema)->ops->get_location(schema, \
00128 env))
00129
00131 #ifdef __cplusplus
00132 }
00133 #endif
00134 #endif