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 [7/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/mep_client.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c?view=diff&rev=518623&r1=518622&r2=518623
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c Thu Mar 15 06:16:07 2007
@@ -28,10 +28,8 @@
 #include <axis2_types.h>
 #include <platforms/axis2_platform_auto_sense.h>
 
-typedef struct axis2_mep_client_impl
+struct axis2_mep_client
 {
-    /** context base struct */
-    axis2_mep_client_t mep_client;
     /** service context */
     axis2_svc_ctx_t *svc_ctx;
     /** message exchange pattern */
@@ -42,181 +40,88 @@
     axis2_string_t *soap_action;
     /** WSA action  */
     axis2_char_t *wsa_action;
-}
-axis2_mep_client_impl_t;
-
-/** Interface to implementation conversion macro */
-#define AXIS2_INTF_TO_IMPL(mep_client) ((axis2_mep_client_impl_t *)mep_client)
-
-axis2_string_t *AXIS2_CALL
-axis2_mep_client_get_soap_action(
-    const axis2_mep_client_t *mep_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_mep_client_prepare_invocation(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    axis2_op_t *op,
-    axis2_msg_ctx_t *msg_ctx);
-
-axis2_msg_ctx_t *AXIS2_CALL
-axis2_mep_client_prepare_soap_envelope(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    axiom_node_t *to_send);
-
-axis2_transport_out_desc_t *AXIS2_CALL
-axis2_mep_client_infer_transport(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    axis2_endpoint_ref_t *epr);
-
-axiom_soap_envelope_t *AXIS2_CALL
-axis2_mep_client_create_default_soap_envelope(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_mep_client_engage_module(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    const axis2_qname_t *qname);
-
-axis2_status_t AXIS2_CALL
-axis2_mep_client_set_soap_version_uri(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    const axis2_char_t *soap_version_uri);
-
-axis2_status_t AXIS2_CALL
-axis2_mep_client_set_soap_action(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    axis2_string_t *soap_action);
+};
 
-axis2_status_t AXIS2_CALL
-axis2_mep_client_set_wsa_action(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env,
-    const axis2_char_t *wsa_action);
-
-axis2_char_t *AXIS2_CALL
+static axis2_char_t *AXIS2_CALL
 axis2_get_transport_from_url(
     const axis2_char_t *url,
     const axis2_env_t *env);
 
-axis2_svc_ctx_t *AXIS2_CALL
-axis2_mep_client_get_svc_ctx(
-    const axis2_mep_client_t *mep_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_mep_client_free(
-    axis2_mep_client_t *mep_client,
-    const axis2_env_t *env);
-
-axis2_mep_client_t *AXIS2_CALL
+AXIS2_EXTERN axis2_mep_client_t *AXIS2_CALL
 axis2_mep_client_create(
     const axis2_env_t *env,
     axis2_svc_ctx_t *svc_ctx,
     const axis2_char_t *mep)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
+    axis2_mep_client_t *mep_client = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    mep_client_impl = AXIS2_MALLOC(env->allocator, sizeof(axis2_mep_client_impl_t));
-    if (!mep_client_impl)
+    mep_client = AXIS2_MALLOC(env->allocator, sizeof(axis2_mep_client_t));
+    if (!mep_client)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    mep_client_impl->mep_client.ops = NULL;
-    mep_client_impl->svc_ctx = NULL;
-    mep_client_impl->mep = NULL;
-    mep_client_impl->soap_version_uri = NULL;
-    mep_client_impl->soap_action = NULL;
-    mep_client_impl->wsa_action = NULL;
+    mep_client->svc_ctx = NULL;
+    mep_client->mep = NULL;
+    mep_client->soap_version_uri = NULL;
+    mep_client->soap_action = NULL;
+    mep_client->wsa_action = NULL;
 
     if (svc_ctx)
     {
-        mep_client_impl->svc_ctx = svc_ctx;
+        mep_client->svc_ctx = svc_ctx;
     }
 
-    mep_client_impl->soap_version_uri = AXIS2_STRDUP(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, env);
-    if (!(mep_client_impl->soap_version_uri))
+    mep_client->soap_version_uri = AXIS2_STRDUP(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, env);
+    if (!(mep_client->soap_version_uri))
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        axis2_mep_client_free(&(mep_client_impl->mep_client), env);
+        axis2_mep_client_free(mep_client, env);
         return NULL;
     }
 
     if (mep)
     {
-        mep_client_impl->mep = AXIS2_STRDUP(mep, env);
-        if (!(mep_client_impl->mep))
+        mep_client->mep = AXIS2_STRDUP(mep, env);
+        if (!(mep_client->mep))
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-            axis2_mep_client_free(&(mep_client_impl->mep_client), env);
+            axis2_mep_client_free(mep_client, env);
             return NULL;
         }
     }
 
-    /* initialize ops */
-    mep_client_impl->mep_client.ops  = AXIS2_MALLOC(env->allocator, sizeof(axis2_mep_client_ops_t));
-    if (!mep_client_impl->mep_client.ops)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        axis2_mep_client_free(&(mep_client_impl->mep_client), env);
-        return NULL;
-    }
-
-    mep_client_impl->mep_client.ops->get_soap_action = axis2_mep_client_get_soap_action;
-    mep_client_impl->mep_client.ops->prepare_invocation = axis2_mep_client_prepare_invocation;
-    mep_client_impl->mep_client.ops->prepare_soap_envelope = axis2_mep_client_prepare_soap_envelope;
-    mep_client_impl->mep_client.ops->infer_transport = axis2_mep_client_infer_transport;
-    mep_client_impl->mep_client.ops->create_default_soap_envelope = axis2_mep_client_create_default_soap_envelope;
-    mep_client_impl->mep_client.ops->engage_module = axis2_mep_client_engage_module;
-    mep_client_impl->mep_client.ops->set_soap_version_uri = axis2_mep_client_set_soap_version_uri;
-    mep_client_impl->mep_client.ops->set_soap_action = axis2_mep_client_set_soap_action;
-    mep_client_impl->mep_client.ops->set_wsa_action = axis2_mep_client_set_wsa_action;
-    mep_client_impl->mep_client.ops->get_svc_ctx = axis2_mep_client_get_svc_ctx;
-    mep_client_impl->mep_client.ops->free = axis2_mep_client_free;
-
-    return &(mep_client_impl->mep_client);
+    return mep_client;
 }
 
