00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_RELATES_TO_H
00018 #define AXIS2_RELATES_TO_H
00019
00025 #include <axis2_defines.h>
00026 #include <axis2_env.h>
00027 #include <axis2_const.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00034 struct axis2_relates_to;
00035 struct axis2_relates_to_ops;
00036
00046 AXIS2_DECLARE_DATA typedef struct axis2_relates_to_ops
00047 {
00053 axis2_char_t* (AXIS2_CALL *
00054 get_value)(struct axis2_relates_to *relates_to,
00055 const axis2_env_t *env);
00056
00062 axis2_status_t (AXIS2_CALL *
00063 set_value)(struct axis2_relates_to *relates_to,
00064 const axis2_env_t *env,
00065 axis2_char_t * value);
00066
00072 axis2_char_t* (AXIS2_CALL *
00073 get_relationship_type)(struct axis2_relates_to *relates_to,
00074 const axis2_env_t *env);
00075
00081 axis2_status_t (AXIS2_CALL *
00082 set_relationship_type)(struct axis2_relates_to *relates_to,
00083 const axis2_env_t *env,
00084 axis2_char_t *relationship_type);
00085
00090 axis2_status_t (AXIS2_CALL *
00091 free) (struct axis2_relates_to *relates_to,
00092 const axis2_env_t *env);
00093
00094 } axis2_relates_to_ops_t;
00095
00099 typedef struct axis2_relates_to
00100 {
00102 axis2_relates_to_ops_t *ops;
00103 } axis2_relates_to_t;
00104
00105
00112 AXIS2_EXTERN axis2_relates_to_t* AXIS2_CALL
00113 axis2_relates_to_create(const axis2_env_t *env,
00114 const axis2_char_t *value,
00115 const axis2_char_t *relationship_type);
00116
00117 #define AXIS2_RELATES_TO_GET_VALUE(relates_to, env) \
00118 ((relates_to)->ops->get_value(relates_to, env))
00119
00120 #define AXIS2_RELATES_TO_SET_VALUE(relates_to, env, vlaue) \
00121 ((relates_to)->ops->set_value(relates_to, env, vlaue))
00122
00123 #define AXIS2_RELATES_TO_GET_RELATIONSHIP_TYPE(relates_to, env) \
00124 ((relates_to)->ops->get_relationship_type(relates_to, env))
00125
00126 #define AXIS2_RELATES_TO_SET_RELATIONSHIP_TYPE(relates_to, env, relationship_type) \
00127 ((relates_to)->ops->set_relationship_type(relates_to, env, relationship_type))
00128
00129 #define AXIS2_RELATES_TO_FREE(relates_to, env) \
00130 ((relates_to)->ops->free(relates_to, env))
00131
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif