00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_DIRECTION_H
00018 #define WODEN_DIRECTION_H
00019
00049 #include <axis2_allocator.h>
00050 #include <axis2_env.h>
00051 #include <axis2_error.h>
00052 #include <axis2_string.h>
00053 #include <axis2_utils.h>
00054 #include <axis2_hash.h>
00055 #include <axis2_qname.h>
00056 #include <woden.h>
00057
00058 #ifdef __cplusplus
00059 extern "C"
00060 {
00061 #endif
00062
00063 typedef struct woden_direction woden_direction_t;
00064 typedef struct woden_direction_ops woden_direction_ops_t;
00065 struct woden_ext_element;
00066
00072 struct woden_direction_ops
00073 {
00078 axis2_status_t (AXIS2_CALL *
00079 free) (
00080 void *direction,
00081 const axis2_env_t *env);
00082
00083 axis2_char_t *(AXIS2_CALL *
00084 to_string) (
00085 void *direction,
00086 const axis2_env_t *env);
00087
00088
00089 };
00090
00091 struct woden_direction
00092 {
00093 woden_direction_ops_t *ops;
00094
00095 };
00096
00097 AXIS2_EXTERN woden_direction_t *AXIS2_CALL
00098 woden_direction_get_direction_in(
00099 const axis2_env_t *env);
00100
00101 AXIS2_EXTERN woden_direction_t *AXIS2_CALL
00102 woden_direction_get_direction_out(
00103 const axis2_env_t *env);
00104
00105 #define WODEN_DIRECTION_FREE(direction, env) \
00106 (((woden_direction_t *) direction)->ops->\
00107 free (direction, env))
00108
00109 #define WODEN_DIRECTION_TO_STRING(direction, env) \
00110 (((woden_direction_t *) direction)->ops->\
00111 to_string (direction, env))
00112
00113
00115 #ifdef __cplusplus
00116 }
00117 #endif
00118 #endif