00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_LISTENER_MANAGER_H
00019 #define AXIS2_LISTENER_MANAGER_H
00020
00039 #include <axis2_defines.h>
00040 #include <axis2_env.h>
00041 #include <axis2_conf_ctx.h>
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00049 typedef struct axis2_listener_manager_ops axis2_listener_manager_ops_t;
00051 typedef struct axis2_listener_manager axis2_listener_manager_t;
00052
00053
00058 struct axis2_listener_manager_ops
00059 {
00071 axis2_status_t (AXIS2_CALL *
00072 make_sure_started)(
00073 axis2_listener_manager_t *listener_manager,
00074 const axis2_env_t *env,
00075 const axis2_char_t *transport,
00076 axis2_conf_ctx_t *conf_ctx);
00077
00085 axis2_status_t (AXIS2_CALL *
00086 stop)(
00087 axis2_listener_manager_t *listener_manager,
00088 const axis2_env_t *env,
00089 const axis2_char_t *transport);
00100 axis2_endpoint_ref_t* (AXIS2_CALL *
00101 get_reply_to_epr)(
00102 const axis2_listener_manager_t *listener_manager,
00103 const axis2_env_t *env,
00104 const axis2_char_t *svc_name,
00105 const axis2_char_t *transport);
00106
00113 axis2_conf_ctx_t *(AXIS2_CALL *
00114 get_conf_ctx)(
00115 const axis2_listener_manager_t *listener_manager,
00116 const axis2_env_t *env);
00123 axis2_status_t (AXIS2_CALL *
00124 free)(
00125 axis2_listener_manager_t *listener_manager,
00126 const axis2_env_t *env);
00127
00128 };
00129
00133 struct axis2_listener_manager
00134 {
00136 axis2_listener_manager_ops_t *ops;
00137 };
00138
00145 AXIS2_EXTERN axis2_listener_manager_t *AXIS2_CALL
00146 axis2_listener_manager_create(
00147 const axis2_env_t *env);
00148
00151 #define AXIS2_LISTNER_MANAGER_MAKE_SURE_STARTED(listener_manager, env, transport, conf_ctx)\
00152 ((listener_manager)->ops->make_sure_started(listener_manager, env, transport, conf_ctx))
00153
00156 #define AXIS2_LISTENER_MANAGER_STOP(listener_manager, env, transport)\
00157 ((listener_manager)->ops->stop(listener_manager, env, transport))
00158
00161 #define AXIS2_LISTNER_MANAGER_GET_REPLY_TO_EPR(listener_manager, env, svc_name, transport) \
00162 ((listener_manager)->ops->get_reply_to_epr(listener_manager, env, svc_name, transport))
00163
00166 #define AXIS2_LISTNER_MANAGER_GET_CONF_CTX(listener_manager, env) \
00167 ((listener_manager)->ops->get_conf_ctx(listener_manager, env))
00168
00171 #define AXIS2_LISTNER_MANAGER_FREE(listener_manager, env) \
00172 ((listener_manager)->ops->free(listener_manager, env))
00173
00175 #ifdef __cplusplus
00176 }
00177 #endif
00178
00179 #endif