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.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 {
00056 axis2_status_t (AXIS2_CALL *add_value)(struct axis2_any_content_type *any_content_type, axis2_env_t **env, axis2_qname_t *qname, axis2_char_t *value);
00063 axis2_char_t* (AXIS2_CALL *get_value)(struct axis2_any_content_type *any_content_type, axis2_env_t **env, axis2_qname_t *qname);
00064 axis2_hash_t* (AXIS2_CALL *get_value_map)(struct axis2_any_content_type *any_content_type, axis2_env_t **env);
00065 axis2_status_t (AXIS2_CALL *free)(struct axis2_any_content_type *any_content_type,
00066 axis2_env_t **env);
00067 } axis2_any_content_type_ops_t;
00068
00072 typedef struct axis2_any_content_type
00073 {
00075 axis2_any_content_type_ops_t *ops;
00076 } axis2_any_content_type_t;
00077
00078
00085 AXIS2_DECLARE(axis2_any_content_type_t*) axis2_any_content_type_create(axis2_env_t **env);
00086
00087 #define AXIS2_ANY_CONTENT_TYPE_ADD_VALUE(any_content_type, env, qname, value) ((any_content_type)->ops->add_value(any_content_type, env, qname, value))
00088 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE(any_content_type, env, qname) ((any_content_type)->ops->get_value(any_content_type, env, qname))
00089 #define AXIS2_ANY_CONTENT_TYPE_GET_VALUE_MAP(any_content_type, env) ((any_content_type)->ops->get_value_map(any_content_type, env))
00090 #define AXIS2_ANY_CONTENT_TYPE_FREE(any_content_type, env) ((any_content_type)->ops->free(any_content_type, env))
00091
00092
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098
00099 #endif