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/03/15 14:16:11 UTC

svn commit: r518623 [9/17] - in /webservices/axis2/trunk/c: build/win32/ include/ modules/core/clientapi/ modules/core/deployment/ modules/core/engine/ modules/core/phaseresolver/ modules/core/receivers/ modules/core/transport/http/receiver/ modules/co...

Modified: webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c?view=diff&rev=518623&r1=518622&r2=518623
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c Thu Mar 15 06:16:07 2007
@@ -34,11 +34,8 @@
 #include <platforms/axis2_platform_auto_sense.h>
 #include <stdio.h>
 
-typedef struct axis2_svc_client_impl
+struct axis2_svc_client
 {
-    /** svc_client base struct */
-    axis2_svc_client_t svc_client;
-
     axis2_svc_t *svc;
 
     axis2_conf_t *conf;
@@ -60,180 +57,47 @@
 
     axis2_op_client_t *op_client;
 
-}
-axis2_svc_client_impl_t;
+};
 
-/** Interface to implementation conversion macro */
-#define AXIS2_INTF_TO_IMPL(svc_client) ((axis2_svc_client_impl_t *)svc_client)
+static axis2_svc_t *
+axis2_svc_client_create_annonymous_svc(
+    axis2_svc_client_t *svc_client,
+    const axis2_env_t *env);
 
-/** private functions */
 static axis2_bool_t
 axis2_svc_client_init_transports_from_conf_ctx(
     const axis2_env_t *env,
-    axis2_svc_client_impl_t *svc_client_impl,
+    axis2_svc_client_t *svc_client,
     axis2_conf_ctx_t *conf_ctx,
     const axis2_char_t *client_home);
 
 static axis2_bool_t
 axis2_svc_client_init_data(
     const axis2_env_t *env,
-    axis2_svc_client_impl_t *svc_client_impl);
-
-static void
-axis2_svc_client_init_ops(
     axis2_svc_client_t *svc_client);
 
-static axis2_svc_t *
-axis2_svc_client_create_annonymous_svc(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
 static axis2_bool_t
 axis2_svc_client_fill_soap_envelope(
     const axis2_env_t *env,
-    axis2_svc_client_impl_t *svc_client_impl,
-    axis2_msg_ctx_t *msg_ctx,
-    const axiom_node_t *payload);
-
-/** public functions */
-axis2_svc_t *AXIS2_CALL
-axis2_svc_client_get_svc(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_set_options(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_options_t *options);
-
-const axis2_options_t *AXIS2_CALL
-axis2_svc_client_get_options(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_set_override_options(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_options_t *override_options);
-
-const axis2_options_t *AXIS2_CALL
-axis2_svc_client_get_override_options(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_engage_module(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_char_t *module_name);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_disengage_module(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_char_t *module_name);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_add_header(
     axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    axiom_node_t *header);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_remove_all_headers(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_send_robust(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_qname_t *op_qname,
-    const axiom_node_t *payload);
-
-void AXIS2_CALL
-axis2_svc_client_fire_and_forget(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_qname_t *op_qname,
-    const axiom_node_t *payload);
-
-axiom_node_t *AXIS2_CALL
-axis2_svc_client_send_receive(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_qname_t *op_qname,
+    axis2_msg_ctx_t *msg_ctx,
     const axiom_node_t *payload);
-
-void AXIS2_CALL
-axis2_svc_client_send_receive_non_blocking(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_qname_t *op_qname,
-    const axiom_node_t *payload,
-    axis2_callback_t *callback);
-
-axis2_op_client_t *AXIS2_CALL
-axis2_svc_client_create_op_client(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_qname_t *op_qname);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_finalize_invoke(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-const axis2_endpoint_ref_t *AXIS2_CALL
-axis2_svc_client_get_own_endpoint_ref(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    const axis2_char_t *transport);
-
-const axis2_endpoint_ref_t *AXIS2_CALL
-axis2_svc_client_get_target_endpoint_ref(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_set_target_endpoint_ref(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env,
-    axis2_endpoint_ref_t *target_endpoint_ref);
-
-axis2_svc_ctx_t *AXIS2_CALL
-axis2_svc_client_get_svc_ctx(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_svc_client_free(
-    axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-axis2_op_client_t *AXIS2_CALL
-axis2_svc_client_get_op_client(
-    const axis2_svc_client_t *svc_client,
-    const axis2_env_t *env);
-
-
-axis2_svc_client_t *AXIS2_CALL
+    
+AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
 axis2_svc_client_create(
     const axis2_env_t *env,
     const axis2_char_t *client_home)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
+    axis2_svc_client_t *svc_client = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    svc_client_impl = AXIS2_INTF_TO_IMPL(axis2_svc_client_create_with_conf_ctx_and_svc
-            (env, client_home, NULL, NULL));
+    svc_client = axis2_svc_client_create_with_conf_ctx_and_svc(env, 
+        client_home, NULL, NULL);
 
-    if (!svc_client_impl)
+    if (!svc_client)
         return NULL;
 
-    return &(svc_client_impl->svc_client);
+    return svc_client;
 }
 
 AXIS2_EXTERN axis2_svc_client_t *AXIS2_CALL
@@ -245,7 +109,7 @@
     const axis2_char_t *endpoint_name,
     const axis2_char_t *client_home)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
+    axis2_svc_client_t *svc_client = NULL;
     axis2_svc_grp_t *svc_grp = NULL;
     axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;
     const axis2_char_t *svc_grp_name = NULL;
@@ -255,54 +119,54 @@
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    svc_client_impl = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_impl_t));
-    if (!svc_client_impl)
+    svc_client = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_t));
+    if (!svc_client)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    svc_client_impl->svc = NULL;
-    svc_client_impl->conf = NULL;
-    svc_client_impl->conf_ctx = NULL;
-    svc_client_impl->svc_ctx = NULL;
-    svc_client_impl->options = NULL;
-    svc_client_impl->override_options = NULL;
-    svc_client_impl->headers = NULL;
-    svc_client_impl->callback_recv = NULL;
-    svc_client_impl->listener_manager = NULL;
-    svc_client_impl->op_client = NULL;
+    svc_client->svc = NULL;
+    svc_client->conf = NULL;
+    svc_client->conf_ctx = NULL;
+    svc_client->svc_ctx = NULL;
+    svc_client->options = NULL;
+    svc_client->override_options = NULL;
+    svc_client->headers = NULL;
+    svc_client->callback_recv = NULL;
+    svc_client->listener_manager = NULL;
+    svc_client->op_client = NULL;
 
     /** initialize private data to NULL, create options */
-    if (!axis2_svc_client_init_data(env, svc_client_impl))
+    if (!axis2_svc_client_init_data(env, svc_client))
     {
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
+        axis2_svc_client_free(svc_client, env);
         return NULL;
     }
 
     /* the following method call will create the default conf_ctx if it is NULL */
-    if (!axis2_svc_client_init_transports_from_conf_ctx(env, svc_client_impl,
+    if (!axis2_svc_client_init_transports_from_conf_ctx(env, svc_client,
             conf_ctx, client_home))
     {
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
+        axis2_svc_client_free(svc_client, env);
         return NULL;
     }
 
-    svc_client_impl->conf =  axis2_conf_ctx_get_conf(svc_client_impl->conf_ctx, env);
-    repos_path = AXIS2_CONF_GET_REPO(svc_client_impl->conf, env);
+    svc_client->conf =  axis2_conf_ctx_get_conf(svc_client->conf_ctx, env);
+    repos_path = AXIS2_CONF_GET_REPO(svc_client->conf, env);
     wsdl_path = axis2_strcat(env, repos_path, AXIS2_PATH_SEP_STR, "woden", NULL);
 
-    svc_client_impl->options = axis2_options_create(env);
+    svc_client->options = axis2_options_create(env);
     /* TODO: this method should be moved out of core implementation
-    svc_client_impl->svc = axis2_client_utils_create_axis2_svc(env, wsdl_uri,
-            wsdl_svc_qname, endpoint_name, wsdl_path, svc_client_impl->options); */
-    if (svc_client_impl->svc)
+    svc_client->svc = axis2_client_utils_create_axis2_svc(env, wsdl_uri,
+            wsdl_svc_qname, endpoint_name, wsdl_path, svc_client->options); */
+    if (svc_client->svc)
     {
         axis2_hash_index_t *i = NULL;
         void *v = NULL;
         axis2_op_t *op = NULL;
 
-        ops = AXIS2_SVC_GET_ALL_OPS(svc_client_impl->svc, env);
+        ops = AXIS2_SVC_GET_ALL_OPS(svc_client->svc, env);
         for (i = axis2_hash_first(ops, env); i; i = axis2_hash_next(env, i))
         {
             axis2_phases_info_t * info = NULL;
@@ -310,7 +174,7 @@
             op = (axis2_op_t *) v;
 
             /* Setting operation phase */
-            info = AXIS2_CONF_GET_PHASES_INFO(svc_client_impl->conf, env);
+            info = AXIS2_CONF_GET_PHASES_INFO(svc_client->conf, env);
             AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op);
         }
     }
@@ -318,21 +182,21 @@
 		  return AXIS2_FAILURE;
 
     /** add the service to the config context if it isn't in there already */
-    if (NULL == AXIS2_CONF_GET_SVC(svc_client_impl->conf, env,
-            AXIS2_SVC_GET_NAME(svc_client_impl->svc, env)))
+    if (NULL == AXIS2_CONF_GET_SVC(svc_client->conf, env,
+            AXIS2_SVC_GET_NAME(svc_client->svc, env)))
     {
-        AXIS2_CONF_ADD_SVC(svc_client_impl->conf, env, svc_client_impl->svc);
+        AXIS2_CONF_ADD_SVC(svc_client->conf, env, svc_client->svc);
     }
 
     /** create a service context for myself: create a new service group
      context and then get the service context for myself as I'll need that
      later for stuff that I gotta do */
-    svc_grp = AXIS2_SVC_GET_PARENT(svc_client_impl->svc, env);
+    svc_grp = AXIS2_SVC_GET_PARENT(svc_client->svc, env);
     if (!svc_grp)
         return NULL;
 
     svc_grp_ctx =  axis2_svc_grp_get_svc_grp_ctx(svc_grp, env,
-            svc_client_impl->conf_ctx);
+            svc_client->conf_ctx);
     if (!svc_grp_ctx)
         return NULL;
 
@@ -340,110 +204,96 @@
     if (!svc_grp_name)
         return NULL; /* service group name is mandatory */
 
-    axis2_conf_ctx_register_svc_grp_ctx(svc_client_impl->conf_ctx, env,
+    axis2_conf_ctx_register_svc_grp_ctx(svc_client->conf_ctx, env,
             svc_grp_name, svc_grp_ctx);
 
-    svc_client_impl->svc_ctx =  axis2_svc_grp_ctx_get_svc_ctx(svc_grp_ctx, env,
-            AXIS2_SVC_GET_NAME(svc_client_impl->svc, env));
-
-    /* create ops */
-    svc_client_impl->svc_client.ops =
-        AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_ops_t));
-
-    if (!svc_client_impl->svc_client.ops)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
-        return NULL;
-    }
+    svc_client->svc_ctx =  axis2_svc_grp_ctx_get_svc_ctx(svc_grp_ctx, env,
+            AXIS2_SVC_GET_NAME(svc_client->svc, env));
 
-    /** initialize ops */
-    axis2_svc_client_init_ops(&(svc_client_impl->svc_client));
-
-    return &(svc_client_impl->svc_client);
+    return svc_client;
 }
 
 
