00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_OP_CLIENT_H
00018 #define AXIS2_OP_CLIENT_H
00019
00036 #include <axis2_defines.h>
00037 #include <axis2_env.h>
00038 #include <axis2_options.h>
00039 #include <axis2_msg_ctx.h>
00040 #include <axis2_callback.h>
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00052 typedef struct axis2_op_client_ops axis2_op_client_ops_t;
00053 typedef struct axis2_op_client axis2_op_client_t;
00054 struct axis2_callback_recv;
00055
00060 struct axis2_op_client_ops
00061 {
00062
00070 axis2_status_t (AXIS2_CALL *
00071 set_options)(struct axis2_op_client *op_client,
00072 const axis2_env_t *env,
00073 axis2_options_t *options);
00074
00075
00083 axis2_options_t* (AXIS2_CALL *
00084 get_options)(struct axis2_op_client *op_client,
00085 const axis2_env_t *env);
00086
00094 axis2_status_t (AXIS2_CALL *
00095 add_msg_ctx)(struct axis2_op_client *op_client,
00096 const axis2_env_t *env,
00097 axis2_msg_ctx_t *mc);
00098
00106 axis2_msg_ctx_t* (AXIS2_CALL *
00107 get_msg_ctx)(struct axis2_op_client *op_client,
00108 const axis2_env_t *env,
00109 const axis2_char_t *message_label);
00110
00121 axis2_status_t (AXIS2_CALL *
00122 set_callback)(struct axis2_op_client *op_client,
00123 const axis2_env_t *env,
00124 axis2_callback_t *callback);
00125
00138 axis2_status_t (AXIS2_CALL *
00139 execute)(struct axis2_op_client *op_client,
00140 const axis2_env_t *env,
00141 axis2_bool_t block);
00142
00149 axis2_status_t (AXIS2_CALL *
00150 reset)(struct axis2_op_client *op_client,
00151 const axis2_env_t *env);
00152
00161 axis2_status_t (AXIS2_CALL *
00162 compelete)(struct axis2_op_client *op_client,
00163 const axis2_env_t *env,
00164 axis2_msg_ctx_t *mc);
00165
00170 axis2_op_ctx_t* (AXIS2_CALL *
00171 get_operation_context)(struct axis2_op_client *op_client);
00172
00173 axis2_status_t (AXIS2_CALL *
00174 set_callback_recv)(
00175 struct axis2_op_client *op_client,
00176 const axis2_env_t *env,
00177 struct axis2_callback_recv *callback_recv);
00178
00179 axis2_status_t (AXIS2_CALL *
00180 free)(struct axis2_op_client *op_client,
00181 const axis2_env_t *env);
00182 };
00183
00188 struct axis2_op_client
00189 {
00190 axis2_op_client_ops_t *ops;
00191 };
00192
00193 AXIS2_EXTERN axis2_op_client_t* AXIS2_CALL axis2_op_client_create(const axis2_env_t *env,
00194 axis2_op_t *op,
00195 axis2_svc_ctx_t *svc_ctx,
00196 axis2_options_t *options);
00197
00198
00199
00200 #define AXIS2_OP_CLIENT_SET_OPTIONS(op_client, env, options) \
00201 ((op_client)->ops->set_options(op_client, env, options))
00202
00203 #define AXIS2_OP_CLIENT_GET_OPTIONS(op_client, env) \
00204 ((op_client)->ops->get_options(op_client, env))
00205
00206 #define AXIS2_OP_CLIENT_ADD_MSG_CTX(op_client, env, mc) \
00207 ((op_client)->ops->add_msg_ctx(op_client, env, mc))
00208
00209 #define AXIS2_OP_CLIENT_GET_MSG_CTX(op_client, env, message_label) \
00210 ((op_client)->ops->get_msg_ctx(op_client, env, message_label))
00211
00212 #define AXIS2_OP_CLIENT_SET_CALLBACK(op_client, env, callback) \
00213 ((op_client)->ops->set_callback(op_client, env, callback))
00214
00215 #define AXIS2_OP_CLIENT_EXECUTE(op_client, env, block) \
00216 ((op_client)->ops->execute(op_client, env, block))
00217
00218 #define AXIS2_OP_CLIENT_RESET(op_client, env) \
00219 ((op_client)->ops->reset(op_client, env))
00220
00221 #define AXIS2_OP_CLIENT_COMPLETE(op_client, env, mc) \
00222 ((op_client)->ops->compelete(op_client, env, mc))
00223
00224 #define AXIS2_OP_CLIENT_GET_OPERATION_CONTEXT(op_client, env) \
00225 ((op_client)->ops->get_operation_context(op_client, env))
00226
00227 #define AXIS2_OP_CLIENT_FREE(op_client, env) \
00228 ((op_client)->ops->free(op_client, env))
00229
00230 #define AXIS2_OP_CLIENT_SET_CALLBACK_RECV(op_client, env, callback_recv) \
00231 ((op_client)->ops->set_callback_recv(op_client, env, callback_recv))
00232
00233
00234
00236 #ifdef __cplusplus
00237 }
00238 #endif
00239
00240 #endif