-axis2_string_t *AXIS2_CALL
+AXIS2_EXTERN axis2_string_t *AXIS2_CALL
 axis2_mep_client_get_soap_action(
     const axis2_mep_client_t *mep_client,
     const axis2_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(mep_client)->soap_action;
+    return mep_client->soap_action;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_mep_client_prepare_invocation(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     axis2_op_t *op,
     axis2_msg_ctx_t *msg_ctx)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
     axis2_svc_t *svc = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, op, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
     /* make sure operation's MEP is the same as given MEP */
-    if (mep_client_impl->mep)
+    if (mep_client->mep)
     {
-        if (AXIS2_STRCMP(mep_client_impl->mep, axis2_op_get_msg_exchange_pattern(op, env)) != 0)
+        if (AXIS2_STRCMP(mep_client->mep, axis2_op_get_msg_exchange_pattern(op, env)) != 0)
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_MEP_MISMATCH_IN_MEP_CLIENT, AXIS2_FAILURE);
             return AXIS2_FAILURE;
@@ -231,11 +136,11 @@
     svc = axis2_op_get_parent(op, env);
     if (svc)
     {
-         axis2_svc_ctx_set_svc(mep_client_impl->svc_ctx, env, svc);
+         axis2_svc_ctx_set_svc(mep_client->svc_ctx, env, svc);
     }
     else
     {
-        svc =  axis2_svc_ctx_get_svc(mep_client_impl->svc_ctx, env);
+        svc =  axis2_svc_ctx_get_svc(mep_client->svc_ctx, env);
         if (svc)
         {
             axis2_op_t *temp_op = NULL;
@@ -248,39 +153,36 @@
         }
     }
 
-    if (mep_client_impl->wsa_action)
+    if (mep_client->wsa_action)
     {
-         axis2_msg_ctx_set_wsa_action(msg_ctx, env, mep_client_impl->wsa_action);
+         axis2_msg_ctx_set_wsa_action(msg_ctx, env, mep_client->wsa_action);
     }
 
-    if (mep_client_impl->soap_action)
+    if (mep_client->soap_action)
     {
-          axis2_msg_ctx_set_soap_action(msg_ctx, env, mep_client_impl->soap_action);
+          axis2_msg_ctx_set_soap_action(msg_ctx, env, mep_client->soap_action);
     }
 
     return AXIS2_SUCCESS;
 }
 
-axis2_msg_ctx_t *AXIS2_CALL
+AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
 axis2_mep_client_prepare_soap_envelope(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     axiom_node_t *to_send)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
     axis2_msg_ctx_t *msg_ctx = NULL;
     axiom_soap_envelope_t *envelope = NULL;
     int soap_version = AXIOM_SOAP12;
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
-    if (mep_client_impl->svc_ctx)
+    if (mep_client->svc_ctx)
     {
         msg_ctx = axis2_msg_ctx_create(env,
-                 axis2_svc_ctx_get_conf_ctx(mep_client_impl->svc_ctx, env),
-                NULL, NULL);
+                 axis2_svc_ctx_get_conf_ctx(mep_client->svc_ctx, env),
+                 NULL, NULL);
     }
 
     if (!msg_ctx)
@@ -288,9 +190,9 @@
         return NULL;
     }
 
