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