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
00034 #include <axis2_defines.h>
00035 #include <axis2_env.h>
00036 #include <axis2_const.h>
00037 #include <axis2_hash.h>
00038 #include <axis2_qname.h>
00039
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044
00046 typedef struct axis2_any_content_type axis2_any_content_type_t;
00048 typedef struct axis2_any_content_type_ops axis2_any_content_type_ops_t;
00049
00053 struct axis2_any_content_type_ops
00054 {
00063 axis2_status_t (AXIS2_CALL *
00064 add_value)(
00065 axis2_any_content_type_t *any_content_type,
00066 const axis2_env_t *env,
00067 const axis2_qname_t *qname,
00068 const axis2_char_t *value);
00069
00079 const axis2_char_t *(AXIS2_CALL *
00080 get_value)(
00081 const axis2_any_content_type_t *any_content_type,
00082 const axis2_env_t *env,
00083 const axis2_qname_t *qname);
00091 axis2_hash_t *(AXIS2_CALL *
00092 get_value_map)(
00093 const axis2_any_content_type_t *any_content_type,
00094 const axis2_env_t *env);
00095
00102 axis2_status_t (AXIS2_CALL *
00103 free)(
00104 axis2_any_content_type_t *any_content_type,
00105 const axis2_env_t *env);
00106
00107 };
00108
00112 struct axis2_any_content_type
00113 {
00115 axis2_any_content_type_ops_t *ops;
00116 };
00117
00118
00124 AXIS2_EXTERN axis2_any_content_type_t *AXIS2_CALL
00125 axis2_any_content_type_create(
00126 const axis2_env_t *env);
00127
00128
00131 #define AXIS2_ANY_CONTENT_TYPE_ADD_VALUE(any_content_type, env, qname, value) \
00132 ((any_content_type)->ops->add_value(any_content_type, env, qname, value))
00133
00136 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE(any_content_type, env, qname) \
00137 ((any_content_type)->ops->get_value(any_content_type, env, qname))
00138
00141 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE_MAP(any_content_type, env) \
00142 ((any_content_type)->ops->get_value_map(any_content_type, env))
00143
00146 #define AXIS2_ANY_CONTENT_TYPE_FREE(any_content_type, env) \
00147 ((any_content_type)->ops->free(any_content_type, env))
00148
00149
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155
00156 #endif