00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_ANY_CONTENT_TYPE_H
00018 #define AXIS2_ANY_CONTENT_TYPE_H
00019
00025 #include <axis2_defines.h>
00026 #include <axis2_env.h>
00027 #include <axis2_const.h>
00028 #include <axis2_hash.h>
00029 #include <axis2_qname.h>
00030
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00036 struct axis2_any_content_type;
00037 struct axis2_any_content_type_ops;
00038
00048 AXIS2_DECLARE_DATA typedef struct axis2_any_content_type_ops
00049 {
00057 axis2_status_t (AXIS2_CALL *
00058 add_value)(struct axis2_any_content_type *any_content_type,
00059 const axis2_env_t *env,
00060 axis2_qname_t *qname,
00061 axis2_char_t *value);
00062
00071 axis2_char_t* (AXIS2_CALL *
00072 get_value)(struct axis2_any_content_type *any_content_type,
00073 const axis2_env_t *env,
00074 axis2_qname_t *qname);
00082 axis2_hash_t* (AXIS2_CALL *
00083 get_value_map)(struct axis2_any_content_type *any_content_type,
00084 const axis2_env_t *env);
00085
00092 axis2_status_t (AXIS2_CALL *
00093 free)(struct axis2_any_content_type *any_content_type,
00094 const axis2_env_t *env);
00095
00096 } axis2_any_content_type_ops_t;
00097
00101 typedef struct axis2_any_content_type
00102 {
00104 axis2_any_content_type_ops_t *ops;
00105 } axis2_any_content_type_t;
00106
00107
00113 AXIS2_EXTERN axis2_any_content_type_t* AXIS2_CALL
00114 axis2_any_content_type_create(const axis2_env_t *env);
00115
00116
00117
00118 #define AXIS2_ANY_CONTENT_TYPE_ADD_VALUE(any_content_type, env, qname, value) \
00119 ((any_content_type)->ops->add_value(any_content_type, env, qname, value))
00120
00121 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE(any_content_type, env, qname) \
00122 ((any_content_type)->ops->get_value(any_content_type, env, qname))
00123
00124 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE_MAP(any_content_type, env) \
00125 ((any_content_type)->ops->get_value_map(any_content_type, env))
00126
00127 #define AXIS2_ANY_CONTENT_TYPE_FREE(any_content_type, env) \
00128 ((any_content_type)->ops->free(any_content_type, env))
00129
00130
00133 #ifdef __cplusplus
00134 }
00135 #endif
00136
00137 #endif