You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2007/04/01 07:31:16 UTC

svn commit: r524534 - in /webservices/axis2/trunk/c: include/axis2_http_svr_thread.h modules/core/transport/http/receiver/http_svr_thread.c

Author: samisa
Date: Sat Mar 31 22:31:15 2007
New Revision: 524534

URL: http://svn.apache.org/viewvc?view=rev&rev=524534
Log:
Removed ops

Modified:
    webservices/axis2/trunk/c/include/axis2_http_svr_thread.h
    webservices/axis2/trunk/c/modules/core/transport/http/receiver/http_svr_thread.c

Modified: webservices/axis2/trunk/c/include/axis2_http_svr_thread.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_http_svr_thread.h?view=diff&rev=524534&r1=524533&r2=524534
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_svr_thread.h (original)
+++ webservices/axis2/trunk/c/include/axis2_http_svr_thread.h Sat Mar 31 22:31:15 2007
@@ -39,84 +39,60 @@
 {
 #endif
 
-    /** Type name for struct axist_http_svr_thread_ops */
-    typedef struct axis2_http_svr_thread_ops axis2_http_svr_thread_ops_t;
     /** Type name for struct axist_http_svr_thread */
     typedef struct axis2_http_svr_thread axis2_http_svr_thread_t;
 
     extern int axis2_http_socket_read_timeout;
 
     /**
-     * HTTP Server Thread ops struct
-     * Encapsulator struct for ops of axis2_http_svr_thread
+     * @param svr_thread pointer to server thread
+     * @param env pointer to environment struct
+     */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axis2_http_svr_thread_run(axis2_http_svr_thread_t *svr_thread,
+        const axutil_env_t *env);
+
+    /**
+     * @param svr_thread pointer to server thread
+     * @param env pointer to environment struct
+     */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axis2_http_svr_thread_destroy(axis2_http_svr_thread_t *svr_thread,
+        const axutil_env_t *env);
+
+    /**
+     * @param svr_thread pointer to server thread
+     * @param env pointer to environment struct
+     */
+    AXIS2_EXTERN int AXIS2_CALL
+    axis2_http_svr_thread_get_local_port(const axis2_http_svr_thread_t *svr_thread,
+        const axutil_env_t *env);
+
+    /**
+     * @param svr_thread pointer to server thread
+     * @param env pointer to environment struct
+     */
+    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+    axis2_http_svr_thread_is_running(axis2_http_svr_thread_t *svr_thread,
+        const axutil_env_t *env);
+
+    /**
+     * @param svr_thread pointer to server thread
+     * @param env pointer to environment struct
+     * @param worker pointer to worker
+     */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axis2_http_svr_thread_set_worker(axis2_http_svr_thread_t *svr_thread,
+        const axutil_env_t *env,
+        axis2_http_worker_t *worker);
+
+    /**
+     * @param svr_thread pointer to server thread
+     * @param env pointer to environment struct
      */
-    struct axis2_http_svr_thread_ops
-    {
-        /**
-         * @param svr_thread pointer to server thread
-         * @param env pointer to environment struct
-         */
-        axis2_status_t (AXIS2_CALL *
-                run)(
-                    axis2_http_svr_thread_t *svr_thread,
-                    const axutil_env_t *env);
-
-        /**
-         * @param svr_thread pointer to server thread
-         * @param env pointer to environment struct
-         */
-        axis2_status_t (AXIS2_CALL *
-                destroy)(
-                    axis2_http_svr_thread_t *svr_thread,
-                    const axutil_env_t *env);
-
-        /**
-         * @param svr_thread pointer to server thread
-         * @param env pointer to environment struct
-         */
-        int (AXIS2_CALL *
-                get_local_port)(
-                    const axis2_http_svr_thread_t *svr_thread,
-                    const axutil_env_t *env);
-
-        /**
-         * @param svr_thread pointer to server thread
-         * @param env pointer to environment struct
-         */
-        axis2_bool_t (AXIS2_CALL *
-                is_running)(
-                    axis2_http_svr_thread_t *svr_thread,
-                    const axutil_env_t *env);
-
-        /**
-         * @param svr_thread pointer to server thread
-         * @param env pointer to environment struct
-         * @param worker pointer to worker
-         */
-        axis2_status_t (AXIS2_CALL *
-                set_worker)(
-                    axis2_http_svr_thread_t *svr_thread,
-                    const axutil_env_t *env,
-                    axis2_http_worker_t *worker);
-
-        /**
-         * @param svr_thread pointer to server thread
-         * @param env pointer to environment struct
-         */
-        void (AXIS2_CALL *
-                free)(
-                    axis2_http_svr_thread_t *svr_thread,
-                    const axutil_env_t *env);
-    };
-
-    /**
-     * axis2 http server thread
-     */
-    struct axis2_http_svr_thread
-    {
-        /** operations of axis2 http server thread */
-        axis2_http_svr_thread_ops_t *ops;
-    };
+    AXIS2_EXTERN void AXIS2_CALL
+    axis2_http_svr_thread_free(axis2_http_svr_thread_t *svr_thread,
+        const axutil_env_t *env);
 
     /**
      * @param env pointer to environment struct
@@ -127,41 +103,37 @@
         const axutil_env_t *env,
         int port);
 
-/************************** Start of function macros **************************/
-
 /** Run.
     @sa axis2_http_svr_thread_ops#run */
 #define AXIS2_HTTP_SVR_THREAD_RUN(svr_thread, env) \
-                  ((svr_thread)->ops->run(svr_thread, env))
+                  axis2_http_svr_thread_run(svr_thread, env)
 
 /** Destroy.
     @sa axis2_http_svr_thread_ops#destroy */
 #define AXIS2_HTTP_SVR_THREAD_DESTROY(svr_thread, env) \
-                        ((svr_thread)->ops->destroy(svr_thread, env))
+                        axis2_http_svr_thread_destroy(svr_thread, env)
 
 /** Gets the local port.
     @sa axis2_http_svr_thread_ops#get_local_port */
 #define AXIS2_HTTP_SVR_THREAD_GET_LOCAL_PORT(svr_thread, env) \
-                        ((svr_thread)->ops->get_local_port(svr_thread,\
-                  env))
+                        axis2_http_svr_thread_get_local_port(svr_thread,\
+                  env)
 
 /** Is running.
     @sa axis2_http_svr_thread_ops#is_running */
 #define AXIS2_HTTP_SVR_THREAD_IS_RUNNING(svr_thread, env) \
-                        ((svr_thread)->ops->is_running(svr_thread, env))
+                        axis2_http_svr_thread_is_running(svr_thread, env)
 
 /** Set worker.
     @sa axis2_http_svr_thread_ops#set_worker */
 #define AXIS2_HTTP_SVR_THREAD_SET_WORKER(svr_thread, env, worker) \
-                        ((svr_thread)->ops->set_worker(svr_thread, env,\
-                  worker))
+                        axis2_http_svr_thread_set_worker(svr_thread, env,\
+                  worker)
 
 /** Frees the http_svr_thread.
     @sa axis2_http_svr_thread_ops#free */
 #define AXIS2_HTTP_SVR_THREAD_FREE(svr_thread, env) \
-                ((svr_thread)->ops->free(svr_thread, env))
-
-/************************** End of function macros ****************************/
+                axis2_http_svr_thread_free(svr_thread, env)
 
 /** @} */
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/modules/core/transport/http/receiver/http_svr_thread.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/transport/http/receiver/http_svr_thread.c?view=diff&rev=524534&r1=524533&r2=524534
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/receiver/http_svr_thread.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/receiver/http_svr_thread.c Sat Mar 31 22:31:15 2007
@@ -28,22 +28,13 @@
 #include <axiom_xml_reader.h>
 #include <signal.h>
 
-
-
-/**
- * @brief HTTP Server Thread struct impl
- * Axis2 HTTP Server Thread impl
- */
-
-typedef struct axis2_http_svr_thread_impl
+struct axis2_http_svr_thread
 {
-    axis2_http_svr_thread_t svr_thread;
     int listen_socket;
     axis2_bool_t stopped;
     axis2_http_worker_t *worker;
     int port;
-}
-axis2_http_svr_thread_impl_t;
+};
 
 typedef struct axis2_http_svr_thd_args
 {
@@ -51,45 +42,8 @@
     axis2_socket_t socket;
     axis2_http_worker_t *worker;
     axutil_thread_t *thread;
-}
-axis2_http_svr_thd_args_t;
-
-
-#define AXIS2_INTF_TO_IMPL(http_svr_thread) \
-                ((axis2_http_svr_thread_impl_t *)(http_svr_thread))
-
-/***************************** Function headers *******************************/
-
-axis2_status_t AXIS2_CALL
-axis2_http_svr_thread_run(
-    axis2_http_svr_thread_t *svr_thread,
-    const axutil_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_http_svr_thread_destroy(
-    axis2_http_svr_thread_t *svr_thread,
-    const axutil_env_t *env);
-
-int AXIS2_CALL
-axis2_http_svr_thread_get_local_port(
-    const axis2_http_svr_thread_t *svr_thread,
-    const axutil_env_t *env);
-
-axis2_bool_t AXIS2_CALL
-axis2_http_svr_thread_is_running(
-    axis2_http_svr_thread_t *svr_thread,
-    const axutil_env_t *env);
+}axis2_http_svr_thd_args_t;
 
