00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIOM_NAMESPACE_H
00018 #define AXIOM_NAMESPACE_H
00019
00026 #include <axis2_utils_defines.h>
00027 #include <axis2_env.h>
00028 #include <axiom_output.h>
00029
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00035 struct axiom_namespace;
00036 struct axiom_namespace_ops;
00037
00048 AXIS2_DECLARE_DATA typedef struct axiom_namespace_ops
00049 {
00056 axis2_status_t (AXIS2_CALL *
00057 free) (struct axiom_namespace *om_namespace,
00058 const axis2_env_t *env);
00059
00067 axis2_bool_t (AXIS2_CALL *
00068 equals)(struct axiom_namespace *om_namespace,
00069 const axis2_env_t *env,
00070 struct axiom_namespace *om_namespace1);
00071
00079 axis2_status_t (AXIS2_CALL *
00080 serialize)(struct axiom_namespace *om_namespace,
00081 const axis2_env_t *env,
00082 axiom_output_t * om_output);
00088 axis2_char_t* (AXIS2_CALL *
00089 get_uri)(struct axiom_namespace *om_namespace,
00090 const axis2_env_t *env);
00096 axis2_char_t* (AXIS2_CALL *
00097 get_prefix)(struct axiom_namespace *om_namespace,
00098 const axis2_env_t *env);
00099
00100
00107 struct axiom_namespace* (AXIS2_CALL *
00108 clone)(struct axiom_namespace *om_namespace,
00109 const axis2_env_t *env);
00110
00119 axis2_char_t * (AXIS2_CALL *
00120 to_string)(struct axiom_namespace *om_namespace,
00121 const axis2_env_t *env);
00122
00123 } axiom_namespace_ops_t;
00124
00129 typedef struct axiom_namespace
00130 {
00132 axiom_namespace_ops_t *ops;
00133
00134 } axiom_namespace_t;
00135
00142 AXIS2_EXTERN axiom_namespace_t * AXIS2_CALL
00143 axiom_namespace_create (const axis2_env_t *env,
00144 const axis2_char_t * uri,
00145 const axis2_char_t *prefix);
00146
00148 #define AXIOM_NAMESPACE_FREE(om_namespace,env) \
00149 ((om_namespace)->ops->free(om_namespace, env))
00150
00152 #define AXIOM_NAMESPACE_EQUALS(om_namespace, env, om_namespace1) \
00153 ((om_namespace)->ops->equals(om_namespace, env, om_namespace1))
00154
00156 #define AXIOM_NAMESPACE_SERIALIZE(om_namespace,env, om_output) \
00157 ((om_namespace)->ops->serialize(om_namespace, env,om_output))
00158
00159 #define AXIOM_NAMESPACE_GET_PREFIX(om_namespace, env) \
00160 ((om_namespace)->ops->get_prefix(om_namespace, env))
00161
00162 #define AXIOM_NAMESPACE_GET_URI(om_namespace, env) \
00163 ((om_namespace)->ops->get_uri(om_namespace, env))
00164
00165 #define AXIOM_NAMESPACE_CLONE(om_namespace, env) \
00166 ((om_namespace)->ops->clone(om_namespace, env))
00167
00168 #define AXIOM_NAMESPACE_TO_STRING(om_namespace, env) \
00169 ((om_namespace)->ops->to_string(om_namespace, env))
00170
00173 #ifdef __cplusplus
00174 }
00175 #endif
00176
00177 #endif