00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_HTTP_WORKER_H
00019 #define AXIS2_HTTP_WORKER_H
00020
00032 #include <axis2_const.h>
00033 #include <axis2_defines.h>
00034 #include <axis2_env.h>
00035 #include <axis2_simple_http_svr_conn.h>
00036 #include <axis2_http_simple_response.h>
00037 #include <axis2_http_simple_request.h>
00038 #include <axis2_conf_ctx.h>
00039
00040
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045
00047 typedef struct axis2_http_worker_ops axis2_http_worker_ops_t;
00049 typedef struct axis2_http_worker axis2_http_worker_t;
00050
00055 struct axis2_http_worker_ops
00056 {
00063 axis2_bool_t (AXIS2_CALL *
00064 process_request)(
00065 axis2_http_worker_t *http_worker,
00066 const axis2_env_t *env,
00067 axis2_simple_http_svr_conn_t *svr_conn,
00068 axis2_http_simple_request_t *simple_request);
00069
00076 axis2_status_t (AXIS2_CALL *
00077 set_svr_port)(
00078 axis2_http_worker_t *http_worker,
00079 const axis2_env_t *env,
00080 int port);
00081
00087 axis2_status_t (AXIS2_CALL *
00088 free)(
00089 axis2_http_worker_t *http_worker,
00090 const axis2_env_t *env);
00091 };
00092
00096 struct axis2_http_worker
00097 {
00099 axis2_http_worker_ops_t *ops;
00100 };
00101
00102
00107 AXIS2_EXTERN axis2_http_worker_t * AXIS2_CALL
00108 axis2_http_worker_create (
00109 const axis2_env_t *env,
00110 axis2_conf_ctx_t *conf_ctx);
00111
00112
00113
00116 #define AXIS2_HTTP_WORKER_PROCESS_REQUEST(http_worker, env, svr_conn,\
00117 simple_request) ((http_worker)->ops->process_request(\
00118 http_worker, env, svr_conn, simple_request))
00119
00122 #define AXIS2_HTTP_WORKER_SET_SVR_PORT(http_worker, env, port) \
00123 ((http_worker)->ops->set_svr_port(http_worker, env, port))
00124
00127 #define AXIS2_HTTP_WORKER_FREE(http_worker, env) \
00128 ((http_worker)->ops->free(http_worker, env))
00129
00130
00131
00133 #ifdef __cplusplus
00134 }
00135 #endif
00136
00137 #endif