-axis2_svc_client_t* AXIS2_CALL
+AXIS2_EXTERN axis2_svc_client_t* AXIS2_CALL
 axis2_svc_client_create_with_conf_ctx_and_svc(
     const axis2_env_t *env,
     const axis2_char_t *client_home,
     axis2_conf_ctx_t *conf_ctx,
     axis2_svc_t *svc)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
+    axis2_svc_client_t *svc_client = NULL;
     axis2_svc_grp_t *svc_grp = NULL;
     axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;
     const axis2_char_t *svc_grp_name = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    svc_client_impl = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_impl_t));
-    if (!svc_client_impl)
+    svc_client = AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_t));
+    if (!svc_client)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    svc_client_impl->svc = NULL;
-    svc_client_impl->conf = NULL;
-    svc_client_impl->conf_ctx = NULL;
-    svc_client_impl->svc_ctx = NULL;
-    svc_client_impl->options = NULL;
-    svc_client_impl->override_options = NULL;
-    svc_client_impl->headers = NULL;
-    svc_client_impl->callback_recv = NULL;
-    svc_client_impl->listener_manager = NULL;
-    svc_client_impl->op_client = NULL;
+    svc_client->svc = NULL;
+    svc_client->conf = NULL;
+    svc_client->conf_ctx = NULL;
+    svc_client->svc_ctx = NULL;
+    svc_client->options = NULL;
+    svc_client->override_options = NULL;
+    svc_client->headers = NULL;
+    svc_client->callback_recv = NULL;
+    svc_client->listener_manager = NULL;
+    svc_client->op_client = NULL;
 
     /** initialize private data to NULL, create options */
-    if (!axis2_svc_client_init_data(env, svc_client_impl))
+    if (!axis2_svc_client_init_data(env, svc_client))
     {
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
+        axis2_svc_client_free(svc_client, env);
         return NULL;
     }
 
     /* the following method call will create the default conf_ctx if it is NULL */
-    if (!axis2_svc_client_init_transports_from_conf_ctx(env, svc_client_impl,
+    if (!axis2_svc_client_init_transports_from_conf_ctx(env, svc_client,
             conf_ctx, client_home))
     {
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
+        axis2_svc_client_free(svc_client, env);
         return NULL;
     }
 
-    svc_client_impl->conf =  axis2_conf_ctx_get_conf(svc_client_impl->conf_ctx, env);
+    svc_client->conf =  axis2_conf_ctx_get_conf(svc_client->conf_ctx, env);
 
     if (svc)
     {
-        svc_client_impl->svc = svc;
+        svc_client->svc = svc;
     }
     else
     {
-        if (NULL == (svc_client_impl->svc =
+        if (NULL == (svc_client->svc =
                     axis2_svc_client_create_annonymous_svc(
-                        &(svc_client_impl->svc_client), env)))
+                        svc_client, env)))
         {
-            axis2_svc_client_free(&(svc_client_impl->svc_client), env);
+            axis2_svc_client_free(svc_client, env);
             return NULL;
         }
     }
 
     /** add the service to the config context if it isn't in there already */
-    if (NULL == AXIS2_CONF_GET_SVC(svc_client_impl->conf, env,
-            AXIS2_SVC_GET_NAME(svc_client_impl->svc, env)))
+    if (NULL == AXIS2_CONF_GET_SVC(svc_client->conf, env,
+            AXIS2_SVC_GET_NAME(svc_client->svc, env)))
     {
-        AXIS2_CONF_ADD_SVC(svc_client_impl->conf, env, svc_client_impl->svc);
+        AXIS2_CONF_ADD_SVC(svc_client->conf, env, svc_client->svc);
     }
 
     /** create a service context for myself: create a new service group
      context and then get the service context for myself as I'll need that
      later for stuff that I gotta do */
-    svc_grp = AXIS2_SVC_GET_PARENT(svc_client_impl->svc, env);
+    svc_grp = AXIS2_SVC_GET_PARENT(svc_client->svc, env);
     if (!svc_grp)
         return NULL;
 
     svc_grp_ctx =  axis2_svc_grp_get_svc_grp_ctx(svc_grp, env,
-            svc_client_impl->conf_ctx);
+            svc_client->conf_ctx);
     if (!svc_grp_ctx)
         return NULL;
 
@@ -451,118 +301,86 @@
     if (!svc_grp_name)
         return NULL; /* service group name is mandatory */
 
-    axis2_conf_ctx_register_svc_grp_ctx(svc_client_impl->conf_ctx, env,
+    axis2_conf_ctx_register_svc_grp_ctx(svc_client->conf_ctx, env,
             svc_grp_name, svc_grp_ctx);
 
-    svc_client_impl->svc_ctx =  axis2_svc_grp_ctx_get_svc_ctx(svc_grp_ctx, env,
-            AXIS2_SVC_GET_NAME(svc_client_impl->svc, env));
-
-    /* create ops */
-    svc_client_impl->svc_client.ops =
-        AXIS2_MALLOC(env->allocator, sizeof(axis2_svc_client_ops_t));
+    svc_client->svc_ctx =  axis2_svc_grp_ctx_get_svc_ctx(svc_grp_ctx, env,
+            AXIS2_SVC_GET_NAME(svc_client->svc, env));
 
-    if (!svc_client_impl->svc_client.ops)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
-        return NULL;
-    }
-
-    /** initialize ops */
-    axis2_svc_client_init_ops(&(svc_client_impl->svc_client));
-
-    return &(svc_client_impl->svc_client);
+    return svc_client;
 }
 
-axis2_svc_t *AXIS2_CALL
+AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
 axis2_svc_client_get_svc(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-    return svc_client_impl->svc;
+    return svc_client->svc;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_set_options(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_options_t *options)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    if (svc_client_impl->options)
-        AXIS2_OPTIONS_FREE(svc_client_impl->options, env);
-    svc_client_impl->options = (axis2_options_t *)options;
+    if (svc_client->options)
+        AXIS2_OPTIONS_FREE(svc_client->options, env);
+    svc_client->options = (axis2_options_t *)options;
     return AXIS2_SUCCESS;
 }
 
-const axis2_options_t* AXIS2_CALL
+AXIS2_EXTERN const axis2_options_t* AXIS2_CALL
 axis2_svc_client_get_options(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    return svc_client_impl->options;
+    return svc_client->options;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_set_override_options(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_options_t *override_options)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
 
-    if (svc_client_impl->override_options)
-        AXIS2_OPTIONS_FREE(svc_client_impl->override_options, env);
+    if (svc_client->override_options)
+        AXIS2_OPTIONS_FREE(svc_client->override_options, env);
 
-    svc_client_impl->override_options = (axis2_options_t *)override_options;
+    svc_client->override_options = (axis2_options_t *)override_options;
 
     return AXIS2_SUCCESS;
 }
 
