axiom_comment.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_COMMENT_H
00018 #define AXIOM_COMMENT_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_comment;
00034     struct axiom_comment_ops;
00035 
00047    typedef struct axiom_comment_ops
00048     {
00056         axis2_status_t (AXIS2_CALL *
00057         free) (struct axiom_comment *om_comment,
00058                const axis2_env_t *env);
00065         axis2_char_t* (AXIS2_CALL *
00066         get_value)(struct axiom_comment *om_comment,
00067                    const axis2_env_t *env);
00075         axis2_status_t (AXIS2_CALL *
00076         set_value)(struct axiom_comment *om_comment,
00077                   const axis2_env_t *env,
00078                   const axis2_char_t* value);
00086         axis2_status_t (AXIS2_CALL *
00087         serialize)(struct axiom_comment *om_comment,
00088                    const axis2_env_t *env,
00089                    axiom_output_t *om_output);
00090                                                                                             
00091                                               
00092     } axiom_comment_ops_t;
00093 
00098     typedef struct axiom_comment
00099     {
00101         axiom_comment_ops_t *ops;
00102 
00103     } axiom_comment_t;
00104 
00115     AXIS2_EXTERN axiom_comment_t * AXIS2_CALL 
00116     axiom_comment_create (const axis2_env_t *env,
00117                              axiom_node_t *parent,
00118                              const axis2_char_t *value,
00119                              axiom_node_t **node);
00120 
00121 
00123 #define AXIOM_COMMENT_FREE(om_comment, env) \
00124         ((om_comment)->ops->free(om_comment, env))
00125 
00126 #define AXIOM_COMMENT_GET_VALUE(om_comment, env) \
00127         ((om_comment)->ops->get_value(om_comment, env))
00128 
00129 #define AXIOM_COMMENT_SET_VALUE(om_comment, env, value) \
00130         ((om_comment)->ops->set_value(om_comment, env, value))
00131 
00132 #define AXIOM_COMMENT_SERIALIZE(om_comment, env, om_output) \
00133         ((om_comment)->ops->serialize(om_comment, env, om_output))
00134 
00137 #ifdef __cplusplus
00138 }
00139 #endif
00140 
00141 #endif                          /* AXIOM_COMMENT_H */

Generated on Thu Oct 26 21:11:22 2006 for Axis2/C by  doxygen 1.4.7