-axis2_status_t AXIS2_CALL
-axis2_http_svr_thread_set_worker(
-    axis2_http_svr_thread_t *svr_thread,
-    const axutil_env_t *env,
-    axis2_http_worker_t *worker);
-
-void AXIS2_CALL
-axis2_http_svr_thread_free(
-    axis2_http_svr_thread_t *svr_thread,
-    const axutil_env_t *env);
 
 AXIS2_EXTERN const axutil_env_t *AXIS2_CALL
 init_thread_env(
@@ -100,60 +54,37 @@
     axutil_thread_t *thd,
     void *data);
 
-/***************************** End of function headers ************************/
-
 axis2_http_svr_thread_t *AXIS2_CALL
 axis2_http_svr_thread_create(
     const axutil_env_t *env,
     int port)
 {
-    axis2_http_svr_thread_impl_t *svr_thread_impl = NULL;
+    axis2_http_svr_thread_t *svr_thread = NULL;
     AXIS2_ENV_CHECK(env, NULL);
 
-    svr_thread_impl = (axis2_http_svr_thread_impl_t *)AXIS2_MALLOC
+    svr_thread = (axis2_http_svr_thread_t *)AXIS2_MALLOC
             (env->allocator, sizeof(
-                        axis2_http_svr_thread_impl_t));
+                        axis2_http_svr_thread_t));
 
