xml_schema_annotation.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_ANNOTATION_H
00018 #define XML_SCHEMA_ANNOTATION_H
00019 
00030 #include <xml_schema_defines.h>
00031 #include <xml_schema_obj.h>
00032 #include <xml_schema_obj_collection.h>
00033 #include <axis2_hash.h>
00034 
00035 #ifdef __cplusplus
00036 extern "C"
00037 {
00038 #endif
00039 
00041     typedef struct xml_schema_annotation xml_schema_annotation_t;
00043     typedef struct xml_schema_annotation_ops xml_schema_annotation_ops_t;
00044 
00045     struct xml_schema_annotation_ops
00046     {
00053         axis2_status_t (AXIS2_CALL *
00054                 free) (
00055                         void *annotation,
00056                         const axis2_env_t *env);
00057 
00065         axis2_hash_t *(AXIS2_CALL *
00066                 super_objs) (
00067                     void *annotation,
00068                     const axis2_env_t *env);
00069 
00076         xml_schema_types_t (AXIS2_CALL *
00077                 get_type) (
00078                     void *annotation,
00079                     const axis2_env_t *env);
00086         xml_schema_obj_t *(AXIS2_CALL *
00087                 get_base_impl) (
00088                     void *annotation,
00089                     const axis2_env_t *env);
00090 
00097         xml_schema_obj_collection_t* (AXIS2_CALL *
00098                 get_items)(
00099                         void *annotation,
00100                         const axis2_env_t *env);
00101 
00102     };
00103 
00107     struct xml_schema_annotation
00108     {
00109         xml_schema_obj_t base;
00110         xml_schema_annotation_ops_t *ops;
00111     };
00112 
00118     AXIS2_EXTERN xml_schema_annotation_t * AXIS2_CALL
00119     xml_schema_annotation_create(const axis2_env_t *env);
00120 
00123 #define XML_SCHEMA_ANNOTATION_FREE(annotation, env) \
00124       (((xml_schema_annotation_t *) annotation)->ops->\
00125             free(annotation, env))
00126 
00129 #define XML_SCHEMA_ANNOTATION_SUPER_OBJS(annotation, env) \
00130       (((xml_schema_annotation_t *) annotation)->ops->\
00131             super_objs(annotation, env))
00132 
00135 #define XML_SCHEMA_ANNOTATION_GET_TYPE(annotation, env) \
00136       (((xml_schema_annotation_t *) annotation)->ops->\
00137             get_type(annotation, env))
00138 
00141 #define XML_SCHEMA_ANNOTATION_GET_ITEMS(annotation, env) \
00142       (((xml_schema_annotation_t *) annotation)->ops->\
00143             get_items(annotation, env))
00144 
00147 #define XML_SCHEMA_ANNOTATION_GET_BASE_IMPL(annotation, env) \
00148       (((xml_schema_annotation_t *) annotation)->ops->\
00149             get_base_impl(annotation, env))
00150 
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155 #endif /* XML_SCHEMA_ANNOTATION_H */

Generated on Thu Oct 26 21:00:12 2006 for Axis2/C by  doxygen 1.4.7