Main Page | Modules | Class List | Directories | File List | Class Members | File Members

axis2_om_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 AXIS2_OM_DOCTYPE_H
00018 #define AXIS2_OM_DOCTYPE_H
00019 
00025 #include <axis2_om_node.h>
00026 #include <axis2_om_output.h>
00027 
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032 
00033     struct axis2_om_doctype;
00034     struct axis2_om_doctype_ops;
00035 
00046  AXIS2_DECLARE_DATA   typedef struct axis2_om_doctype_ops
00047     {
00055         axis2_status_t (AXIS2_CALL *free)(struct axis2_om_doctype *om_doctype,
00056                                           axis2_env_t **env);
00062         axis2_char_t* (AXIS2_CALL *get_value)
00063                                     (struct axis2_om_doctype *om_doctype,
00064                                      axis2_env_t **env);
00073         axis2_status_t (AXIS2_CALL *set_value)
00074                                     (struct axis2_om_doctype *om_doctype,
00075                                      axis2_env_t **env,
00076                                      const axis2_char_t *value);
00086         axis2_status_t (AXIS2_CALL *serialize)
00087                                     (struct axis2_om_doctype *om_doctype,
00088                                      axis2_env_t **env,
00089                                      axis2_om_output_t *om_output);
00090                                                                                                                                       
00091     } axis2_om_doctype_ops_t;
00092 
00097     typedef struct axis2_om_doctype
00098     {
00100         axis2_om_doctype_ops_t *ops;
00101 
00102     } axis2_om_doctype_t;
00103 
00114     AXIS2_DECLARE(axis2_om_doctype_t *)
00115     axis2_om_doctype_create (axis2_env_t **env,
00116                              axis2_om_node_t * parent,
00117                              const axis2_char_t * value,
00118                              axis2_om_node_t ** node);
00119 
00121 #define AXIS2_OM_DOCTYPE_FREE(doctype, env) \
00122         ((doctype)->ops->free(doctype, env))
00124 #define AXIS2_OM_DOCTYPE_GET_VALUE(doctype, env) \
00125         ((doctype)->ops->get_value(doctype, value))
00127 #define AXIS2_OM_DOCTYPE_SET_VALUE(doctype, env, value) \
00128         ((doctype)->ops->set_value(doctype, env, value))
00130 #define AXIS2_OM_DOCTYPE_SERIALIZE(doctype, env, om_output) \
00131         ((doctype)->ops->serialize(doctype, env, om_output))
00132 
00135 #ifdef __cplusplus
00136 }
00137 #endif
00138 
00139 #endif                          /* AXIS2_OM_DOCTYPE_H */

Generated on Thu Nov 24 13:58:29 2005 for Axis2/C by  doxygen 1.4.2