-    if (mep_client_impl->soap_version_uri)
+    if (mep_client->soap_version_uri)
     {
-        if (AXIS2_STRCMP(mep_client_impl->soap_version_uri,
+        if (AXIS2_STRCMP(mep_client->soap_version_uri,
                 AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI) == 0)
             soap_version = AXIOM_SOAP11;
         else
@@ -323,19 +225,16 @@
     return msg_ctx;
 }
 
-axis2_transport_out_desc_t *AXIS2_CALL
+AXIS2_EXTERN axis2_transport_out_desc_t *AXIS2_CALL
 axis2_mep_client_infer_transport(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     axis2_endpoint_ref_t *epr)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
     axis2_char_t *transport = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
     if (epr)
     {
         const axis2_char_t *to_url = axis2_endpoint_ref_get_address(epr, env);
@@ -359,7 +258,7 @@
 			transport_enum = AXIS2_TRANSPORT_ENUM_HTTPS;
 		}
 
-        conf_ctx =  axis2_svc_ctx_get_conf_ctx(mep_client_impl->svc_ctx, env);
+        conf_ctx =  axis2_svc_ctx_get_conf_ctx(mep_client->svc_ctx, env);
         if (conf_ctx)
         {
             conf =  axis2_conf_ctx_get_conf(conf_ctx, env);
@@ -379,46 +278,41 @@
     return NULL;
 }
 
-axiom_soap_envelope_t *AXIS2_CALL
+AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
 axis2_mep_client_create_default_soap_envelope(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env)
 {
     axiom_soap_envelope_t *envelope = NULL;
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
 
-    if (AXIS2_STRCMP(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, mep_client_impl->soap_version_uri) == 0)
+    if (AXIS2_STRCMP(AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI, mep_client->soap_version_uri) == 0)
     {
         envelope = axiom_soap_envelope_create_with_soap_version_prefix(env, AXIOM_SOAP12, NULL);
     }
 
-    if (AXIS2_STRCMP(AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI, mep_client_impl->soap_version_uri) == 0)
+    if (AXIS2_STRCMP(AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI, mep_client->soap_version_uri) == 0)
     {
         envelope = axiom_soap_envelope_create_with_soap_version_prefix(env, AXIOM_SOAP11, NULL);
     }
     return envelope;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_mep_client_engage_module(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     const axis2_qname_t *qname)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;
     axis2_conf_t *conf = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
-    if (mep_client_impl->svc_ctx)
+    if (mep_client->svc_ctx)
     {
-        conf_ctx =  axis2_svc_ctx_get_conf_ctx(mep_client_impl->svc_ctx, env);
+        conf_ctx =  axis2_svc_ctx_get_conf_ctx(mep_client->svc_ctx, env);
         if (conf_ctx)
         {
             conf =  axis2_conf_ctx_get_conf(conf_ctx, env);
@@ -436,28 +330,24 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_mep_client_set_soap_version_uri(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     const axis2_char_t *soap_version_uri)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
-    if (mep_client_impl->soap_version_uri)
+    if (mep_client->soap_version_uri)
     {
-        AXIS2_FREE(env->allocator, mep_client_impl->soap_version_uri);
-        mep_client_impl->soap_version_uri = NULL;
+        AXIS2_FREE(env->allocator, mep_client->soap_version_uri);
+        mep_client->soap_version_uri = NULL;
     }
 
     if (soap_version_uri)
     {
-        mep_client_impl->soap_version_uri = AXIS2_STRDUP(soap_version_uri, env);
-        if (!(mep_client_impl->soap_version_uri))
+        mep_client->soap_version_uri = AXIS2_STRDUP(soap_version_uri, env);
+        if (!(mep_client->soap_version_uri))
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
             return AXIS2_FAILURE;
@@ -467,28 +357,24 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_mep_client_set_soap_action(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     axis2_string_t *soap_action)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
-    if (mep_client_impl->soap_action)
+    if (mep_client->soap_action)
     {
-        axis2_string_free(mep_client_impl->soap_action, env);
-        mep_client_impl->soap_action = NULL;
+        axis2_string_free(mep_client->soap_action, env);
+        mep_client->soap_action = NULL;
     }
 
     if (soap_action)
     {
-        mep_client_impl->soap_action = axis2_string_clone(soap_action, env);
-        if (!(mep_client_impl->soap_action))
+        mep_client->soap_action = axis2_string_clone(soap_action, env);
+        if (!(mep_client->soap_action))
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
             return AXIS2_FAILURE;
@@ -498,28 +384,24 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_mep_client_set_wsa_action(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env,
     const axis2_char_t *wsa_action)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
-    if (mep_client_impl->wsa_action)
+    if (mep_client->wsa_action)
     {
-        AXIS2_FREE(env->allocator, mep_client_impl->wsa_action);
-        mep_client_impl->wsa_action = NULL;
+        AXIS2_FREE(env->allocator, mep_client->wsa_action);
+        mep_client->wsa_action = NULL;
     }
 
     if (wsa_action)
     {
-        mep_client_impl->wsa_action = AXIS2_STRDUP(wsa_action, env);
-        if (!(mep_client_impl->wsa_action))
+        mep_client->wsa_action = AXIS2_STRDUP(wsa_action, env);
+        if (!(mep_client->wsa_action))
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
             return AXIS2_FAILURE;
@@ -529,7 +411,7 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_char_t *AXIS2_CALL
+static axis2_char_t *AXIS2_CALL
 axis2_get_transport_from_url(
     const axis2_char_t *url,
     const axis2_env_t *env)
@@ -561,63 +443,47 @@
     return transport;
 }
 
-axis2_svc_ctx_t *AXIS2_CALL
+AXIS2_EXTERN axis2_svc_ctx_t *AXIS2_CALL
 axis2_mep_client_get_svc_ctx(
     const axis2_mep_client_t *mep_client,
     const axis2_env_t *env)
 {
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    return AXIS2_INTF_TO_IMPL(mep_client)->svc_ctx;
+    return mep_client->svc_ctx;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_mep_client_free(
     axis2_mep_client_t *mep_client,
     const axis2_env_t *env)
 {
-    axis2_mep_client_impl_t *mep_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    mep_client_impl = AXIS2_INTF_TO_IMPL(mep_client);
-
-    if (mep_client_impl->mep_client.ops)
-    {
-        AXIS2_FREE(env->allocator, mep_client_impl->mep_client.ops);
-        mep_client_impl->mep_client.ops = NULL;
-    }
-
-    if (mep_client_impl->mep)
+    if (mep_client->mep)
     {
-        AXIS2_FREE(env->allocator, mep_client_impl->mep);
-        mep_client_impl->mep = NULL;
+        AXIS2_FREE(env->allocator, mep_client->mep);
     }
 
-    if (mep_client_impl->soap_version_uri)
+    if (mep_client->soap_version_uri)
     {
-        AXIS2_FREE(env->allocator, mep_client_impl->soap_version_uri);
-        mep_client_impl->soap_version_uri = NULL;
+        AXIS2_FREE(env->allocator, mep_client->soap_version_uri);
     }
 
-    if (mep_client_impl->soap_action)
+    if (mep_client->soap_action)
     {
-        axis2_string_free(mep_client_impl->soap_action, env);
-        mep_client_impl->soap_action = NULL;
+        axis2_string_free(mep_client->soap_action, env);
     }
 
-    if (mep_client_impl->wsa_action)
+    if (mep_client->wsa_action)
     {
-        AXIS2_FREE(env->allocator, mep_client_impl->wsa_action);
-        mep_client_impl->wsa_action = NULL;
+        AXIS2_FREE(env->allocator, mep_client->wsa_action);
     }
 
-    AXIS2_FREE(env->allocator, mep_client_impl);
-    mep_client_impl = NULL;
+    AXIS2_FREE(env->allocator, mep_client);
 
     return AXIS2_SUCCESS;
 }
 
-axis2_msg_ctx_t *AXIS2_CALL
+AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
 axis2_mep_client_two_way_send(
     const axis2_env_t *env,
     axis2_msg_ctx_t *msg_ctx)
@@ -782,7 +648,7 @@
     return response;
 }
 
-axis2_msg_ctx_t *AXIS2_CALL
+AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
 axis2_mep_client_receive(
     const axis2_env_t *env,
     axis2_msg_ctx_t *msg_ctx)

Modified: webservices/axis2/trunk/c/modules/core/clientapi/op_client.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/op_client.c?view=diff&rev=518623&r1=518622&r2=518623
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/op_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/op_client.c Thu Mar 15 06:16:07 2007
@@ -26,11 +26,8 @@
 #include <axiom_xml_reader.h>
 #include <axis2_core_utils.h>
 
-typedef struct axis2_op_client_impl
+struct axis2_op_client
 {
-    /** op_client base struct */
-    axis2_op_client_t op_client;
-
     axis2_mep_client_t *base;
 
     axis2_svc_ctx_t *svc_ctx;
@@ -45,16 +42,13 @@
     /* to hold the locally created async result */
     axis2_async_result_t *async_result;
     axis2_callback_recv_t *callback_recv;
-}
-axis2_op_client_impl_t;
+};
 
-/** Interface to implementation conversion macro */
-#define AXIS2_INTF_TO_IMPL(op_client) ((axis2_op_client_impl_t *)op_client)
 
 typedef struct axis2_op_client_worker_func_args
 {
     const axis2_env_t *env;
-    axis2_op_client_impl_t *op_client_impl;
+    axis2_op_client_t *op_client;
     axis2_callback_t *callback;
     axis2_op_t *op;
     axis2_msg_ctx_t *msg_ctx;
@@ -66,93 +60,13 @@
     axis2_thread_t *thd,
     void *data);
 
-
-/** private function prototypes */
-static void
-axis2_op_client_init_ops(
-    axis2_op_client_t *op_client);
-
-/** public function prototypes */
-axis2_status_t AXIS2_CALL
-axis2_op_client_set_options(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    const axis2_options_t *options);
-
-const axis2_options_t *AXIS2_CALL
-axis2_op_client_get_options(
-    const axis2_op_client_t *op_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_add_msg_ctx(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    axis2_msg_ctx_t *mc);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_add_out_msg_ctx(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    axis2_msg_ctx_t *mc);
-
-const axis2_msg_ctx_t *AXIS2_CALL
-axis2_op_client_get_msg_ctx(
-    const axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    const axis2_wsdl_msg_labels_t message_label);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_set_callback(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    axis2_callback_t *callback);
-
-axis2_callback_t *AXIS2_CALL
-axis2_op_client_get_callback(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_execute(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    const axis2_bool_t block);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_reset(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_complete(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    axis2_msg_ctx_t *mc);
-
-axis2_op_ctx_t *AXIS2_CALL
-axis2_op_client_get_operation_context(
-    const axis2_op_client_t *op_client,
-    const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_set_callback_recv(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env,
-    axis2_callback_recv_t *callback_recv);
-
-axis2_status_t AXIS2_CALL
-axis2_op_client_free(
-    axis2_op_client_t *op_client,
-    const axis2_env_t *env);
-
-axis2_op_client_t *AXIS2_CALL
+AXIS2_EXTERN axis2_op_client_t *AXIS2_CALL
 axis2_op_client_create(
     const axis2_env_t *env, axis2_op_t *op,
     axis2_svc_ctx_t *svc_ctx,
     axis2_options_t *options)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
+    axis2_op_client_t *op_client = NULL;
     const axis2_char_t *mep_uri = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
@@ -160,32 +74,31 @@
     AXIS2_PARAM_CHECK(env->error, svc_ctx, NULL);
     AXIS2_PARAM_CHECK(env->error, options, NULL);
 
-    op_client_impl = AXIS2_MALLOC(env->allocator, sizeof(axis2_op_client_impl_t));
-    if (!op_client_impl)
+    op_client = AXIS2_MALLOC(env->allocator, sizeof(axis2_op_client_t));
+    if (!op_client)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
     /** initialize data */
-    op_client_impl->base = NULL;
-    op_client_impl->svc_ctx = NULL;
-    op_client_impl->options = NULL;
-    op_client_impl->op_ctx = NULL;
-    op_client_impl->callback = NULL;
-    op_client_impl->completed = AXIS2_FALSE;
-    op_client_impl->async_result = NULL;
-    op_client_impl->callback_recv = NULL;
-
-    op_client_impl->options = options;
-    op_client_impl->svc_ctx = svc_ctx;
-    op_client_impl->op_client.ops = NULL;
-
-    op_client_impl->op_ctx = axis2_op_ctx_create(env, op,
-            op_client_impl->svc_ctx);
-    if (!(op_client_impl->op_ctx))
+    op_client->base = NULL;
+    op_client->svc_ctx = NULL;
+    op_client->options = NULL;
+    op_client->op_ctx = NULL;
+    op_client->callback = NULL;
+    op_client->completed = AXIS2_FALSE;
+    op_client->async_result = NULL;
+    op_client->callback_recv = NULL;
+
+    op_client->options = options;
+    op_client->svc_ctx = svc_ctx;
+
+    op_client->op_ctx = axis2_op_ctx_create(env, op,
+            op_client->svc_ctx);
+    if (!(op_client->op_ctx))
     {
-        axis2_op_client_free(&(op_client_impl->op_client), env);
+        axis2_op_client_free(op_client, env);
         return NULL;
     }
 
@@ -193,86 +106,63 @@
 
     if (!mep_uri)
     {
-        axis2_op_client_free(&(op_client_impl->op_client), env);
-        return NULL;
-    }
-
-    op_client_impl->base = axis2_mep_client_create(env, svc_ctx, mep_uri);
-    if (!(op_client_impl->base))
-    {
-        axis2_op_client_free(&(op_client_impl->op_client), env);
+        axis2_op_client_free(op_client, env);
         return NULL;
     }
 
-    /* initialize ops */
-    op_client_impl->op_client.ops =
-        AXIS2_MALLOC(env->allocator, sizeof(axis2_op_client_ops_t));
-
-    if (!op_client_impl->op_client.ops)
+    op_client->base = axis2_mep_client_create(env, svc_ctx, mep_uri);
+    if (!(op_client->base))
     {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        AXIS2_CALLBACK_FREE(&(op_client_impl->op_client), env);
+        axis2_op_client_free(op_client, env);
         return NULL;
     }
 
-    axis2_op_client_init_ops(&(op_client_impl->op_client));
     /** initialize parser for thread safety */
     axiom_xml_reader_init();
-    return &(op_client_impl->op_client);
+    return op_client;
 }
 
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_set_options(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     const axis2_options_t *options)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    if (op_client_impl->options)
+    if (op_client->options)
     {
-        AXIS2_OPTIONS_FREE(op_client_impl->options, env);
+        AXIS2_OPTIONS_FREE(op_client->options, env);
     }
-    op_client_impl->options = (axis2_options_t *)options;
+    op_client->options = (axis2_options_t *)options;
 
     return AXIS2_SUCCESS;
 }
 
-const axis2_options_t *AXIS2_CALL
+AXIS2_EXTERN const axis2_options_t *AXIS2_CALL
 axis2_op_client_get_options(
     const axis2_op_client_t *op_client,
     const axis2_env_t *env)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, NULL);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    return op_client_impl->options;
+    return op_client->options;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_add_msg_ctx(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     axis2_msg_ctx_t *mc)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
     axis2_msg_ctx_t *out_msg_ctx = NULL, *in_msg_ctx = NULL;
     axis2_msg_ctx_t **msg_ctx_map = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    msg_ctx_map =  axis2_op_ctx_get_msg_ctx_map(op_client_impl->op_ctx, env);
-
+    msg_ctx_map =  axis2_op_ctx_get_msg_ctx_map(op_client->op_ctx, env);
+
     out_msg_ctx = msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_OUT];
     in_msg_ctx = msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_IN];
 
@@ -280,13 +170,13 @@
     {
         /* may be this is the second invocation using the same service clinet,
            so reset */
-         axis2_msg_ctx_free(out_msg_ctx, env);
+        axis2_msg_ctx_free(out_msg_ctx, env);
         out_msg_ctx = NULL;
         msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_OUT] = NULL;
-         axis2_msg_ctx_free(in_msg_ctx, env);
+        axis2_msg_ctx_free(in_msg_ctx, env);
         in_msg_ctx = NULL;
         msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_IN] = NULL;
-         axis2_op_ctx_set_complete(op_client_impl->op_ctx, env, AXIS2_FALSE);
+        axis2_op_ctx_set_complete(op_client->op_ctx, env, AXIS2_FALSE);
     }
 
     if (!out_msg_ctx)
@@ -296,7 +186,7 @@
     else
     {
         msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_IN] = mc;
-         axis2_op_ctx_set_complete(op_client_impl->op_ctx, env, AXIS2_TRUE);
+        axis2_op_ctx_set_complete(op_client->op_ctx, env, AXIS2_TRUE);
     }
 
     if (out_msg_ctx && !mc)
@@ -323,91 +213,66 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_add_out_msg_ctx(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     axis2_msg_ctx_t *mc)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
     axis2_msg_ctx_t **msg_ctx_map = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    msg_ctx_map =  axis2_op_ctx_get_msg_ctx_map(op_client_impl->op_ctx, env);
+    msg_ctx_map =  axis2_op_ctx_get_msg_ctx_map(op_client->op_ctx, env);
 
-    msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_OUT] = mc;
+	msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_OUT] = mc;
 
     return AXIS2_SUCCESS;
 }
 
 
 
