axiom_comment.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef AXIOM_COMMENT_H
00019 #define AXIOM_COMMENT_H
00020 
00026 #include <axiom_node.h>
00027 #include <axiom_output.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033 
00034     struct axiom_comment;
00035     struct axiom_comment_ops;
00036 
00048    typedef struct axiom_comment_ops
00049     {
00057         axis2_status_t (AXIS2_CALL *
00058         free) (struct axiom_comment *om_comment,
00059                const axis2_env_t *env);
00066         axis2_char_t* (AXIS2_CALL *
00067         get_value)(struct axiom_comment *om_comment,
00068                    const axis2_env_t *env);
00076         axis2_status_t (AXIS2_CALL *
00077         set_value)(struct axiom_comment *om_comment,
00078                   const axis2_env_t *env,
00079                   const axis2_char_t* value);
00087         axis2_status_t (AXIS2_CALL *
00088         serialize)(struct axiom_comment *om_comment,
00089                    const axis2_env_t *env,
00090                    axiom_output_t *om_output);
00091                                                                                             
00092                                               
00093     } axiom_comment_ops_t;
00094 
00099     typedef struct axiom_comment
00100     {
00102         axiom_comment_ops_t *ops;
00103 
00104     } axiom_comment_t;
00105 
00116     AXIS2_EXTERN axiom_comment_t * AXIS2_CALL 
00117     axiom_comment_create (const axis2_env_t *env,
00118                              axiom_node_t *parent,
00119                              const axis2_char_t *value,
00120                              axiom_node_t **node);
00121 
00122 
00124 #define AXIOM_COMMENT_FREE(om_comment, env) \
00125         ((om_comment)->ops->free(om_comment, env))
00126 
00127 #define AXIOM_COMMENT_GET_VALUE(om_comment, env) \
00128         ((om_comment)->ops->get_value(om_comment, env))
00129 
00130 #define AXIOM_COMMENT_SET_VALUE(om_comment, env, value) \
00131         ((om_comment)->ops->set_value(om_comment, env, value))
00132 
00133 #define AXIOM_COMMENT_SERIALIZE(om_comment, env, om_output) \
00134         ((om_comment)->ops->serialize(om_comment, env, om_output))
00135 
00138 #ifdef __cplusplus
00139 }
00140 #endif
00141 
00142 #endif                          /* AXIOM_COMMENT_H */

Generated on Wed Dec 20 20:14:09 2006 for Axis2/C by  doxygen 1.5.1