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
00020
00037 #include <axis2_defines.h>
00038 #include <axis2_env.h>
00039 #include <axis2_const.h>
00040
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045
00047 typedef struct axis2_relates_to axis2_relates_to_t;
00049 typedef struct axis2_relates_to_ops axis2_relates_to_ops_t;
00050
00051
00055 struct axis2_relates_to_ops
00056 {
00064 const axis2_char_t *(AXIS2_CALL *
00065 get_value)(
00066 const axis2_relates_to_t *relates_to,
00067 const axis2_env_t *env);
00068
00077 axis2_status_t (AXIS2_CALL *
00078 set_value)(
00079 struct axis2_relates_to *relates_to,
00080 const axis2_env_t *env,
00081 const axis2_char_t *value);
00082
00089 const axis2_char_t *(AXIS2_CALL *
00090 get_relationship_type)(
00091 const axis2_relates_to_t *relates_to,
00092 const axis2_env_t *env);
00093
00101 axis2_status_t (AXIS2_CALL *
00102 set_relationship_type)(
00103 struct axis2_relates_to *relates_to,
00104 const axis2_env_t *env,
00105 const axis2_char_t *relationship_type);
00106
00113 axis2_status_t (AXIS2_CALL *
00114 free)(
00115 struct axis2_relates_to *relates_to,
00116 const axis2_env_t *env);
00117 };
00118
00122 struct axis2_relates_to
00123 {
00125 axis2_relates_to_ops_t *ops;
00126 };
00127
00128
00135 AXIS2_EXTERN axis2_relates_to_t *AXIS2_CALL
00136 axis2_relates_to_create(
00137 const axis2_env_t *env,
00138 const axis2_char_t *value,
00139 const axis2_char_t *relationship_type);
00140
00143 #define AXIS2_RELATES_TO_GET_VALUE(relates_to, env) \
00144 ((relates_to)->ops->get_value(relates_to, env))
00145
00148 #define AXIS2_RELATES_TO_SET_VALUE(relates_to, env, vlaue) \
00149 ((relates_to)->ops->set_value(relates_to, env, vlaue))
00150
00153 #define AXIS2_RELATES_TO_GET_RELATIONSHIP_TYPE(relates_to, env) \
00154 ((relates_to)->ops->get_relationship_type(relates_to, env))
00155
00158 #define AXIS2_RELATES_TO_SET_RELATIONSHIP_TYPE(relates_to, env, relationship_type) \
00159 ((relates_to)->ops->set_relationship_type(relates_to, env, relationship_type))
00160
00163 #define AXIS2_RELATES_TO_FREE(relates_to, env) \
00164 ((relates_to)->ops->free(relates_to, env))
00165
00168 #ifdef __cplusplus
00169 }
00170 #endif
00171
00172 #endif