-const axis2_options_t* AXIS2_CALL
+AXIS2_EXTERN const axis2_options_t* AXIS2_CALL
 axis2_svc_client_get_override_options(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-    return svc_client_impl->override_options;
+    return svc_client->override_options;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_engage_module(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_char_t *module_name)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axis2_module_desc_t *module = NULL;
     axis2_qname_t *mod_qname = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
     mod_qname = axis2_qname_create(env, module_name, NULL, NULL);
 
     if (mod_qname)
     {
-        module = AXIS2_CONF_GET_MODULE(svc_client_impl->conf, env, mod_qname);
+        module = AXIS2_CONF_GET_MODULE(svc_client->conf, env, mod_qname);
 
         AXIS2_QNAME_FREE(mod_qname, env);
         mod_qname = NULL;
@@ -572,34 +390,32 @@
 
     if (module)
     {
-        return AXIS2_SVC_ENGAGE_MODULE(svc_client_impl->svc, env, module,
-                svc_client_impl->conf);
+        return AXIS2_SVC_ENGAGE_MODULE(svc_client->svc, env, module,
+                svc_client->conf);
     }
     return AXIS2_FAILURE;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_disengage_module(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_char_t *module_name)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axis2_module_desc_t *module = NULL;
     axis2_qname_t *mod_qname = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
     mod_qname = axis2_qname_create(env, module_name, NULL, NULL);
 
-    module = AXIS2_CONF_GET_MODULE(svc_client_impl->conf, env, mod_qname);
+    module = AXIS2_CONF_GET_MODULE(svc_client->conf, env, mod_qname);
 
     /**TODO:uncomment once axis2_svc_disengage_module is implemented
     if (module)
     {
-       return AXIS2_SVC_DISENGAGE_MODULE(svc_client_impl->svc, env, module);
+       return AXIS2_SVC_DISENGAGE_MODULE(svc_client->svc, env, module);
 
     }
     */
@@ -608,50 +424,46 @@
 
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_add_header(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     axiom_node_t *header)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    if (!svc_client_impl->headers)
+    if (!svc_client->headers)
     {
-        svc_client_impl->headers = axis2_array_list_create(env, 0);
-        if (!svc_client_impl->headers)
+        svc_client->headers = axis2_array_list_create(env, 0);
+        if (!svc_client->headers)
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
             return AXIS2_FAILURE;
         }
     }
-    axis2_array_list_add(svc_client_impl->headers, env, header);
+    axis2_array_list_add(svc_client->headers, env, header);
 
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_remove_all_headers(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     int i = 0, size = 0;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    if (!svc_client_impl->headers)
+    if (!svc_client->headers)
         return AXIS2_FAILURE;
 
-    size = axis2_array_list_size(svc_client_impl->headers, env);
+	size = axis2_array_list_size(svc_client->headers, env);
+
     for (i = 0; i < size; i++)
     {
         axiom_node_t *node = NULL;
-        node = axis2_array_list_get(svc_client_impl->headers, env, i);
+        node = axis2_array_list_get(svc_client->headers, env, i);
+
         if (node)
         {
             AXIOM_NODE_FREE_TREE(node, env);
@@ -661,22 +473,19 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
-axis2_svc_client_send_robust(
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_svc_client_send_robust_with_op_qname(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_qname_t *op_qname,
     const axiom_node_t *payload)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axis2_msg_ctx_t *msg_ctx = NULL;
     axis2_status_t status = AXIS2_FAILURE;
     axis2_bool_t qname_free_flag = AXIS2_FALSE;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
     if (!op_qname)
     {
         op_qname = axis2_qname_create(env, AXIS2_ANON_ROBUST_OUT_ONLY_OP, NULL, NULL);
@@ -684,21 +493,21 @@
     }
 
     msg_ctx = axis2_msg_ctx_create(env,
-             axis2_svc_ctx_get_conf_ctx(svc_client_impl->svc_ctx, env), NULL, NULL);
-    if (!axis2_svc_client_fill_soap_envelope(env, svc_client_impl, msg_ctx,
+             axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env), NULL, NULL);
+    if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx,
             payload))
     {
         return AXIS2_FAILURE;
     }
 
-    if(!axis2_svc_client_create_op_client(&(svc_client_impl->svc_client),
+    if(!axis2_svc_client_create_op_client(svc_client,
         env, op_qname))
     {
         return AXIS2_FAILURE;
     }
 
-    AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(svc_client_impl->op_client, env, msg_ctx);
-    status = AXIS2_OP_CLIENT_EXECUTE(svc_client_impl->op_client, env, AXIS2_TRUE);
+    AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(svc_client->op_client, env, msg_ctx);
+    status = AXIS2_OP_CLIENT_EXECUTE(svc_client->op_client, env, AXIS2_TRUE);
     
     if (qname_free_flag)
     {
@@ -709,14 +518,21 @@
     return status;
 }
 
-void AXIS2_CALL
-axis2_svc_client_fire_and_forget(
-    axis2_svc_client_t *svc_client,
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_svc_client_send_robust(axis2_svc_client_t *svc_client,
+    const axis2_env_t *env,
+    const axiom_node_t *payload)
+{
+    return axis2_svc_client_send_robust_with_op_qname(svc_client, env, NULL, 
+        payload);
+}
+
+AXIS2_EXTERN void AXIS2_CALL
+axis2_svc_client_fire_and_forget_with_op_qname(axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_qname_t *op_qname,
     const axiom_node_t *payload)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axis2_op_client_t *op_client = NULL;
     axis2_msg_ctx_t *msg_ctx = NULL;
     axis2_bool_t qname_free_flag = AXIS2_FALSE;
@@ -724,8 +540,6 @@
     if (!env)
         return;
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
     if (!op_qname)
     {
         op_qname = axis2_qname_create(env, AXIS2_ANON_OUT_ONLY_OP, NULL, NULL);
@@ -733,20 +547,20 @@
     }
 
     msg_ctx = axis2_msg_ctx_create(env,
-             axis2_svc_ctx_get_conf_ctx(svc_client_impl->svc_ctx, env), NULL, NULL);
-    if (!axis2_svc_client_fill_soap_envelope(env, svc_client_impl, msg_ctx,
+             axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env), NULL, NULL);
+    if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx,
             payload))
     {
         return;
     }
 
-    if(!axis2_svc_client_create_op_client(&(svc_client_impl->svc_client),
+    if(!axis2_svc_client_create_op_client(svc_client,
         env, op_qname))
     {
         return;
     }
 
-    AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(svc_client_impl->op_client, env, msg_ctx);
+    AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(svc_client->op_client, env, msg_ctx);
     AXIS2_OP_CLIENT_EXECUTE(op_client, env, AXIS2_FALSE);
     
     if (qname_free_flag)
@@ -758,14 +572,21 @@
     return;
 }
 
-axiom_node_t* AXIS2_CALL
-axis2_svc_client_send_receive(
-    axis2_svc_client_t *svc_client,
+AXIS2_EXTERN void AXIS2_CALL
+axis2_svc_client_fire_and_forget(axis2_svc_client_t *svc_client,
+    const axis2_env_t *env,
+    const axiom_node_t *payload)
+{
+    return axis2_svc_client_fire_and_forget_with_op_qname(svc_client, env, NULL,
+        payload);
+}
+
+AXIS2_EXTERN axiom_node_t* AXIS2_CALL
+axis2_svc_client_send_receive_with_op_qname(axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_qname_t *op_qname,
     const axiom_node_t *payload)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axiom_soap_envelope_t *soap_envelope = NULL;
     axiom_soap_body_t *soap_body = NULL;
     axiom_node_t *soap_node = NULL;
@@ -776,9 +597,8 @@
     axis2_bool_t qname_free_flag = AXIS2_FALSE;
 
     AXIS2_ENV_CHECK(env, NULL);
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
 
-    op = AXIS2_SVC_GET_OP_WITH_QNAME(svc_client_impl->svc, env, op_qname);
+    op = AXIS2_SVC_GET_OP_WITH_QNAME(svc_client->svc, env, op_qname);
     if (op)
     {
         param = axis2_op_get_param(op, env, AXIS2_SOAP_ACTION);
@@ -786,7 +606,7 @@
         {
             action_uri = (axis2_uri_t *) AXIS2_PARAM_GET_VALUE(param, env);
             action_str = AXIS2_URI_TO_STRING(action_uri, env, AXIS2_URI_UNP_OMITUSERINFO);
-            AXIS2_OPTIONS_SET_ACTION(svc_client_impl->options, env, action_str);
+            AXIS2_OPTIONS_SET_ACTION(svc_client->options, env, action_str);
         }
     }
 
@@ -796,7 +616,7 @@
         op_qname = axis2_qname_create(env, AXIS2_ANON_OUT_IN_OP, NULL, NULL);
     }
 
-    if (AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(svc_client_impl->options, env))
+    if (AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(svc_client->options, env))
     {
         axis2_callback_t *callback = NULL;
         axis2_msg_ctx_t *msg_ctx = NULL;
@@ -812,10 +632,10 @@
             return NULL;
 
         /* call two channel non blocking invoke to do the work and wait on the callback */
-        axis2_svc_client_send_receive_non_blocking(
+        axis2_svc_client_send_receive_non_blocking_with_op_qname(
             svc_client, env, op_qname, payload, callback);
 
-        index = AXIS2_OPTIONS_GET_TIMEOUT_IN_MILLI_SECONDS(svc_client_impl->options, env) / 10;
+        index = AXIS2_OPTIONS_GET_TIMEOUT_IN_MILLI_SECONDS(svc_client->options, env) / 10;
 
         while (!(AXIS2_CALLBACK_GET_COMPLETE(callback, env)))
         {
@@ -824,7 +644,7 @@
             {
                 AXIS2_USLEEP(10000);
                 msg_ctx = (axis2_msg_ctx_t *)AXIS2_OP_CLIENT_GET_MSG_CTX(
-                            svc_client_impl->op_client, env,
+                            svc_client->op_client, env,
                             AXIS2_WSDL_MESSAGE_LABEL_OUT);
                 if (msg_ctx)
                 {
@@ -861,8 +681,9 @@
 
         /* start of hack to get rid of memory leak */
         msg_ctx = axis2_msg_ctx_create(env,
-                         axis2_svc_ctx_get_conf_ctx(svc_client_impl->svc_ctx, env), NULL, NULL);
-        AXIS2_OP_CLIENT_ADD_MSG_CTX(svc_client_impl->op_client, env, msg_ctx);
+                         axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env), NULL, NULL);
+        AXIS2_OP_CLIENT_ADD_MSG_CTX(svc_client->op_client, env, msg_ctx);
+
          axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
         /* end of hack to get rid of memory leak */
 
@@ -882,27 +703,28 @@
         axis2_msg_ctx_t *msg_ctx = NULL;
 
         msg_ctx = axis2_msg_ctx_create(env,
-                 axis2_svc_ctx_get_conf_ctx(svc_client_impl->svc_ctx, env), NULL, NULL);
-        if (!axis2_svc_client_fill_soap_envelope(env, svc_client_impl, msg_ctx,
+                 axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env), NULL, NULL);
+        if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx,
                 payload))
         {
             return NULL;
         }
 
-        if(!axis2_svc_client_create_op_client(&(svc_client_impl->svc_client), 
+        if(!axis2_svc_client_create_op_client(svc_client, 
             env, op_qname))
         {
             return NULL;
         }
 
-        AXIS2_OP_CLIENT_ADD_MSG_CTX(svc_client_impl->op_client, env, msg_ctx);
-        AXIS2_OP_CLIENT_EXECUTE(svc_client_impl->op_client, env, AXIS2_TRUE);
+        AXIS2_OP_CLIENT_ADD_MSG_CTX(svc_client->op_client, env, msg_ctx);
+        AXIS2_OP_CLIENT_EXECUTE(svc_client->op_client, env, AXIS2_TRUE);
         res_msg_ctx = (axis2_msg_ctx_t *)AXIS2_OP_CLIENT_GET_MSG_CTX(
-            svc_client_impl->op_client, env, AXIS2_WSDL_MESSAGE_LABEL_IN);
+            svc_client->op_client, env, AXIS2_WSDL_MESSAGE_LABEL_IN);
+
         if (res_msg_ctx)
             soap_envelope =  axis2_msg_ctx_get_soap_envelope(res_msg_ctx, env);
         else
-            AXIS2_OP_CLIENT_ADD_MSG_CTX(svc_client_impl->op_client, env, 
+            AXIS2_OP_CLIENT_ADD_MSG_CTX(svc_client->op_client, env, 
                 res_msg_ctx); /* set in msg_ctx to be NULL to reset */
     }
 
@@ -931,22 +753,26 @@
     return AXIOM_NODE_GET_FIRST_ELEMENT(soap_node, env);
 }
 
+AXIS2_EXTERN axiom_node_t* AXIS2_CALL
+axis2_svc_client_send_receive(axis2_svc_client_t *svc_client,
+    const axis2_env_t *env,
+    const axiom_node_t *payload)
+{
+    return axis2_svc_client_send_receive_with_op_qname(svc_client, env, NULL,
+        payload);
+}
 
-void AXIS2_CALL
-axis2_svc_client_send_receive_non_blocking(
-    axis2_svc_client_t *svc_client,
+AXIS2_EXTERN void AXIS2_CALL
+axis2_svc_client_send_receive_non_blocking_with_op_qname(axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_qname_t *op_qname,
     const axiom_node_t *payload,
     axis2_callback_t *callback)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axis2_msg_ctx_t *msg_ctx = NULL;
     AXIS2_TRANSPORT_ENUMS transport_in_protocol;
     axis2_bool_t qname_free_flag = AXIS2_FALSE;
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
     if (!op_qname)
     {
         op_qname = axis2_qname_create(env, AXIS2_ANON_OUT_IN_OP, NULL, NULL);
@@ -954,40 +780,40 @@
     }
 
     msg_ctx = axis2_msg_ctx_create(env,
-             axis2_svc_ctx_get_conf_ctx(svc_client_impl->svc_ctx, env), NULL, NULL);
-    if (!axis2_svc_client_fill_soap_envelope(env, svc_client_impl, msg_ctx, payload))
+             axis2_svc_ctx_get_conf_ctx(svc_client->svc_ctx, env), NULL, NULL);
+    if (!axis2_svc_client_fill_soap_envelope(env, svc_client, msg_ctx, payload))
         return;
 
-    if(!axis2_svc_client_create_op_client(&(svc_client_impl->svc_client),
+    if(!axis2_svc_client_create_op_client(svc_client,
         env, op_qname))
     {
         return;
     }
 
-    AXIS2_OP_CLIENT_SET_CALLBACK(svc_client_impl->op_client, env, callback);
-    AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(svc_client_impl->op_client, env, msg_ctx);
+    AXIS2_OP_CLIENT_SET_CALLBACK(svc_client->op_client, env, callback);
+    AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(svc_client->op_client, env, msg_ctx);
 
-    if (AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(svc_client_impl->options, env))
+    if (AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(svc_client->options, env))
     {
         axis2_op_t *op = NULL;
 
         transport_in_protocol = AXIS2_OPTIONS_GET_TRANSPORT_IN_PROTOCOL(
-                    svc_client_impl->options, env);
-        AXIS2_LISTNER_MANAGER_MAKE_SURE_STARTED(svc_client_impl->listener_manager, env,
-                transport_in_protocol, svc_client_impl->conf_ctx);
+                    svc_client->options, env);
+        AXIS2_LISTNER_MANAGER_MAKE_SURE_STARTED(svc_client->listener_manager, env,
+                transport_in_protocol, svc_client->conf_ctx);
         /* Following sleep is required to ensure the listner is ready to receive response.
            If it is missing, the response gets lost. - Samisa */
         AXIS2_USLEEP(1);
 
-        op = AXIS2_SVC_GET_OP_WITH_QNAME(svc_client_impl->svc, env,
+        op = AXIS2_SVC_GET_OP_WITH_QNAME(svc_client->svc, env,
             op_qname);
         axis2_op_set_msg_recv(op, env,
-            AXIS2_CALLBACK_RECV_GET_BASE(svc_client_impl->callback_recv, env));
-        AXIS2_OP_CLIENT_SET_CALLBACK_RECV(svc_client_impl->op_client, env,
-            svc_client_impl->callback_recv);
+            AXIS2_CALLBACK_RECV_GET_BASE(svc_client->callback_recv, env));
+        AXIS2_OP_CLIENT_SET_CALLBACK_RECV(svc_client->op_client, env,
+            svc_client->callback_recv);
     }
 
-    AXIS2_OP_CLIENT_EXECUTE(svc_client_impl->op_client, env, AXIS2_FALSE);
+    AXIS2_OP_CLIENT_EXECUTE(svc_client->op_client, env, AXIS2_FALSE);
     
     if (qname_free_flag)
     {
@@ -998,20 +824,27 @@
     return;
 }
 
-axis2_op_client_t* AXIS2_CALL
+AXIS2_EXTERN void AXIS2_CALL
+axis2_svc_client_send_receive_non_blocking(axis2_svc_client_t *svc_client,
+    const axis2_env_t *env,
+    const axiom_node_t *payload,
+    axis2_callback_t *callback)
+{
+    return axis2_svc_client_send_receive_non_blocking_with_op_qname(svc_client,env, NULL,
+        payload, callback);
+}
+
+AXIS2_EXTERN axis2_op_client_t* AXIS2_CALL
 axis2_svc_client_create_op_client(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_qname_t *op_qname)
 {
     axis2_op_t *op = NULL;
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    op = AXIS2_SVC_GET_OP_WITH_QNAME(svc_client_impl->svc, env, op_qname);
+    op = AXIS2_SVC_GET_OP_WITH_QNAME(svc_client->svc, env, op_qname);
 
     if (!op)
     {
@@ -1019,10 +852,10 @@
         return NULL;
     }
 
-    if (!(svc_client_impl->op_client))
+    if (!(svc_client->op_client))
     {
-        svc_client_impl->op_client = axis2_op_client_create(env, op, svc_client_impl->svc_ctx,
-                svc_client_impl->options);
+        svc_client->op_client = axis2_op_client_create(env, op, svc_client->svc_ctx,
+                svc_client->options);
     }
 
     /**
@@ -1030,130 +863,112 @@
       those options override the options of even the operation client. So,
       what we do is switch the parents around to make that work.
     */
-    if (svc_client_impl->override_options)
+    if (svc_client->override_options)
     {
-        AXIS2_OPTIONS_SET_PARENT(svc_client_impl->override_options, env,
-                AXIS2_OP_CLIENT_GET_OPTIONS(svc_client_impl->op_client, env));
-        AXIS2_OP_CLIENT_SET_OPTIONS(svc_client_impl->op_client, env,
-                svc_client_impl->override_options);
+        AXIS2_OPTIONS_SET_PARENT(svc_client->override_options, env,
+                AXIS2_OP_CLIENT_GET_OPTIONS(svc_client->op_client, env));
+        AXIS2_OP_CLIENT_SET_OPTIONS(svc_client->op_client, env,
+                svc_client->override_options);
     }
 
-    return svc_client_impl->op_client;
+    return svc_client->op_client;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_finalize_invoke(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     AXIS2_TRANSPORT_ENUMS transport_in_protocol;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
     transport_in_protocol = AXIS2_OPTIONS_GET_TRANSPORT_IN_PROTOCOL(
-                svc_client_impl->options, env);
+                svc_client->options, env);
 
-    if (svc_client_impl->listener_manager)
+    if (svc_client->listener_manager)
     {
-        return AXIS2_LISTENER_MANAGER_STOP(svc_client_impl->listener_manager,
+        return AXIS2_LISTENER_MANAGER_STOP(svc_client->listener_manager,
                 env, transport_in_protocol);
     }
 
     return AXIS2_SUCCESS;
 }
 
-const axis2_endpoint_ref_t *AXIS2_CALL
+AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
 axis2_svc_client_get_own_endpoint_ref(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     const axis2_char_t *transport)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
     /*TODO:implement-issue - there's not get_own_endpoint_ref in svc_ctx*/
 
     return NULL;
 }
 
-const axis2_endpoint_ref_t *AXIS2_CALL
+AXIS2_EXTERN const axis2_endpoint_ref_t *AXIS2_CALL
 axis2_svc_client_get_target_endpoint_ref(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
     /*TODO:implement-issue - there's not get_target_endpoint_ref in svc_ctx*/
 
     return NULL;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_set_target_endpoint_ref(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env,
     axis2_endpoint_ref_t *target_endpoint_ref)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
     /*TODO:implement-issue - there's not set_my_epr in svc_ctx*/
 
     return AXIS2_FAILURE;
 }
 
-axis2_svc_ctx_t* AXIS2_CALL
+AXIS2_EXTERN axis2_svc_ctx_t* AXIS2_CALL
 axis2_svc_client_get_svc_ctx(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    return svc_client_impl->svc_ctx;
+    return svc_client->svc_ctx;
 }
 
-/** private function implementation */
-
 static axis2_bool_t
 axis2_svc_client_init_transports_from_conf_ctx(
     const axis2_env_t *env,
-    axis2_svc_client_impl_t *svc_client_impl,
+    axis2_svc_client_t *svc_client,
     axis2_conf_ctx_t *conf_ctx,
     const axis2_char_t *client_home)
 {
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl->conf_ctx = conf_ctx;
-    if (!(svc_client_impl->conf_ctx))
+    svc_client->conf_ctx = conf_ctx;
+    if (!(svc_client->conf_ctx))
     {
-        svc_client_impl->conf_ctx = build_client_conf_ctx(env, client_home);
-        if (!(svc_client_impl->conf_ctx))
+        svc_client->conf_ctx = axis2_build_client_conf_ctx(env, client_home);
+        if (!(svc_client->conf_ctx))
         {
             return AXIS2_FALSE;
         }
     }
 
-    if (!(svc_client_impl->listener_manager))
+    if (!(svc_client->listener_manager))
     {
-        svc_client_impl->listener_manager = axis2_listener_manager_create(env);
+        svc_client->listener_manager = axis2_listener_manager_create(env);
     }
 
-    if (!(svc_client_impl->listener_manager))
+    if (!(svc_client->listener_manager))
     {
         return AXIS2_FALSE;
     }
@@ -1165,69 +980,41 @@
 static axis2_bool_t
 axis2_svc_client_init_data(
     const axis2_env_t *env,
-    axis2_svc_client_impl_t *svc_client_impl)
+    axis2_svc_client_t *svc_client)
 {
-    svc_client_impl->svc = NULL;
+    svc_client->svc = NULL;
 
-    svc_client_impl->conf_ctx = NULL;
+    svc_client->conf_ctx = NULL;
 
-    svc_client_impl->svc_ctx = NULL;
+    svc_client->svc_ctx = NULL;
 
-    svc_client_impl->options = axis2_options_create(env);
-    if (!svc_client_impl->options)
+    svc_client->options = axis2_options_create(env);
+    if (!svc_client->options)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return AXIS2_FALSE;
     }
 
-    svc_client_impl->override_options = NULL;
+    svc_client->override_options = NULL;
 
-    svc_client_impl->headers = NULL;
+    svc_client->headers = NULL;
 
-    if (svc_client_impl->callback_recv)
+    if (svc_client->callback_recv)
     {
-        AXIS2_CALLBACK_RECV_FREE(svc_client_impl->callback_recv, env);
-        svc_client_impl->callback_recv = NULL;
+        AXIS2_CALLBACK_RECV_FREE(svc_client->callback_recv, env);
+        svc_client->callback_recv = NULL;
     }
 
-    svc_client_impl->callback_recv = axis2_callback_recv_create(env);
-    if (!(svc_client_impl->callback_recv))
+    svc_client->callback_recv = axis2_callback_recv_create(env);
+    if (!(svc_client->callback_recv))
     {
-        axis2_svc_client_free(&(svc_client_impl->svc_client), env);
+        axis2_svc_client_free(svc_client, env);
         return AXIS2_FALSE;
     }
 
     return AXIS2_TRUE;
 }
 
-static void
-axis2_svc_client_init_ops(
-    axis2_svc_client_t *svc_client)
-{
-
-    svc_client->ops->get_svc = axis2_svc_client_get_svc;
-    svc_client->ops->set_options = axis2_svc_client_set_options;
-    svc_client->ops->get_options = axis2_svc_client_get_options;
-    svc_client->ops->set_override_options = axis2_svc_client_set_override_options;
-    svc_client->ops->get_override_options = axis2_svc_client_get_override_options;
-    svc_client->ops->engage_module = axis2_svc_client_engage_module;
-    svc_client->ops->disengage_module = axis2_svc_client_disengage_module;
-    svc_client->ops->add_header = axis2_svc_client_add_header;
-    svc_client->ops->remove_all_headers = axis2_svc_client_remove_all_headers;
-    svc_client->ops->send_robust = axis2_svc_client_send_robust;
-    svc_client->ops->fire_and_forget = axis2_svc_client_fire_and_forget;
-    svc_client->ops->send_receive = axis2_svc_client_send_receive;
-    svc_client->ops->send_receive_non_blocking = axis2_svc_client_send_receive_non_blocking;
-    svc_client->ops->create_op_client = axis2_svc_client_create_op_client;
-    svc_client->ops->finalize_invoke = axis2_svc_client_finalize_invoke;
-    svc_client->ops->get_own_endpoint_ref = axis2_svc_client_get_own_endpoint_ref;
-    svc_client->ops->get_target_endpoint_ref = axis2_svc_client_get_target_endpoint_ref;
-    svc_client->ops->set_target_endpoint_ref = axis2_svc_client_set_target_endpoint_ref;
-    svc_client->ops->get_svc_ctx = axis2_svc_client_get_svc_ctx;
-    svc_client->ops->free_fn = axis2_svc_client_free;
-    svc_client->ops->get_op_client = axis2_svc_client_get_op_client;
-}
-
 static axis2_svc_t *
 axis2_svc_client_create_annonymous_svc(
     axis2_svc_client_t *svc_client,
@@ -1239,14 +1026,11 @@
      later in the convenience API; if you use
      this constructor then you can't expect any magic!
     */
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
     axis2_qname_t *tmp_qname;
     axis2_svc_t *svc;
     axis2_op_t *op_out_in, *op_out_only, *op_robust_out_only;
     axis2_phases_info_t *info = NULL;
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
     tmp_qname = axis2_qname_create(env, AXIS2_ANON_SERVICE, NULL, NULL);
 
     if (!tmp_qname)
@@ -1319,7 +1103,7 @@
     axis2_op_set_msg_exchange_pattern(op_robust_out_only, env, AXIS2_MEP_URI_ROBUST_OUT_ONLY);
 
     /* Setting operation phase */
-    info = AXIS2_CONF_GET_PHASES_INFO(svc_client_impl->conf, env);
+    info = AXIS2_CONF_GET_PHASES_INFO(svc_client->conf, env);
     AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_out_in);
     AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_out_only);
     AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_robust_out_only);
@@ -1329,63 +1113,44 @@
     return svc;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_svc_client_free(
     axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    axis2_svc_client_impl_t *svc_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client);
-
-    if (svc_client_impl->svc)
+    if (svc_client->svc)
     {
-        AXIS2_SVC_FREE(svc_client_impl->svc, env);
-        svc_client_impl->svc = NULL;
+        AXIS2_SVC_FREE(svc_client->svc, env);
     }
 
-    if (svc_client_impl->callback_recv)
+    if (svc_client->callback_recv)
     {
-        AXIS2_CALLBACK_RECV_FREE(svc_client_impl->callback_recv, env);
-        svc_client_impl->callback_recv = NULL;
+        AXIS2_CALLBACK_RECV_FREE(svc_client->callback_recv, env);
     }
 
-    if (svc_client_impl->op_client)
+    if (svc_client->op_client)
     {
-        AXIS2_OP_CLIENT_FREE(svc_client_impl->op_client, env);
-        svc_client_impl->op_client = NULL;
+        AXIS2_OP_CLIENT_FREE(svc_client->op_client, env);
     }
 
-    if (svc_client_impl->options)
+    if (svc_client->options)
     {
-        AXIS2_OPTIONS_FREE(svc_client_impl->options, env);
-        svc_client_impl->options = NULL;
+        AXIS2_OPTIONS_FREE(svc_client->options, env);
     }
 
-    
-    if (svc_client_impl->listener_manager)
+    if (svc_client->listener_manager)
     {
-        AXIS2_LISTNER_MANAGER_FREE(svc_client_impl->listener_manager, env);
-        svc_client_impl->listener_manager = NULL;
+        AXIS2_LISTNER_MANAGER_FREE(svc_client->listener_manager, env);
     }
 
-
-    if (svc_client_impl->conf_ctx)
+    if (svc_client->conf_ctx)
     {
-         axis2_conf_ctx_free(svc_client_impl->conf_ctx, env);
-        svc_client_impl->conf_ctx = NULL;
+         axis2_conf_ctx_free(svc_client->conf_ctx, env);
     }
 
-    if (svc_client_impl->svc_client.ops)
-    {
-        AXIS2_FREE(env->allocator, svc_client_impl->svc_client.ops);
-        svc_client_impl->svc_client.ops = NULL;
-    }
-
-    AXIS2_FREE(env->allocator, svc_client_impl);
-    svc_client_impl = NULL;
+    AXIS2_FREE(env->allocator, svc_client);
 
     return AXIS2_SUCCESS;
 }
@@ -1393,7 +1158,7 @@
 static axis2_bool_t
 axis2_svc_client_fill_soap_envelope(
     const axis2_env_t *env,
-    axis2_svc_client_impl_t *svc_client_impl,
+    axis2_svc_client_t *svc_client,
     axis2_msg_ctx_t *msg_ctx,
     const axiom_node_t *payload)
 {
@@ -1401,7 +1166,7 @@
     int soap_version;
     axiom_soap_envelope_t *envelope = NULL;
 
-    soap_version_uri = AXIS2_OPTIONS_GET_SOAP_VERSION_URI(svc_client_impl->options, env);
+    soap_version_uri = AXIS2_OPTIONS_GET_SOAP_VERSION_URI(svc_client->options, env);
 
     if (!soap_version_uri)
     {
@@ -1421,7 +1186,7 @@
         return AXIS2_FALSE;
     }
 
-    if (svc_client_impl->headers)
+    if (svc_client->headers)
     {
         axiom_soap_header_t *soap_header = NULL;
         soap_header = AXIOM_SOAP_ENVELOPE_GET_HEADER(envelope, env);
@@ -1435,11 +1200,11 @@
             {
                 int size = 0;
                 int i = 0;
-                size = axis2_array_list_size(svc_client_impl->headers, env);
+                size = axis2_array_list_size(svc_client->headers, env);
                 for (i = 0; i < size; i++)
                 {
                     axiom_node_t *node = NULL;
-                    node = axis2_array_list_get(svc_client_impl->headers, env, i);
+                    node = axis2_array_list_get(svc_client->headers, env, i);
                     if (node)
                     {
                         AXIOM_NODE_ADD_CHILD(header_node, env, node);
@@ -1470,10 +1235,10 @@
 }
 
 
-axis2_op_client_t *AXIS2_CALL
+AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
 axis2_svc_client_get_op_client(
     const axis2_svc_client_t *svc_client,
     const axis2_env_t *env)
 {
-    return AXIS2_INTF_TO_IMPL(svc_client)->op_client;
+    return svc_client->op_client;
 }

Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c?view=diff&rev=518623&r1=518622&r2=518623
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c Thu Mar 15 06:16:07 2007
@@ -19,14 +19,8 @@
 #include <string.h>
 #include <axis2_class_loader.h>
 
-/**
- * ArchiveFileData = Hot Deployment File Item.
- * To store infromation of the
- * module or service item to be deployed
- */
-typedef struct axis2_arch_file_data_impl
+struct axis2_arch_file_data
 {
-    axis2_arch_file_data_t arch_file_data;
     axis2_file_t *file;
     int type;
     axis2_char_t *msg_recv;
@@ -41,181 +35,44 @@
     axis2_hash_t *svc_map;
     axis2_array_list_t *deployable_svcs;
 
-}
-axis2_arch_file_data_impl_t;
-
-#define AXIS2_INTF_TO_IMPL(arch_file_data) \
-    ((axis2_arch_file_data_impl_t *) arch_file_data)
-
-/************************* Function prototypes ********************************/
-
-axis2_status_t AXIS2_CALL
-axis2_arch_file_data_free(
-    axis2_arch_file_data_t *arch_file_data,
-    const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL
-axis2_arch_file_data_get_msg_recv(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_file_data_set_msg_recv(
-    axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env,
-    axis2_char_t *msg_recv);
-
-axis2_char_t *AXIS2_CALL
-axis2_arch_file_data_get_name(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL
-axis2_arch_file_data_get_svc_name(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-int AXIS2_CALL
-axis2_arch_file_data_get_type(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_file_t *AXIS2_CALL
-axis2_arch_file_data_get_file(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL
-axis2_arch_file_data_get_module_name(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_file_data_set_module_name(
-    axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env,
-    axis2_char_t *module_name);
-
-axis2_char_t *AXIS2_CALL
-axis2_arch_file_data_get_module_dll_name(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_file_data_set_module_dll_name(
-    axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env,
-    axis2_char_t *module_dll_name);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_file_data_add_svc(
-    axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env,
-    axis2_svc_t *svc_desc);
-
-struct axis2_svc *AXIS2_CALL
-            axis2_arch_file_data_get_svc(
-                const axis2_arch_file_data_t *file_data,
-                const axis2_env_t *env,
-                axis2_char_t *svc_name);
-
-axis2_hash_t *AXIS2_CALL
-axis2_arch_file_data_get_svc_map(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_array_list_t *AXIS2_CALL
-axis2_arch_file_data_get_deployable_svcs(
-    const axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_file_data_set_deployable_svcs(
-    axis2_arch_file_data_t *file_data,
-    const axis2_env_t *env,
-    axis2_array_list_t *deployable_svcs);
-
-
-/************************** End of function prototypes ************************/
+};
 
 AXIS2_EXTERN axis2_arch_file_data_t *AXIS2_CALL
 axis2_arch_file_data_create(
     const axis2_env_t *env)
 {
-    axis2_arch_file_data_impl_t *arch_file_data_impl = NULL;
+    axis2_arch_file_data_t *arch_file_data = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    arch_file_data_impl = (axis2_arch_file_data_impl_t *) AXIS2_MALLOC(env->
-            allocator, sizeof(axis2_arch_file_data_impl_t));
+    arch_file_data = (axis2_arch_file_data_t *) AXIS2_MALLOC(env->
+            allocator, sizeof(axis2_arch_file_data_t));
 
 
-    if (NULL == arch_file_data_impl)
+    if (NULL == arch_file_data)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    arch_file_data_impl->file = NULL;
-    arch_file_data_impl->type = 0;
-    arch_file_data_impl->msg_recv = NULL;
-    arch_file_data_impl->module_name = NULL;
-    arch_file_data_impl->module_dll_name = NULL;
-    arch_file_data_impl->name = NULL;
-    arch_file_data_impl->svc_map = NULL;
-    arch_file_data_impl->deployable_svcs = NULL;
-    arch_file_data_impl->arch_file_data.ops = NULL;
-
-    arch_file_data_impl->deployable_svcs = axis2_array_list_create(env, 0);
-    if (!arch_file_data_impl->deployable_svcs)
-    {
-        axis2_arch_file_data_free(&(arch_file_data_impl->arch_file_data), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
+    arch_file_data->file = NULL;
+    arch_file_data->type = 0;
+    arch_file_data->msg_recv = NULL;
+    arch_file_data->module_name = NULL;
+    arch_file_data->module_dll_name = NULL;
+    arch_file_data->name = NULL;
+    arch_file_data->svc_map = NULL;
+    arch_file_data->deployable_svcs = NULL;
 
-    arch_file_data_impl->arch_file_data.ops =
-        AXIS2_MALLOC(env->allocator, sizeof(axis2_arch_file_data_ops_t));
-    if (NULL == arch_file_data_impl->arch_file_data.ops)
+    arch_file_data->deployable_svcs = axis2_array_list_create(env, 0);
+    if (!arch_file_data->deployable_svcs)
     {
-        axis2_arch_file_data_free(&(arch_file_data_impl->arch_file_data), env);
+        axis2_arch_file_data_free(arch_file_data, env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    arch_file_data_impl->arch_file_data.ops->free =  axis2_arch_file_data_free;
-    arch_file_data_impl->arch_file_data.ops->get_msg_recv =
-        axis2_arch_file_data_get_msg_recv;
-    arch_file_data_impl->arch_file_data.ops->set_msg_recv =
-        axis2_arch_file_data_set_msg_recv;
-    arch_file_data_impl->arch_file_data.ops->get_name =
-        axis2_arch_file_data_get_name;
-    arch_file_data_impl->arch_file_data.ops->get_svc_name =
-        axis2_arch_file_data_get_svc_name;
-    arch_file_data_impl->arch_file_data.ops->get_type =
-        axis2_arch_file_data_get_type;
-    arch_file_data_impl->arch_file_data.ops->get_file =
-        axis2_arch_file_data_get_file;
-    arch_file_data_impl->arch_file_data.ops->get_module_name =
-        axis2_arch_file_data_get_module_name;
-    arch_file_data_impl->arch_file_data.ops->set_module_name =
-        axis2_arch_file_data_set_module_name;
-    arch_file_data_impl->arch_file_data.ops->get_module_dll_name =
-        axis2_arch_file_data_get_module_dll_name;
-    arch_file_data_impl->arch_file_data.ops->set_module_dll_name =
-        axis2_arch_file_data_set_module_dll_name;
-    arch_file_data_impl->arch_file_data.ops->add_svc =
-        axis2_arch_file_data_add_svc;
-    arch_file_data_impl->arch_file_data.ops->get_svc =
-        axis2_arch_file_data_get_svc;
-    arch_file_data_impl->arch_file_data.ops->get_svc_map =
-        axis2_arch_file_data_get_svc_map;
-    arch_file_data_impl->arch_file_data.ops->get_deployable_svcs =
-        axis2_arch_file_data_get_deployable_svcs;
-    arch_file_data_impl->arch_file_data.ops->set_deployable_svcs =
-        axis2_arch_file_data_set_deployable_svcs;
-
-    return &(arch_file_data_impl->arch_file_data);
+    return arch_file_data;
 }
 
 AXIS2_EXTERN axis2_arch_file_data_t *AXIS2_CALL
@@ -224,16 +81,17 @@
     int type,
     axis2_file_t *file)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
-    file_data_impl = (axis2_arch_file_data_impl_t *)
+    axis2_arch_file_data_t *arch_file_data = NULL;
+    arch_file_data = (axis2_arch_file_data_t *)
             axis2_arch_file_data_create(env);
-    if (NULL == file_data_impl)
+    if (NULL == arch_file_data)
     {
         return NULL;
     }
-    file_data_impl->type = type;
-    file_data_impl->file =  axis2_file_clone(file, env);
-    return &(file_data_impl->arch_file_data);
+
+    arch_file_data->type = type;
+    arch_file_data->file =  axis2_file_clone(file, env);
+    return arch_file_data;
 }
 
 AXIS2_EXTERN axis2_arch_file_data_t *AXIS2_CALL
@@ -242,63 +100,52 @@
     int type,
     const axis2_char_t *name)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
-    file_data_impl = (axis2_arch_file_data_impl_t *)
+    axis2_arch_file_data_t *arch_file_data = NULL;
+    arch_file_data = (axis2_arch_file_data_t *)
             axis2_arch_file_data_create(env);
-    if (NULL == file_data_impl)
+    if (NULL == arch_file_data)
     {
         return NULL;
     }
-    file_data_impl->type = type;
-    file_data_impl->name = AXIS2_STRDUP(name, env);
-    return &(file_data_impl->arch_file_data);
+    arch_file_data->type = type;
+    arch_file_data->name = AXIS2_STRDUP(name, env);
+    return arch_file_data;
 }
 
-/***************************Function implementation****************************/
-
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_file_data_free(
     axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    file_data_impl = AXIS2_INTF_TO_IMPL(arch_file_data);
-
-    if (file_data_impl->file)
+    if (arch_file_data->file)
     {
-        axis2_file_free(file_data_impl->file, env);
-        file_data_impl->file = NULL;
+        axis2_file_free(arch_file_data->file, env);
     }
-    if (file_data_impl->msg_recv)
+    if (arch_file_data->msg_recv)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->msg_recv);
-        file_data_impl->msg_recv = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->msg_recv);
     }
-    if (file_data_impl->module_name)
+    if (arch_file_data->module_name)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->module_name);
-        file_data_impl->module_name = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->module_name);
     }
-    if (file_data_impl->module_dll_name)
+    if (arch_file_data->module_dll_name)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->module_dll_name);
-        file_data_impl->module_dll_name = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->module_dll_name);
     }
-    if (file_data_impl->name)
+    if (arch_file_data->name)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->name);
-        file_data_impl->name = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->name);
     }
 
-    if (file_data_impl->svc_map)
+    if (arch_file_data->svc_map)
     {
         axis2_hash_index_t *hi = NULL;
         void *val = NULL;
 
-        for (hi = axis2_hash_first(file_data_impl->svc_map, env); hi;
+        for (hi = axis2_hash_first(arch_file_data->svc_map, env); hi;
                 hi = axis2_hash_next(env, hi))
         {
             axis2_svc_t *svc = NULL;
@@ -307,238 +154,199 @@
             if (svc)
             {
                 AXIS2_SVC_FREE(svc, env);
-                svc = NULL;
             }
-            val = NULL;
         }
-        axis2_hash_free(file_data_impl->svc_map, env);
-        file_data_impl->svc_map = NULL;
-    }
-    if (file_data_impl->deployable_svcs)
-    {
-        axis2_array_list_free(file_data_impl->deployable_svcs, env);
-        file_data_impl->deployable_svcs = NULL;
+        axis2_hash_free(arch_file_data->svc_map, env);
     }
-
-    if (arch_file_data->ops)
+    if (arch_file_data->deployable_svcs)
     {
-        AXIS2_FREE(env->allocator, arch_file_data->ops);
-        arch_file_data->ops = NULL;
+        axis2_array_list_free(arch_file_data->deployable_svcs, env);
     }
 
-    if (file_data_impl)
+    if (arch_file_data)
     {
-        AXIS2_FREE(env->allocator, file_data_impl);
-        file_data_impl = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data);
     }
 
     return AXIS2_SUCCESS;
 }
 
-axis2_char_t *AXIS2_CALL
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 axis2_arch_file_data_get_msg_recv(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(file_data)->msg_recv;
+    return arch_file_data->msg_recv;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_file_data_set_msg_recv(
-    axis2_arch_file_data_t *file_data,
+    axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env,
     axis2_char_t *msg_recv)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, msg_recv, AXIS2_FAILURE);
 
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-    if (file_data_impl->msg_recv)
+    if (arch_file_data->msg_recv)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->msg_recv);
-        file_data_impl->msg_recv = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->msg_recv);
+        arch_file_data->msg_recv = NULL;
     }
-    file_data_impl->msg_recv = AXIS2_STRDUP(msg_recv, env);
+    arch_file_data->msg_recv = AXIS2_STRDUP(msg_recv, env);
     return AXIS2_SUCCESS;
 }
 
