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