xml_schema_derivation_method.h

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_DERIVATION_METHOD_H
00018 #define XML_SCHEMA_DERIVATION_METHOD_H
00019 
00027 #include <xml_schema_enum.h>
00028 
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040 
00041 typedef struct xml_schema_derivation_method 
00042                 xml_schema_derivation_method_t;
00043 typedef struct xml_schema_derivation_method_ops
00044                 xml_schema_derivation_method_ops_t;
00045 
00046 struct xml_schema_derivation_method_ops
00047 {
00052     axis2_status_t (AXIS2_CALL *
00053     free) (void *derivation_method,
00054             const axis2_env_t *env);
00055 
00056     xml_schema_enum_t *(AXIS2_CALL *
00057     get_base_impl) (void *derivation_method,
00058                     const axis2_env_t *env);
00059     
00060     axis2_array_list_t *(AXIS2_CALL *
00061     get_values)(void *derivation_method,
00062                 const axis2_env_t *env);
00063                 
00064     axis2_hash_t* (AXIS2_CALL *
00065     super_objs)(void *derivation_method,
00066                 const axis2_env_t *env);
00067     
00068     xml_schema_types_t (AXIS2_CALL *
00069     get_type)(void *derivation_method,
00070           const axis2_env_t *env);                                
00071     
00072 };
00073 
00074 struct xml_schema_derivation_method
00075 {
00076     xml_schema_enum_t base;
00077     xml_schema_derivation_method_ops_t *ops;
00078 };
00079 
00080 AXIS2_EXTERN xml_schema_derivation_method_t * AXIS2_CALL
00081 xml_schema_derivation_method_create(const axis2_env_t *env,
00082                                     axis2_char_t* value);
00083 
00084 
00085 #define XML_SCHEMA_DERIVATION_METHOD_FREE(derivation_method, env) \
00086       (((xml_schema_derivation_method_t *) \
00087        derivation_method)->ops->free(derivation_method, env))
00088 
00089 #define XML_SCHEMA_DERIVATION_METHOD_GET_BASE_IMPL(derivation_method, env) \
00090       (((xml_schema_derivation_method_t *) \
00091       derivation_method)->ops->get_base_impl(derivation_method, env))
00092 
00093 #define XML_SCHEMA_DERIVATION_METHOD_GET_VALUES(derivation_method, env) \
00094       (((xml_schema_derivation_method_t *) \
00095       derivation_method)->ops->values(derivation_method, env))
00096 
00097 #define XML_SCHEMA_DERIVATION_METHOD_GET_TYPE(derivation_method, env) \
00098       (((xml_schema_derivation_method_t *) \
00099       derivation_method)->ops->get_type(derivation_method, env))
00100       
00101 #define XML_SCHEMA_DERIVATION_METHOD_SUPER_OBJS(derivation_method, env) \
00102         (((xml_schema_derivation_method_t *) \
00103       derivation_method)->ops->super_objs(derivation_method, env))
00104       
00105       
00107 #ifdef __cplusplus
00108 }
00109 #endif
00110 #endif /* XML_SCHEMA_DERIVATION_METHOD_H */

Generated on Tue Oct 3 18:21:11 2006 for Axis2/C by  doxygen 1.4.7