-axis2_char_t *AXIS2_CALL
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 axis2_arch_file_data_get_name(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-
-    return  axis2_file_get_name(file_data_impl->file, env);
+    return  axis2_file_get_name(arch_file_data->file, env);
 }
 
-axis2_char_t *AXIS2_CALL
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 axis2_arch_file_data_get_svc_name(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     axis2_char_t *svc_name = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
 
-    if (file_data_impl->file)
+    if (arch_file_data->file)
     {
-        svc_name =  axis2_file_get_name(file_data_impl->file, env);
+        svc_name =  axis2_file_get_name(arch_file_data->file, env);
     }
     else
     {
-        svc_name = file_data_impl->name;
+        svc_name = arch_file_data->name;
     }
 
     return svc_name;
 }
 
-int AXIS2_CALL
+AXIS2_EXTERN int AXIS2_CALL
 axis2_arch_file_data_get_type(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    return AXIS2_INTF_TO_IMPL(file_data)->type;
+    return arch_file_data->type;
 }
 
-axis2_file_t *AXIS2_CALL
+AXIS2_EXTERN axis2_file_t *AXIS2_CALL
 axis2_arch_file_data_get_file(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(file_data)->file;
+    return arch_file_data->file;
 }
 
-axis2_char_t *AXIS2_CALL
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 axis2_arch_file_data_get_module_name(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     axis2_char_t *module_name = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
 
-    if (file_data_impl->file)
+    if (arch_file_data->file)
     {
-        module_name =  axis2_file_get_name(file_data_impl->file, env);
+        module_name =  axis2_file_get_name(arch_file_data->file, env);
     }
     else
     {
-        module_name = file_data_impl->module_name;
+        module_name = arch_file_data->module_name;
     }
     return module_name;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_file_data_set_module_name(
-    axis2_arch_file_data_t *file_data,
+    axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env,
     axis2_char_t *module_name)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, module_name, AXIS2_FAILURE);
 
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-    if (file_data_impl->module_name)
+    if (arch_file_data->module_name)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->module_name);
-        file_data_impl->module_name = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->module_name);
+        arch_file_data->module_name = NULL;
     }