-const axis2_msg_ctx_t *AXIS2_CALL
+AXIS2_EXTERN const axis2_msg_ctx_t *AXIS2_CALL
 axis2_op_client_get_msg_ctx(
     const axis2_op_client_t *op_client,
     const axis2_env_t *env,
     const axis2_wsdl_msg_labels_t message_label)
 {
-
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-/*    if (!message_label)
-    {
-        return NULL;
-    }
-    */
-    return  axis2_op_ctx_get_msg_ctx(op_client_impl->op_ctx, env, message_label);
+    return  axis2_op_ctx_get_msg_ctx(op_client->op_ctx, env, message_label);
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_set_callback(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     axis2_callback_t *callback)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    if (op_client_impl->callback)
+    if (op_client->callback)
     {
-        AXIS2_CALLBACK_FREE(op_client_impl->callback, env);
+        AXIS2_CALLBACK_FREE(op_client->callback, env);
     }
 
-    op_client_impl->callback = callback;
+    op_client->callback = callback;
     return AXIS2_SUCCESS;
 }
 
-axis2_callback_t *AXIS2_CALL
+AXIS2_EXTERN axis2_callback_t *AXIS2_CALL
 axis2_op_client_get_callback(
     axis2_op_client_t *op_client,
     const axis2_env_t *env)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    return op_client_impl->callback;
