00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_OM_ATTRIBUTE_H
00018 #define AXIS2_OM_ATTRIBUTE_H
00019
00024 #include <axis2_env.h>
00025 #include <axis2_qname.h>
00026 #include <axis2_om_namespace.h>
00027 #include <axis2_om_output.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00034 struct axis2_om_attribute;
00035 struct axis2_om_attribute_ops;
00036
00047 AXIS2_DECLARE_DATA typedef struct axis2_om_attribute_ops
00048 {
00057 axis2_status_t
00058 (AXIS2_CALL *free)(struct axis2_om_attribute *om_attribute,
00059 axis2_env_t **env);
00060
00069 axis2_qname_t * (AXIS2_CALL *get_qname)
00070 (struct axis2_om_attribute *om_attribute,
00071 axis2_env_t **env);
00072
00081 int (AXIS2_CALL *serialize)(struct axis2_om_attribute *om_attribute,
00082 axis2_env_t **env,
00083 axis2_om_output_t *om_output);
00084
00090 axis2_char_t* (AXIS2_CALL *get_localname)(
00091 struct axis2_om_attribute *om_attribute,
00092 axis2_env_t **env);
00099 axis2_char_t* (AXIS2_CALL *get_value)
00100 (struct axis2_om_attribute *om_attribute,
00101 axis2_env_t **env);
00108 axis2_om_namespace_t* (AXIS2_CALL *get_namespace)
00109 (struct axis2_om_attribute *om_attribute,
00110 axis2_env_t **env);
00111
00118 axis2_status_t (AXIS2_CALL *set_localname)
00119 (struct axis2_om_attribute *om_attribute,
00120 axis2_env_t **env,
00121 const axis2_char_t *localname);
00122
00130 axis2_status_t (AXIS2_CALL *set_value)
00131 (struct axis2_om_attribute *om_attribute,
00132 axis2_env_t **env,
00133 const axis2_char_t *value);
00134
00142 axis2_status_t (AXIS2_CALL *set_namespace)
00143 (struct axis2_om_attribute *om_attribute,
00144 axis2_env_t **env,
00145 axis2_om_namespace_t *om_namespace);
00146
00147
00148
00149 } axis2_om_attribute_ops_t;
00150
00155 typedef struct axis2_om_attribute
00156 {
00158 axis2_om_attribute_ops_t *ops;
00159
00160 } axis2_om_attribute_t;
00161
00171 AXIS2_DECLARE(axis2_om_attribute_t *)
00172 axis2_om_attribute_create (axis2_env_t **env,
00173 const axis2_char_t *localname,
00174 const axis2_char_t *value,
00175 axis2_om_namespace_t *ns);
00176
00177
00178
00179
00181 #define AXIS2_OM_ATTRIBUTE_FREE(om_attribute, env) \
00182 ((om_attribute)->ops->free(om_attribute, env))
00183
00185 #define AXIS2_OM_ATTRIBUTE_GET_QNAME(om_attribute,env) \
00186 ((om_attribute)->ops->get_qname(om_attribute, env))
00187
00189 #define AXIS2_OM_ATTRIBUTE_SERIALIZE(om_attribute, env, om_ouput) \
00190 ((om_attribute)->ops->serialize(om_attribute, env, om_output))
00192 #define AXIS2_OM_ATTRIBUTE_GET_NAMESPACE(om_attribute, env) \
00193 ((om_attribute)->ops->get_namespace(om_attribute, env))
00195 #define AXIS2_OM_ATTRIBUTE_GET_LOCALNAME(om_attribute, env) \
00196 ((om_attribute)->ops->get_localname(om_attribute, env))
00198 #define AXIS2_OM_ATTRIBUTE_GET_VALUE(om_attribute, env) \
00199 ((om_attribute)->ops->get_value(om_attribute, env))
00201 #define AXIS2_OM_ATTRIBUTE_SET_NAMESPACE(om_attribute, env,ns) \
00202 ((om_attribute)->ops->set_namespace(om_attribute, env,ns))
00204 #define AXIS2_OM_ATTRIBUTE_SET_LOCALNAME(om_attribute, env,localname) \
00205 ((om_attribute)->ops->set_localname(om_attribute, env,localname))
00207 #define AXIS2_OM_ATTRIBUTE_SET_VALUE(om_attribute, env,value) \
00208 ((om_attribute)->ops->set_value(om_attribute, env,value))
00209
00212 #ifdef __cplusplus
00213 }
00214 #endif
00215
00216 #endif