00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_CALLBACK_RECV_H
00019 #define AXIS2_CALLBACK_RECV_H
00020
00032 #include <axis2_defines.h>
00033 #include <axis2_env.h>
00034 #include <axis2_msg_recv.h>
00035 #include <axis2_callback.h>
00036
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041
00043 #define AXIS2_CALLBACK_RECV_SVC_NAME "ClientService"
00044
00046 typedef struct axis2_callback_recv_ops axis2_callback_recv_ops_t;
00048 typedef struct axis2_callback_recv axis2_callback_recv_t;
00049
00050
00055 struct axis2_callback_recv_ops
00056 {
00063 axis2_msg_recv_t *(AXIS2_CALL *
00064 get_base)(
00065 const axis2_callback_recv_t *callback_recv,
00066 const axis2_env_t *env);
00067
00074 axis2_status_t (AXIS2_CALL *
00075 free)(
00076 axis2_callback_recv_t *callback_recv,
00077 const axis2_env_t *env);
00078
00090 axis2_status_t (AXIS2_CALL *
00091 add_callback)(
00092 struct axis2_callback_recv *callback_recv,
00093 const axis2_env_t *env,
00094 const axis2_char_t *msg_id,
00095 axis2_callback_t *callback);
00096 };
00097
00101 struct axis2_callback_recv
00102 {
00104 axis2_callback_recv_ops_t *ops;
00105 };
00106
00113 AXIS2_EXTERN axis2_callback_recv_t *AXIS2_CALL
00114 axis2_callback_recv_create(
00115 const axis2_env_t *env);
00116
00119 #define AXIS2_CALLBACK_RECV_GET_BASE(callback_recv, env) \
00120 ((callback_recv)->ops->get_base(callback_recv, env))
00121
00124 #define AXIS2_CALLBACK_RECV_FREE(callback_recv, env) \
00125 ((callback_recv)->ops->free(callback_recv, env))
00126
00129 #define AXIS2_CALLBACK_RECV_ADD_CALLBACK(callback_recv, env, msg_id, callback)\
00130 ((callback_recv)->ops->add_callback(callback_recv, env, msg_id, callback))
00131
00132
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif