axiom_doctype.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 AXIOM_DOCTYPE_H
00018 #define AXIOM_DOCTYPE_H
00019 
00025 #include <axiom_node.h>
00026 #include <axiom_output.h>
00027 
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032 
00033     struct axiom_doctype;
00034     struct axiom_doctype_ops;
00035 
00046  AXIS2_DECLARE_DATA   typedef struct axiom_doctype_ops
00047     {
00055         axis2_status_t (AXIS2_CALL *
00056         free)(struct axiom_doctype *om_doctype,
00057               const axis2_env_t *env);
00063         axis2_char_t* (AXIS2_CALL *
00064         get_value)(struct axiom_doctype *om_doctype,
00065                    const axis2_env_t *env);
00074         axis2_status_t (AXIS2_CALL *
00075         set_value)(struct axiom_doctype *om_doctype,
00076                    const axis2_env_t *env,
00077                    const axis2_char_t *value);
00087         axis2_status_t (AXIS2_CALL *
00088         serialize)(struct axiom_doctype *om_doctype,
00089                    const axis2_env_t *env,
00090                    axiom_output_t *om_output);
00091                                                                                                                                       
00092     } axiom_doctype_ops_t;
00093 
00098     typedef struct axiom_doctype
00099     {
00101         axiom_doctype_ops_t *ops;
00102 
00103     } axiom_doctype_t;
00104 
00115     AXIS2_EXTERN axiom_doctype_t * AXIS2_CALL
00116     axiom_doctype_create (const axis2_env_t *env,
00117                              axiom_node_t * parent,
00118                              const axis2_char_t * value,
00119                              axiom_node_t ** node);
00120 
00122 #define AXIOM_DOCTYPE_FREE(doctype, env) \
00123         ((doctype)->ops->free(doctype, env))
00124 
00125 #define AXIOM_DOCTYPE_GET_VALUE(doctype, env) \
00126         ((doctype)->ops->get_value(doctype, env))
00127 
00128 #define AXIOM_DOCTYPE_SET_VALUE(doctype, env, value) \
00129         ((doctype)->ops->set_value(doctype, env, value))
00130 
00131 #define AXIOM_DOCTYPE_SERIALIZE(doctype, env, om_output) \
00132         ((doctype)->ops->serialize(doctype, env, om_output))
00133 
00136 #ifdef __cplusplus
00137 }
00138 #endif
00139 
00140 #endif                          /* AXIOM_DOCTYPE_H */

Generated on Thu Aug 31 17:32:35 2006 for Axis2/C by  doxygen 1.4.6