00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_MSG_H
00018 #define AXIS2_MSG_H
00019
00025 #include <axis2_param_container.h>
00026 #include <axis2_op.h>
00027 #include <axis2_array_list.h>
00028 #include <axis2_description.h>
00029 #include <axis2_phase_meta.h>
00030
00031 #define AXIS2_MSG_IN "InMessage"
00032 #define AXIS2_MSG_OUT "OutMessage"
00033 #define AXIS2_MSG_IN_FAULT "InFaultMessage"
00034 #define AXIS2_MSG_OUT_FAULT "OutFaultMessage"
00035
00036
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041
00047 typedef struct axis2_msg_ops axis2_msg_ops_t;
00048 typedef struct axis2_msg axis2_msg_t;
00049
00054 AXIS2_DECLARE_DATA struct axis2_msg_ops
00055 {
00056 axis2_status_t (AXIS2_CALL *
00057 free)(
00058 axis2_msg_t *msg,
00059 const axis2_env_t *env);
00060
00061 axis2_status_t (AXIS2_CALL *
00062 add_param)(
00063 axis2_msg_t *msg,
00064 const axis2_env_t *env,
00065 axis2_param_t *param);
00066
00067 axis2_param_t *(AXIS2_CALL *
00068 get_param)(
00069 axis2_msg_t *msg,
00070 const axis2_env_t *env,
00071 axis2_char_t *name);
00072
00073 axis2_array_list_t *(AXIS2_CALL *
00074 get_params)(
00075 axis2_msg_t *msg,
00076 const axis2_env_t *env);
00077
00078 axis2_bool_t (AXIS2_CALL *
00079 is_param_locked)(
00080 axis2_msg_t *msg,
00081 const axis2_env_t *env,
00082 axis2_char_t *param_name);
00083
00084 axis2_status_t (AXIS2_CALL *
00085 set_parent)(
00086 axis2_msg_t *msg,
00087 const axis2_env_t *env,
00088 axis2_op_t *op);
00089
00090 axis2_op_t *(AXIS2_CALL *
00091 get_parent)(
00092 axis2_msg_t *msg,
00093 const axis2_env_t *env);
00094
00095 axis2_array_list_t *(AXIS2_CALL *
00096 get_flow)(
00097 axis2_msg_t *msg,
00098 const axis2_env_t *env);
00099
00100 axis2_status_t (AXIS2_CALL *
00101 set_flow)(
00102 axis2_msg_t *msg,
00103 const axis2_env_t *env,
00104 axis2_array_list_t *flow);
00105
00106 axis2_char_t *(AXIS2_CALL *
00107 get_direction)(
00108 axis2_msg_t *msg,
00109 const axis2_env_t *env);
00110
00111 axis2_status_t (AXIS2_CALL *
00112 set_direction)(
00113 axis2_msg_t *msg,
00114 const axis2_env_t *env,
00115 const axis2_char_t *direction);
00116
00117 axis2_qname_t *(AXIS2_CALL *
00118 get_element_qname)(
00119 axis2_msg_t *msg,
00120 const axis2_env_t *env);
00121
00122 axis2_status_t (AXIS2_CALL *
00123 set_element_qname)(
00124 axis2_msg_t *msg,
00125 const axis2_env_t *env,
00126 axis2_qname_t *element_qname);
00127
00128 axis2_char_t *(AXIS2_CALL *
00129 get_name)(
00130 axis2_msg_t *msg,
00131 const axis2_env_t *env);
00132
00133 axis2_status_t (AXIS2_CALL *
00134 set_name)(
00135 axis2_msg_t *msg,
00136 const axis2_env_t *env,
00137 const axis2_char_t *name);
00138 };
00139
00144 AXIS2_DECLARE_DATA struct axis2_msg
00145 {
00146 axis2_msg_ops_t *ops;
00147 struct axis2_param_container *param_container;
00148 };
00149
00154 AXIS2_EXTERN axis2_msg_t * AXIS2_CALL
00155 axis2_msg_create (const axis2_env_t *env);
00156
00157
00158
00159 #define AXIS2_MSG_FREE(msg, env) \
00160 ((msg)->ops->free (msg, env))
00161
00162 #define AXIS2_MSG_ADD_PARAM(msg, env, param) \
00163 ((msg)->ops->add_param (msg, env, param))
00164
00165 #define AXIS2_MSG_GET_PARAM(msg, env, key) \
00166 ((msg)->ops->get_param (msg, env, key))
00167
00168 #define AXIS2_MSG_GET_PARAMS(msg, env) \
00169 ((msg)->ops->get_params (msg, env))
00170
00171 #define AXIS2_MSG_IS_PARAM_LOCKED(msg, env, param_name) \
00172 ((msg)->ops->is_param_locked(msg, env, param_name))
00173
00174 #define AXIS2_MSG_SET_PARENT(msg, env, service_desc) \
00175 ((msg)->ops->set_parent (msg, env, service_desc))
00176
00177 #define AXIS2_MSG_GET_PARENT(msg, env) \
00178 ((msg)->ops->get_parent (msg, env))
00179
00180 #define AXIS2_MSG_GET_FLOW(msg, env) \
00181 ((msg)->ops->get_flow (msg, env))
00182
00183 #define AXIS2_MSG_SET_FLOW(msg, env, flow) \
00184 ((msg)->ops->set_flow (msg, env, flow))
00185
00186 #define AXIS2_MSG_GET_DIRECTION(msg, env) \
00187 ((msg)->ops->get_direction (msg, env))
00188
00189 #define AXIS2_MSG_SET_DIRECTION(msg, env, direction) \
00190 ((msg)->ops->set_direction (msg, env, direction))
00191
00192 #define AXIS2_MSG_GET_ELEMENT_QNAME(msg, env) \
00193 ((msg)->ops->get_element_qname(msg, env))
00194
00195 #define AXIS2_MSG_SET_ELEMENT_QNAME(msg, env, element_qname) \
00196 ((msg)->ops->set_element_qname(msg, env, element_qname))
00197
00198 #define AXIS2_MSG_GET_NAME(msg, env) \
00199 ((msg)->ops->get_name(msg, env))
00200
00201 #define AXIS2_MSG_SET_NAME(msg, env, name) \
00202 ((msg)->ops->set_name(msg, env, name))
00203
00204
00205
00207 #ifdef __cplusplus
00208 }
00209 #endif
00210 #endif