+    return op_client->callback;
 }
 
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_execute(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     const axis2_bool_t block)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;
     axis2_msg_ctx_t *msg_ctx = NULL;
 
@@ -420,15 +285,14 @@
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    if (op_client_impl->completed)
+    if (op_client->completed)
     {
         /**TODO:error completed*/
         return AXIS2_FAILURE;
     }
 
-    conf_ctx =  axis2_svc_ctx_get_conf_ctx(op_client_impl->svc_ctx, env);
+    conf_ctx =  axis2_svc_ctx_get_conf_ctx(op_client->svc_ctx, env);
+
     msg_ctx = (axis2_msg_ctx_t *)axis2_op_client_get_msg_ctx(op_client, env,
             AXIS2_WSDL_MESSAGE_LABEL_OUT);
 
@@ -438,27 +302,27 @@
         return AXIS2_FAILURE;
     }
 
-     axis2_msg_ctx_set_options(msg_ctx, env, op_client_impl->options);
+     axis2_msg_ctx_set_options(msg_ctx, env, op_client->options);
 
     /**
      if the transport to use for sending is not specified, try to find it
      from the URL
     */
-    transport_out = AXIS2_OPTIONS_GET_TRANSPORT_OUT(op_client_impl->options,
+    transport_out = AXIS2_OPTIONS_GET_TRANSPORT_OUT(op_client->options,
             env);
     if (!transport_out)
     {
         axis2_endpoint_ref_t *to_epr = NULL;
         axis2_property_t *property = NULL;
-         property = AXIS2_OPTIONS_GET_PROPERTY(op_client_impl->options, env, 
+         property = AXIS2_OPTIONS_GET_PROPERTY(op_client->options, env, 
                  AXIS2_TARGET_EPR);
          if(property)
             to_epr = AXIS2_PROPERTY_GET_VALUE(property, env);
          if(!to_epr)
-            to_epr = AXIS2_OPTIONS_GET_TO(op_client_impl->options, env);
+            to_epr = AXIS2_OPTIONS_GET_TO(op_client->options, env);
         if (!to_epr)
             to_epr =  axis2_msg_ctx_get_to(msg_ctx, env);
-        transport_out = AXIS2_MEP_CLIENT_INFER_TRANSPORT(op_client_impl->base, env, to_epr);
+        transport_out = AXIS2_MEP_CLIENT_INFER_TRANSPORT(op_client->base, env, to_epr);
     }
 
     if (!transport_out)
@@ -470,10 +334,11 @@
          axis2_msg_ctx_set_transport_out_desc(msg_ctx, env, transport_out);
 
 
-    transport_in = AXIS2_OPTIONS_GET_TRANSPORT_IN(op_client_impl->options, env);
+    transport_in = AXIS2_OPTIONS_GET_TRANSPORT_IN(op_client->options, env);
     if (!transport_in)
     {
-        axis2_conf_ctx_t *conf_ctx =  axis2_svc_ctx_get_conf_ctx(op_client_impl->svc_ctx, env);
+        axis2_conf_ctx_t *conf_ctx =  axis2_svc_ctx_get_conf_ctx(op_client->svc_ctx, env);
+
         if (conf_ctx)
         {
             axis2_conf_t *conf =  axis2_conf_ctx_get_conf(conf_ctx, env);
@@ -490,11 +355,12 @@
          axis2_msg_ctx_set_transport_in_desc(msg_ctx, env, transport_in);
     }
 
-    op =  axis2_op_ctx_get_op(op_client_impl->op_ctx, env);
+    op =  axis2_op_ctx_get_op(op_client->op_ctx, env);
+
     if (!op)
         return AXIS2_FAILURE;
 
-    status = AXIS2_MEP_CLIENT_PREPARE_INVOCATION(op_client_impl->base, env, op, msg_ctx);
+    status = AXIS2_MEP_CLIENT_PREPARE_INVOCATION(op_client->base, env, op, msg_ctx);
     if (status != AXIS2_SUCCESS)
         return AXIS2_FAILURE;
 
@@ -506,17 +372,17 @@
         msg_id = NULL;
     }
 
-    if (AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(op_client_impl->options, env))
+    if (AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(op_client->options, env))
     {
         axis2_engine_t *engine = NULL;
 
-        AXIS2_CALLBACK_RECV_ADD_CALLBACK(op_client_impl->callback_recv, env,
+        AXIS2_CALLBACK_RECV_ADD_CALLBACK(op_client->callback_recv, env,
                  axis2_msg_ctx_get_msg_id(msg_ctx, env),
-                op_client_impl->callback);
+                op_client->callback);
         /* TODO: set up reply to */
          axis2_msg_ctx_set_op_ctx(msg_ctx, env, axis2_op_find_op_ctx(op, env,
-                msg_ctx, op_client_impl->svc_ctx));
-         axis2_msg_ctx_set_svc_ctx(msg_ctx, env, op_client_impl->svc_ctx);
+                msg_ctx, op_client->svc_ctx));
+         axis2_msg_ctx_set_svc_ctx(msg_ctx, env, op_client->svc_ctx);
 
         /* send the message */
         engine = axis2_engine_create(env, conf_ctx);
@@ -531,10 +397,11 @@
         {
             axis2_msg_ctx_t *response_mc = NULL;
             
-             axis2_msg_ctx_set_svc_ctx(msg_ctx, env, op_client_impl->svc_ctx);
-             axis2_msg_ctx_set_conf_ctx(msg_ctx, env,
-                     axis2_svc_ctx_get_conf_ctx(op_client_impl->svc_ctx, env));
-             axis2_msg_ctx_set_op_ctx(msg_ctx, env, op_client_impl->op_ctx);
+            axis2_msg_ctx_set_svc_ctx(msg_ctx, env, op_client->svc_ctx);
+            axis2_msg_ctx_set_conf_ctx(msg_ctx, env,
+                     axis2_svc_ctx_get_conf_ctx(op_client->svc_ctx, env));
+            axis2_msg_ctx_set_op_ctx(msg_ctx, env, op_client->op_ctx);
+
 
             /*Send the SOAP Message and receive a response */
             response_mc = axis2_mep_client_two_way_send(env, msg_ctx);
@@ -552,7 +419,7 @@
                 else
                     return AXIS2_FAILURE;
             }
-            axis2_op_client_add_msg_ctx(&(op_client_impl->op_client), env,
+            axis2_op_client_add_msg_ctx(op_client, env,
                     response_mc);
         }
         else
@@ -566,8 +433,8 @@
                 return AXIS2_FAILURE;
             }
             arg_list->env = env;