-    file_data_impl->module_name = AXIS2_STRDUP(module_name, env);
+    arch_file_data->module_name = AXIS2_STRDUP(module_name, env);
     return AXIS2_SUCCESS;
 }
 
-axis2_char_t *AXIS2_CALL
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 axis2_arch_file_data_get_module_dll_name(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-
-    return file_data_impl->module_dll_name;
+    return arch_file_data->module_dll_name;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_file_data_set_module_dll_name(
-    axis2_arch_file_data_t *file_data,
+    axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env,
     axis2_char_t *module_dll_name)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, module_dll_name, AXIS2_FAILURE);
 
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-    if (file_data_impl->module_dll_name)
+    if (arch_file_data->module_dll_name)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->module_dll_name);
-        file_data_impl->module_dll_name = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->module_dll_name);
+        arch_file_data->module_dll_name = NULL;
     }
-    file_data_impl->module_dll_name = AXIS2_STRDUP(module_dll_name, env);
+    arch_file_data->module_dll_name = AXIS2_STRDUP(module_dll_name, env);
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_file_data_add_svc(
-    axis2_arch_file_data_t *file_data,
+    axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env,
     axis2_svc_t *svc_desc)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     const axis2_qname_t *svc_qname = NULL;
     axis2_char_t *svc_name = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, svc_desc, AXIS2_FAILURE);
 
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-
     svc_qname = AXIS2_SVC_GET_QNAME(svc_desc, env);
     svc_name = AXIS2_QNAME_TO_STRING((axis2_qname_t *)svc_qname, env);