-    if (! svr_thread_impl)
+    if (! svr_thread)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    svr_thread_impl->worker = NULL;
-    svr_thread_impl->stopped = AXIS2_FALSE;
-    svr_thread_impl->port = port;
-    svr_thread_impl->listen_socket = axutil_network_handler_create_server_socket
-            (env, svr_thread_impl->port);
-    svr_thread_impl->svr_thread.ops = NULL;
-    if (-1 == svr_thread_impl->listen_socket)
+    svr_thread->worker = NULL;
+    svr_thread->stopped = AXIS2_FALSE;
+    svr_thread->port = port;
+    svr_thread->listen_socket = axutil_network_handler_create_server_socket
+            (env, svr_thread->port);
+    if (-1 == svr_thread->listen_socket)
     {
-        axis2_http_svr_thread_free((axis2_http_svr_thread_t *) svr_thread_impl,
+        axis2_http_svr_thread_free((axis2_http_svr_thread_t *) svr_thread,
                 env);
         return NULL;
     }
-    svr_thread_impl->svr_thread.ops = AXIS2_MALLOC(env->allocator,
-            sizeof(axis2_http_svr_thread_ops_t));
-    if (! svr_thread_impl->svr_thread.ops)
-    {
-        axis2_http_svr_thread_free((axis2_http_svr_thread_t *) svr_thread_impl,
-                env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-
-    svr_thread_impl->svr_thread.ops->run = axis2_http_svr_thread_run;
-    svr_thread_impl->svr_thread.ops->destroy =
-        axis2_http_svr_thread_destroy;
-    svr_thread_impl->svr_thread.ops->get_local_port =
-        axis2_http_svr_thread_get_local_port;
-    svr_thread_impl->svr_thread.ops->is_running =
-        axis2_http_svr_thread_is_running;
-    svr_thread_impl->svr_thread.ops->set_worker =
-        axis2_http_svr_thread_set_worker;
-    svr_thread_impl->svr_thread.ops->free = axis2_http_svr_thread_free;
 
-    return &(svr_thread_impl->svr_thread);
+    return svr_thread;
 }
 
 
@@ -162,25 +93,21 @@
     axis2_http_svr_thread_t *svr_thread,
     const axutil_env_t *env)
 {
-    axis2_http_svr_thread_impl_t *svr_thread_impl = NULL;
     AXIS2_ENV_CHECK(env, void);
-    svr_thread_impl = AXIS2_INTF_TO_IMPL(svr_thread);
 
-    if (svr_thread_impl->worker)
+    if (svr_thread->worker)
     {
-        AXIS2_HTTP_WORKER_FREE(svr_thread_impl->worker, env);
-        svr_thread_impl->worker = NULL;
+        AXIS2_HTTP_WORKER_FREE(svr_thread->worker, env);
+        svr_thread->worker = NULL;
     }
-    if (-1 != svr_thread_impl->listen_socket)
+    if (-1 != svr_thread->listen_socket)
     {
-        axutil_network_handler_close_socket(env, svr_thread_impl->listen_socket);
-        svr_thread_impl->listen_socket = -1;
+        axutil_network_handler_close_socket(env, svr_thread->listen_socket);
+        svr_thread->listen_socket = -1;
     }
-    svr_thread_impl->stopped = AXIS2_TRUE;
-    if (svr_thread->ops)
-        AXIS2_FREE(env->allocator, svr_thread->ops);
-
-    AXIS2_FREE(env->allocator, AXIS2_INTF_TO_IMPL(svr_thread));
+    svr_thread->stopped = AXIS2_TRUE;
+    
+    AXIS2_FREE(env->allocator, svr_thread);
     return;
 }
 
@@ -190,20 +117,17 @@
     axis2_http_svr_thread_t *svr_thread,
     const axutil_env_t *env)
 {
-    axis2_http_svr_thread_impl_t *svr_thread_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    svr_thread_impl = AXIS2_INTF_TO_IMPL(svr_thread);
 
-    while (AXIS2_FALSE == svr_thread_impl->stopped)
+    while (AXIS2_FALSE == svr_thread->stopped)
     {
         int socket = -1;
         axis2_http_svr_thd_args_t *arg_list = NULL;
         axutil_thread_t *worker_thread = NULL;
 
         socket = axutil_network_handler_svr_socket_accept(env,
-                svr_thread_impl->listen_socket);
-        if (! svr_thread_impl->worker)
+                svr_thread->listen_socket);
+        if (! svr_thread->worker)
         {
             AXIS2_LOG_WARNING(env->log, AXIS2_LOG_SI, "Worker not ready yet."
                     " Cannot serve the request");
@@ -220,7 +144,7 @@
         }
         arg_list->env = (axutil_env_t *)env;
         arg_list->socket = socket;
-        arg_list->worker = svr_thread_impl->worker;
+        arg_list->worker = svr_thread->worker;
 #ifdef AXIS2_SVR_MULTI_THREADED
         worker_thread = AXIS2_THREAD_POOL_GET_THREAD(env->thread_pool,
                 axis2_svr_thread_worker_func, (void *)arg_list);
@@ -243,22 +167,19 @@
     axis2_http_svr_thread_t *svr_thread,
     const axutil_env_t *env)
 {
-    axis2_http_svr_thread_impl_t *svr_thread_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
 
-    svr_thread_impl = AXIS2_INTF_TO_IMPL(svr_thread);
-    if (AXIS2_TRUE == svr_thread_impl->stopped)
+    if (AXIS2_TRUE == svr_thread->stopped)
     {
         return AXIS2_SUCCESS;
     }
-    svr_thread_impl->stopped = AXIS2_TRUE;
+    svr_thread->stopped = AXIS2_TRUE;
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Terminating HTTP server "
             "thread.");
-    if (svr_thread_impl->listen_socket)
+    if (svr_thread->listen_socket)
     {
-        axutil_network_handler_close_socket(env, svr_thread_impl->listen_socket);
-        svr_thread_impl->listen_socket = -1;
+        axutil_network_handler_close_socket(env, svr_thread->listen_socket);
+        svr_thread->listen_socket = -1;
     }
     /* TODO: stop all the child threads */
     return AXIS2_SUCCESS;
@@ -269,8 +190,7 @@
     const axis2_http_svr_thread_t *svr_thread,
     const axutil_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
-    return AXIS2_INTF_TO_IMPL(svr_thread)->port;
+    return svr_thread->port;
 }
 
 axis2_bool_t AXIS2_CALL
@@ -278,8 +198,7 @@
     axis2_http_svr_thread_t *svr_thread,
     const axutil_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    return AXIS2_INTF_TO_IMPL(svr_thread)->port;
+    return svr_thread->port;
 }
 
 axis2_status_t AXIS2_CALL
@@ -290,7 +209,7 @@
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, worker, AXIS2_FAILURE);
-    AXIS2_INTF_TO_IMPL(svr_thread)->worker = worker;
+    svr_thread->worker = worker;
     return AXIS2_SUCCESS;
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org