-            arg_list->op_client_impl = op_client_impl;
-            arg_list->callback = op_client_impl->callback;
+            arg_list->op_client = op_client;
+            arg_list->callback = op_client->callback;
             arg_list->op = op;
             arg_list->msg_ctx = msg_ctx;
 #ifdef AXIS2_SVR_MULTI_THREADED
@@ -596,46 +463,35 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_reset(
     axis2_op_client_t *op_client,
     const axis2_env_t *env)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    if (!op_client_impl->completed)
+    if (!op_client->completed)
         return AXIS2_FAILURE;
 
-    op_client_impl->completed = AXIS2_FALSE;
+    op_client->completed = AXIS2_FALSE;
 
-    /*TODO:check
-    if (op_client_impl->op_ctx)
-        axis2_op_ctx_free(op_client_impl->op_ctx, env);
-    */
-    op_client_impl->op_ctx = NULL;
+    op_client->op_ctx = NULL;
 
     return AXIS2_SUCCESS;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_complete(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     axis2_msg_ctx_t *mc)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;
     axis2_listener_manager_t *listener_manager = NULL;
     AXIS2_TRANSPORT_ENUMS transport = AXIS2_TRANSPORT_ENUM_HTTP;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
     conf_ctx =  axis2_msg_ctx_get_conf_ctx(mc, env);
 
     if (!conf_ctx)