-    if (!file_data_impl->svc_map)
+    if (!arch_file_data->svc_map)
     {
-        file_data_impl->svc_map = axis2_hash_make(env);
-        if (!file_data_impl->svc_map)
+        arch_file_data->svc_map = axis2_hash_make(env);
+        if (!arch_file_data->svc_map)
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
             return AXIS2_FAILURE;
         }
     }
-    axis2_hash_set(file_data_impl->svc_map, svc_name, AXIS2_HASH_KEY_STRING,
+    axis2_hash_set(arch_file_data->svc_map, svc_name, AXIS2_HASH_KEY_STRING,
             svc_desc);
     return AXIS2_SUCCESS;
 }
 
-struct axis2_svc *AXIS2_CALL
+AXIS2_EXTERN struct axis2_svc *AXIS2_CALL
             axis2_arch_file_data_get_svc(
-                const axis2_arch_file_data_t *file_data,
+                const axis2_arch_file_data_t *arch_file_data,
                 const axis2_env_t *env,
                 axis2_char_t *svc_name)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     axis2_svc_t *svc = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, svc_name, AXIS2_FAILURE);
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
 
-    if (file_data_impl->svc_map)
+    if (arch_file_data->svc_map)
     {
-        svc = (axis2_svc_t *) axis2_hash_get(file_data_impl->svc_map, svc_name,
+        svc = (axis2_svc_t *) axis2_hash_get(arch_file_data->svc_map, svc_name,
                 AXIS2_HASH_KEY_STRING);
     }
     else
@@ -548,39 +356,37 @@
     return svc;
 }
 
