00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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