@@ -650,84 +506,48 @@
     return AXIS2_LISTENER_MANAGER_STOP(listener_manager, env, transport);
 }
 
-axis2_op_ctx_t *AXIS2_CALL
+AXIS2_EXTERN axis2_op_ctx_t *AXIS2_CALL
 axis2_op_client_get_operation_context(
     const axis2_op_client_t *op_client,
     const axis2_env_t *env)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    return op_client_impl->op_ctx;
+    return op_client->op_ctx;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_free(
     axis2_op_client_t *op_client,
     const axis2_env_t *env)
 {
-    axis2_op_client_impl_t *op_client_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 
-    op_client_impl = AXIS2_INTF_TO_IMPL(op_client);
-
-    if (op_client_impl->base)
+    if (op_client->base)
     {
-        AXIS2_MEP_CLIENT_FREE(op_client_impl->base, env);
-        op_client_impl->base = NULL;
+        AXIS2_MEP_CLIENT_FREE(op_client->base, env);
     }
 
-    if (op_client_impl->callback)
+    if (op_client->callback)
     {
-        AXIS2_CALLBACK_FREE(op_client_impl->callback, env);
-        op_client_impl->callback = NULL;
+        AXIS2_CALLBACK_FREE(op_client->callback, env);
     }
 
-    if (op_client_impl->op_client.ops)
+    if (op_client->op_ctx)
     {
-        AXIS2_FREE(env->allocator, op_client_impl->op_client.ops);
-        op_client_impl->op_client.ops = NULL;
+         axis2_op_ctx_free(op_client->op_ctx, env);
+         op_client->op_ctx = NULL;
     }
 
-    if (op_client_impl->op_ctx)
-    {
-         axis2_op_ctx_free(op_client_impl->op_ctx, env);
-        op_client_impl->op_ctx = NULL;
-    }
-
-	if (AXIS2_OPTIONS_GET_XML_PARSER_RESET(op_client_impl->options, env))
+	if (AXIS2_OPTIONS_GET_XML_PARSER_RESET(op_client->options, env))
 	{
 		axiom_xml_reader_cleanup(); 
 	}
 
-    AXIS2_FREE(env->allocator, op_client_impl);
-    op_client_impl = NULL;
+    AXIS2_FREE(env->allocator, op_client);
 
     return AXIS2_SUCCESS;
 }
 
 