-axis2_hash_t *AXIS2_CALL
+AXIS2_EXTERN axis2_hash_t *AXIS2_CALL
 axis2_arch_file_data_get_svc_map(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(file_data)->svc_map;
+    return arch_file_data->svc_map;
 }
 
-axis2_array_list_t *AXIS2_CALL
+AXIS2_EXTERN axis2_array_list_t *AXIS2_CALL
 axis2_arch_file_data_get_deployable_svcs(
-    const axis2_arch_file_data_t *file_data,
+    const axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(file_data)->deployable_svcs;
+    return arch_file_data->deployable_svcs;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_file_data_set_deployable_svcs(
-    axis2_arch_file_data_t *file_data,
+    axis2_arch_file_data_t *arch_file_data,
     const axis2_env_t *env,
     axis2_array_list_t *deployable_svcs)
 {
-    axis2_arch_file_data_impl_t *file_data_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, deployable_svcs, AXIS2_FAILURE);
-    file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
-    if (file_data_impl->deployable_svcs)
+    if (arch_file_data->deployable_svcs)
     {
-        AXIS2_FREE(env->allocator, file_data_impl->deployable_svcs);
-        file_data_impl->deployable_svcs = NULL;
+        AXIS2_FREE(env->allocator, arch_file_data->deployable_svcs);
+        arch_file_data->deployable_svcs = NULL;
     }
-    file_data_impl->deployable_svcs = deployable_svcs;
+    arch_file_data->deployable_svcs = deployable_svcs;
     return AXIS2_SUCCESS;
 }
+

Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c?view=diff&rev=518623&r1=518622&r2=518623
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c Thu Mar 15 06:16:07 2007
@@ -22,271 +22,67 @@
 #include <axis2_module_builder.h>
 #include <axis2_svc.h>
 
