00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_ANY_CONTENT_TYPE_H
00019 #define AXIS2_ANY_CONTENT_TYPE_H
00020
00035 #include <axis2_defines.h>
00036 #include <axis2_env.h>
00037 #include <axis2_const.h>
00038 #include <axis2_hash.h>
00039 #include <axis2_qname.h>
00040
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045
00047 typedef struct axis2_any_content_type axis2_any_content_type_t;
00049 typedef struct axis2_any_content_type_ops axis2_any_content_type_ops_t;
00050
00054 struct axis2_any_content_type_ops
00055 {
00064 axis2_status_t (AXIS2_CALL *
00065 add_value)(
00066 axis2_any_content_type_t *any_content_type,
00067 const axis2_env_t *env,
00068 const axis2_qname_t *qname,
00069 const axis2_char_t *value);
00070
00080 const axis2_char_t *(AXIS2_CALL *
00081 get_value)(
00082 const axis2_any_content_type_t *any_content_type,
00083 const axis2_env_t *env,
00084 const axis2_qname_t *qname);
00092 axis2_hash_t *(AXIS2_CALL *
00093 get_value_map)(
00094 const axis2_any_content_type_t *any_content_type,
00095 const axis2_env_t *env);
00096
00103 axis2_status_t (AXIS2_CALL *
00104 free)(
00105 axis2_any_content_type_t *any_content_type,
00106 const axis2_env_t *env);
00107
00108 };
00109
00113 struct axis2_any_content_type
00114 {
00116 axis2_any_content_type_ops_t *ops;
00117 };
00118
00119
00125 AXIS2_EXTERN axis2_any_content_type_t *AXIS2_CALL
00126 axis2_any_content_type_create(
00127 const axis2_env_t *env);
00128
00129
00132 #define AXIS2_ANY_CONTENT_TYPE_ADD_VALUE(any_content_type, env, qname, value) \
00133 ((any_content_type)->ops->add_value(any_content_type, env, qname, value))
00134
00137 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE(any_content_type, env, qname) \
00138 ((any_content_type)->ops->get_value(any_content_type, env, qname))
00139
00142 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE_MAP(any_content_type, env) \
00143 ((any_content_type)->ops->get_value_map(any_content_type, env))
00144
00147 #define AXIS2_ANY_CONTENT_TYPE_FREE(any_content_type, env) \
00148 ((any_content_type)->ops->free(any_content_type, env))
00149
00150
00153 #ifdef __cplusplus
00154 }
00155 #endif
00156
00157 #endif