-static void
-axis2_op_client_init_ops(
-    axis2_op_client_t *op_client)
-{
-    op_client->ops->set_options = axis2_op_client_set_options;
-    op_client->ops->get_options = axis2_op_client_get_options;
-    op_client->ops->add_msg_ctx = axis2_op_client_add_msg_ctx;
-    op_client->ops->add_out_msg_ctx = axis2_op_client_add_out_msg_ctx;
-    op_client->ops->get_msg_ctx = axis2_op_client_get_msg_ctx;
-    op_client->ops->set_callback = axis2_op_client_set_callback;
-    op_client->ops->get_callback = axis2_op_client_get_callback;
-    op_client->ops->execute = axis2_op_client_execute;
-    op_client->ops->reset = axis2_op_client_reset;
-    op_client->ops->complete = axis2_op_client_complete;
-    op_client->ops->get_operation_context = axis2_op_client_get_operation_context;
-    op_client->ops->set_callback_recv = axis2_op_client_set_callback_recv;
-    op_client->ops->free = axis2_op_client_free;
-}
-
 void *AXIS2_THREAD_FUNC
 axis2_op_client_worker_func(
     axis2_thread_t *thd,
@@ -746,23 +566,23 @@
     AXIS2_ENV_CHECK(args_list->env, AXIS2_FAILURE);
     th_env = axis2_init_thread_env(args_list->env);
 
-    op_ctx = axis2_op_ctx_create(th_env, args_list->op, args_list->op_client_impl->svc_ctx);
+    op_ctx = axis2_op_ctx_create(th_env, args_list->op, args_list->op_client->svc_ctx);
     if (!op_ctx)
         return NULL;
      axis2_msg_ctx_set_op_ctx(args_list->msg_ctx, th_env, op_ctx);
-     axis2_msg_ctx_set_svc_ctx(args_list->msg_ctx, th_env, args_list->op_client_impl->svc_ctx);
+     axis2_msg_ctx_set_svc_ctx(args_list->msg_ctx, th_env, args_list->op_client->svc_ctx);
 
     /* send the request and wait for response */
     response = axis2_mep_client_two_way_send(th_env, args_list->msg_ctx);
 
-    axis2_op_client_add_msg_ctx(&(args_list->op_client_impl->op_client), th_env,
+    axis2_op_client_add_msg_ctx(args_list->op_client, th_env,
         response);
-    args_list->op_client_impl->async_result = axis2_async_result_create(th_env, response);
-    AXIS2_CALLBACK_INVOKE_ON_COMPLETE(args_list->callback, th_env, args_list->op_client_impl->async_result);
+    args_list->op_client->async_result = axis2_async_result_create(th_env, response);
+    AXIS2_CALLBACK_INVOKE_ON_COMPLETE(args_list->callback, th_env, args_list->op_client->async_result);
     AXIS2_CALLBACK_SET_COMPLETE(args_list->callback, th_env, AXIS2_TRUE);
 
     /* clean up memory */
-    AXIS2_ASYNC_RESULT_FREE(args_list->op_client_impl->async_result, th_env);
+    AXIS2_ASYNC_RESULT_FREE(args_list->op_client->async_result, th_env);
     
      axis2_op_ctx_free(op_ctx, th_env);
         
@@ -779,14 +599,13 @@
     return NULL;
 }
 
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_client_set_callback_recv(
     axis2_op_client_t *op_client,
     const axis2_env_t *env,
     axis2_callback_recv_t *callback_recv)
 {
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_INTF_TO_IMPL(op_client)->callback_recv = callback_recv;
+    op_client->callback_recv = callback_recv;
     return AXIS2_SUCCESS;
 }
 



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