00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_LISTENER_MANAGER_H
00018 #define AXIS2_LISTENER_MANAGER_H
00019
00038 #include <axis2_defines.h>
00039 #include <axis2_env.h>
00040 #include <axis2_conf_ctx.h>
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00048 typedef struct axis2_listener_manager_ops axis2_listener_manager_ops_t;
00050 typedef struct axis2_listener_manager axis2_listener_manager_t;
00051
00052
00057 struct axis2_listener_manager_ops
00058 {
00070 axis2_status_t (AXIS2_CALL *
00071 make_sure_started)(
00072 axis2_listener_manager_t *listener_manager,
00073 const axis2_env_t *env,
00074 const axis2_char_t *transport,
00075 axis2_conf_ctx_t *conf_ctx);
00076
00084 axis2_status_t (AXIS2_CALL *
00085 stop)(
00086 axis2_listener_manager_t *listener_manager,
00087 const axis2_env_t *env,
00088 const axis2_char_t *transport);
00099 axis2_endpoint_ref_t* (AXIS2_CALL *
00100 get_reply_to_epr)(
00101 const axis2_listener_manager_t *listener_manager,
00102 const axis2_env_t *env,
00103 const axis2_char_t *svc_name,
00104 const axis2_char_t *transport);
00105
00112 axis2_conf_ctx_t *(AXIS2_CALL *
00113 get_conf_ctx)(
00114 const axis2_listener_manager_t *listener_manager,
00115 const axis2_env_t *env);
00122 axis2_status_t (AXIS2_CALL *
00123 free)(
00124 axis2_listener_manager_t *listener_manager,
00125 const axis2_env_t *env);
00126
00127 };
00128
00132 struct axis2_listener_manager
00133 {
00135 axis2_listener_manager_ops_t *ops;
00136 };
00137
00144 AXIS2_EXTERN axis2_listener_manager_t *AXIS2_CALL
00145 axis2_listener_manager_create(
00146 const axis2_env_t *env);
00147
00150 #define AXIS2_LISTNER_MANAGER_MAKE_SURE_STARTED(listener_manager, env, transport, conf_ctx)\
00151 ((listener_manager)->ops->make_sure_started(listener_manager, env, transport, conf_ctx))
00152
00155 #define AXIS2_LISTENER_MANAGER_STOP(listener_manager, env, transport)\
00156 ((listener_manager)->ops->stop(listener_manager, env, transport))
00157
00160 #define AXIS2_LISTNER_MANAGER_GET_REPLY_TO_EPR(listener_manager, env, svc_name, transport) \
00161 ((listener_manager)->ops->get_reply_to_epr(listener_manager, env, svc_name, transport))
00162
00165 #define AXIS2_LISTNER_MANAGER_GET_CONF_CTX(listener_manager, env) \
00166 ((listener_manager)->ops->get_conf_ctx(listener_manager, env))
00167
00170 #define AXIS2_LISTNER_MANAGER_FREE(listener_manager, env) \
00171 ((listener_manager)->ops->free(listener_manager, env))
00172
00174 #ifdef __cplusplus
00175 }
00176 #endif
00177
00178 #endif