-/**
- * To do the common tasks for all Builder
- */
-typedef struct axis2_arch_reader_impl
+struct axis2_arch_reader
 {
-    axis2_arch_reader_t arch_reader;
     axis2_desc_builder_t *desc_builder;
 
-}
-axis2_arch_reader_impl_t;
-
-#define AXIS2_INTF_TO_IMPL(arch_reader) \
-    ((axis2_arch_reader_impl_t *) arch_reader)
-
-/************************* Function prototypes ********************************/
-
-axis2_status_t AXIS2_CALL
-axis2_arch_reader_free(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env);
-
-struct axis2_svc *AXIS2_CALL
-            axis2_arch_reader_create_svc(
-                axis2_arch_reader_t *arch_reader,
-                const axis2_env_t *env,
-                struct axis2_arch_file_data *file);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_reader_process_svc_grp(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env,
-    axis2_char_t *file_path,
-    struct axis2_dep_engine *dep_engine,
-    axis2_svc_grp_t *svc_grp);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_reader_build_svc_grp(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env,
-    axis2_char_t *file_path,
-    struct axis2_dep_engine *dep_engine,
-    struct axis2_svc_grp *svc_grp);
-
-axis2_status_t AXIS2_CALL
-axis2_arch_reader_read_module_arch(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env,
-    axis2_char_t *file_path,
-    struct axis2_dep_engine *dep_engine,
-    axis2_module_desc_t *module);
-
-axis2_file_t *AXIS2_CALL
-axis2_arch_reader_create_module_arch(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env,
-    axis2_char_t *module_name);
-
-/************************** End of function prototypes ************************/
+};
 
 AXIS2_EXTERN axis2_arch_reader_t *AXIS2_CALL
 axis2_arch_reader_create(
     const axis2_env_t *env)
 {
-    axis2_arch_reader_impl_t *arch_reader_impl = NULL;
+    axis2_arch_reader_t *arch_reader = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    arch_reader_impl = (axis2_arch_reader_impl_t *) AXIS2_MALLOC(env->
-            allocator, sizeof(axis2_arch_reader_impl_t));
-
+    arch_reader = (axis2_arch_reader_t *) AXIS2_MALLOC(env->
+            allocator, sizeof(axis2_arch_reader_t));
 
-    if (NULL == arch_reader_impl)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
 
-    arch_reader_impl->desc_builder = NULL;
-    arch_reader_impl->arch_reader.ops = NULL;
-
-    arch_reader_impl->arch_reader.ops =
-        AXIS2_MALLOC(env->allocator, sizeof(axis2_arch_reader_ops_t));
-    if (NULL == arch_reader_impl->arch_reader.ops)
+    if (NULL == arch_reader)
     {
-        axis2_arch_reader_free(&(arch_reader_impl->arch_reader), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    arch_reader_impl->arch_reader.ops->free = axis2_arch_reader_free;
-    arch_reader_impl->arch_reader.ops->create_svc = axis2_arch_reader_create_svc;
-    arch_reader_impl->arch_reader.ops->process_svc_grp =
-        axis2_arch_reader_process_svc_grp;
-    arch_reader_impl->arch_reader.ops->build_svc_grp =
-        axis2_arch_reader_build_svc_grp;
-    arch_reader_impl->arch_reader.ops->read_module_arch =
-        axis2_arch_reader_read_module_arch;
-    arch_reader_impl->arch_reader.ops->create_module_arch =
-        axis2_arch_reader_create_module_arch;
+    arch_reader->desc_builder = NULL;
 
-    return &(arch_reader_impl->arch_reader);
+    return arch_reader;
 }
 
-/***************************Function implementation****************************/
-
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_reader_free(
     axis2_arch_reader_t *arch_reader,
     const axis2_env_t *env)
 {
-    axis2_arch_reader_impl_t *arch_reader_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    arch_reader_impl = AXIS2_INTF_TO_IMPL(arch_reader);
-
-    if (arch_reader->ops)
-        AXIS2_FREE(env->allocator, arch_reader->ops);
 
-    if (arch_reader_impl->desc_builder)
+    if (arch_reader->desc_builder)
     {
-        AXIS2_DESC_BUILDER_FREE(arch_reader_impl->desc_builder, env);
-        arch_reader_impl->desc_builder = NULL;
+        AXIS2_DESC_BUILDER_FREE(arch_reader->desc_builder, env);
     }
 
-    if (arch_reader_impl)
+    if (arch_reader)
     {
-        AXIS2_FREE(env->allocator, arch_reader_impl);
-        arch_reader_impl = NULL;
+        AXIS2_FREE(env->allocator, arch_reader);
     }
 
     return AXIS2_SUCCESS;
 }
 
-struct axis2_svc *AXIS2_CALL
+AXIS2_EXTERN struct axis2_svc *AXIS2_CALL
             axis2_arch_reader_create_svc(
                 axis2_arch_reader_t *arch_reader,
                 const axis2_env_t *env,
                 struct axis2_arch_file_data *file)
 {
     axis2_svc_t *svc = NULL;
-    /* TODO comment this until WODEN implementation is done */
-    /*
-    axis2_char_t *doc_base_uri = NULL;
-    axiom_document_t *doc = NULL;
-    axis2_hash_t *svcs = NULL;
-    axis2_hash_index_t *index = NULL;
-    axis2_bool_t *found_svc = AXIS2_FALSE;
-    if(// Check for wsdl file)
-    {
-        doc = get_root_element_from_filename(env, filename);
-        doc_base_uri = AXIS2_STRACAT (axis2c_home, "/woden", env);
-        reader = woden_reader_create(env); 
-        desc = (void *)WODEN_READER_READ_WSDL(reader, env, om_doc, doc_base_uri);
-        svcs = WODEN_DESC_GET_SVCS(desc, env);
-        if(svcs)
-        {
-            void *key = NULL;
-            axis2_hash_index_t *index = NULL;
-        
-            axis2_hash_this (index, *key, NULL, NULL);
-            if(!key) 
-            {
-                svc = axis2_svc_create(env, wsdl_svc);
-            }
-            else
-            { 
-                wsdl_svc = axis2_hash_get(svcs, key, AXIS2_HASH_KEY_STRING);
-                // remove <wsdl:service> and <wsdl:binding> elements from the service
-                // description we read in as we will be replacing them anyway.
-                svc = axis2_svc_create(env, wsdl_svc);
-                qname = AXIS2_WSDL_SVC_GET_QNAME(wsdl_svc, env);
-                AXIS2_SVC_SET_QNAME(svc, env, qname);
-                AXIS2_SVC_SET_WSDL_DEF(svc, env, desc);
-                curr_file_item = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(dep_engine, env);
-                AXIS2_ARCH_FILE_DATA_ADD_SVC(curr_file_item, env, svc);
-            }
-        }
-    }
-    else 
-    {
-    */
     svc = axis2_svc_create(env);
-    /*TODO log */
-    /*WSDL_FILE_NOT_FOUND, filename);
-    */
-    /*
-    }
-    */
     return svc;
 }
 
-/* TODO comment this until WOM implementation is done */
-/*
-axis2_status_t *AXIS2_CALL
-axis2_arch_reader_process_wsdl_file(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env,
-    axis2_char_t *filename,
-    axis2_dep_engine_t *dep_engine)
-{
-    axis2_char_t *doc_base_uri = NULL;
-    axiom_document_t *doc = NULL;
-    axis2_hash_t *bindings = NULL;
-    axis2_hash_t *svcs = NULL;
-    axis2_hash_index_t *index = NULL;
-
-    doc = get_root_element_from_filename(env, filename);
-    doc_base_uri = AXIS2_STRACAT (axis2c_home, "/woden", env);
-    reader = woden_reader_create(env);
-    desc = (void *)WODEN_READER_READ_WSDL(reader, env, om_doc, doc_base_uri);
-    // Remove binding
-    bindings = WODEN_DESC_GET_BINDINGS(desc, env);
-    for (index = axis2_hash_first (bindings, env); index; index =
-            axis2_hash_next (env, index))
-    {
-        void *key = NULL;
-
-        axis2_hash_this (index, *key, NULL, NULL);
-        axis2_hash_set(bindings, key, AXIS2_HASH_KEY_STRING, NULL)
-    }
-    svcs = WODEN_DESC_GET_BINDINGS(desc, env);
-    for (index = axis2_hash_first (svcs, env); index; index =
-            axis2_hash_next (env, index))
-    {
-        void *key = NULL;
-        void *wsdl_svc = NULL;
-        axiss2_svc_desc_t *svc = NULL;
-
-        axis2_hash_this (index, *key, NULL, NULL);
-        wsdl_svc = axis2_hash_get(svcs, key, AXIS2_HASH_KEY_STRING);
-        svc = axis2_svc_create(env, wsdl_svc);
-        qname = AXIS2_WSDL_SVC_GET_QNAME(wsdl_svc, env);
-        AXIS2_SVC_SET_QNAME(svc, env, qname);
-        AXIS2_SVC_SET_WSDL_DEF(svc, env, desc);
-        curr_file_item = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(dep_engine, env);
-        AXIS2_ARCH_FILE_DATA_ADD_SVC(curr_file_item, env, svc);
-    }
-}
-*/
-
-/**
- * To create service objects out form wsdls file inside a service archive file
- * @param file <code>arch_file_data</code>
- * @param dep_engine <code>dep_engine</code>
- */
-/* TODO comment this until WOM implementation is done */
-/*axis2_status_t AXIS2_CALL
-axis2_arch_reader_process_wsdls(
-    axis2_arch_reader_t *arch_reader,
-    const axis2_env_t *env,
-    axis2_arch_file_data_t *file,
-    axis2_dep_engine_t *dep_engine)
-{
-    axis2_file_t *svc_file = NULL;
-
-    // List the wsdl files in a wsdl directory.
-     // Calculate the path for each wsdl and call
-     // process_wsdl method
-     //
-    process_wsdl_file(arch_reader, env, wsdl_file, dep_engine);
-    return AXIS2_SUCCESS;
-}
-*/
-
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_reader_process_svc_grp(
     axis2_arch_reader_t *arch_reader,
     const axis2_env_t *env,
@@ -339,7 +135,7 @@
     return status;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_reader_build_svc_grp(
     axis2_arch_reader_t *arch_reader,
     const axis2_env_t *env,
@@ -347,7 +143,6 @@
     axis2_dep_engine_t *dep_engine,
     axis2_svc_grp_t *svc_grp)
 {
-    axis2_arch_reader_impl_t *arch_reader_impl = NULL;
     axis2_char_t *root_element_name = NULL;
     axiom_node_t *svcs = NULL;
     axiom_element_t *svcs_element = NULL;
@@ -357,22 +152,21 @@
     AXIS2_PARAM_CHECK(env->error, svc_xml, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, dep_engine, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, svc_grp, AXIS2_FAILURE);
-    arch_reader_impl = AXIS2_INTF_TO_IMPL(arch_reader);
 
-    if (arch_reader_impl->desc_builder)
+    if (arch_reader->desc_builder)
     {
-        AXIS2_DESC_BUILDER_FREE(arch_reader_impl->desc_builder, env);
-        arch_reader_impl->desc_builder = NULL;
+        AXIS2_DESC_BUILDER_FREE(arch_reader->desc_builder, env);
+        arch_reader->desc_builder = NULL;
     }
-    arch_reader_impl->desc_builder =
+    arch_reader->desc_builder =
         axis2_desc_builder_create_with_file_and_dep_engine(env, svc_xml,
                 dep_engine);
-    if (!arch_reader_impl->desc_builder)
+    if (!arch_reader->desc_builder)
     {
         return AXIS2_FAILURE;
     }
     
-    svcs = AXIS2_DESC_BUILDER_BUILD_OM(arch_reader_impl->desc_builder, env);
+    svcs = AXIS2_DESC_BUILDER_BUILD_OM(arch_reader->desc_builder, env);
     
     if (svcs)
     {
@@ -444,7 +238,7 @@
     return status;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_arch_reader_read_module_arch(
     axis2_arch_reader_t *arch_reader,
     const axis2_env_t *env,
@@ -452,7 +246,6 @@
     axis2_dep_engine_t *dep_engine,
     axis2_module_desc_t *module_desc)
 {
-    axis2_arch_reader_impl_t *arch_reader_impl = NULL;
     axis2_status_t status = AXIS2_FAILURE;
     axis2_char_t *module_xml = NULL;
     axis2_char_t *repos_path = NULL;
@@ -461,7 +254,6 @@
     AXIS2_PARAM_CHECK(env->error, file_name, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, dep_engine, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, module_desc, AXIS2_FAILURE);
-    arch_reader_impl = AXIS2_INTF_TO_IMPL(arch_reader);
 
     repos_path = AXIS2_DEP_ENGINE_GET_REPOS_PATH(dep_engine, env);
     module_xml = axis2_strcat(env, repos_path, AXIS2_PATH_SEP_STR,
@@ -493,7 +285,7 @@
     return status;
 }
 
-axis2_file_t *AXIS2_CALL
+AXIS2_EXTERN axis2_file_t *AXIS2_CALL
 axis2_arch_reader_create_module_arch(
     axis2_arch_reader_t *arch_reader,
     const axis2_env_t *env,
@@ -511,3 +303,5 @@
      axis2_file_set_name(file, env, module_name);
     return file;
 }
+
+



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