00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_ASYNC_RESULT_H
00019 #define AXIS2_ASYNC_RESULT_H
00020
00034 #include <axis2_defines.h>
00035 #include <axis2_env.h>
00036 #include <axis2_msg_ctx.h>
00037 #include <axiom_soap_envelope.h>
00038
00039 #ifdef __cplusplus
00040 extern "C"
00041 {
00042 #endif
00043
00044
00046 typedef struct axis2_async_result_ops axis2_async_result_ops_t;
00048 typedef struct axis2_async_result axis2_async_result_t;
00049
00050
00055 struct axis2_async_result_ops
00056 {
00063 axiom_soap_envelope_t *(AXIS2_CALL *
00064 get_envelope)(
00065 axis2_async_result_t *async_result,
00066 const axis2_env_t *env);
00067
00068
00075 axis2_msg_ctx_t *(AXIS2_CALL *
00076 get_result)(
00077 axis2_async_result_t *async_result,
00078 const axis2_env_t *env);
00079
00086 axis2_status_t (AXIS2_CALL *
00087 free)(
00088 axis2_async_result_t *async_result,
00089 const axis2_env_t *env);
00090 };
00091
00095 struct axis2_async_result
00096 {
00098 axis2_async_result_ops_t *ops;
00099 };
00100
00108 AXIS2_EXTERN axis2_async_result_t *AXIS2_CALL
00109 axis2_async_result_create(
00110 const axis2_env_t *env,
00111 axis2_msg_ctx_t *result);
00112
00115 #define AXIS2_ASYNC_RESULT_GET_ENVELOPE(async_result, env) \
00116 ((async_result)->ops->get_envelope(async_result, env))
00117
00120 #define AXIS2_ASYNC_RESULT_GET_RESULT(async_result, env) \
00121 ((async_result)->ops->get_result(async_result, env))
00122
00125 #define AXIS2_ASYNC_RESULT_FREE(async_result, env) \
00126 ((async_result)->ops->free (async_result, env))
00127
00129 #ifdef __cplusplus
00130 }
00131 #endif
00132
00133 #endif