You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by da...@apache.org on 2006/12/08 11:34:51 UTC
svn commit: r483915 - in /webservices/sandesha/trunk/c: include/
src/storage/beans/ src/storage/inmemory/
Author: damitha
Date: Fri Dec 8 02:34:49 2006
New Revision: 483915
URL: http://svn.apache.org/viewvc?view=rev&rev=483915
Log:
More work on storage abstration
Modified:
webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h
webservices/sandesha/trunk/c/include/sandesha2_inmemory_invoker_mgr.h
webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h
webservices/sandesha/trunk/c/include/sandesha2_invoker_mgr.h
webservices/sandesha/trunk/c/src/storage/beans/invoker_bean.c
webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_invoker_mgr.c
Modified: webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h?view=diff&rev=483915&r1=483914&r2=483915
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h Fri Dec 8 02:34:49 2006
@@ -31,7 +31,7 @@
typedef struct sandesha2_create_seq_bean sandesha2_create_seq_bean_t;
struct sandesha2_transaction;
-struct sandesha2_create_seq_bean
+AXIS2_DECLARE_DATA struct sandesha2_create_seq_bean
{
sandesha2_rm_bean_t rm_bean;
};
Modified: webservices/sandesha/trunk/c/include/sandesha2_inmemory_invoker_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_inmemory_invoker_mgr.h?view=diff&rev=483915&r1=483914&r2=483915
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_inmemory_invoker_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_inmemory_invoker_mgr.h Fri Dec 8 02:34:49 2006
@@ -33,6 +33,7 @@
{
#endif
+struct sandesha2_storage_mgr;
struct axis2_ctx;
/** @defgroup sandesha2_inmemory_invoker_mgr In Memory Invoker Manager
@@ -43,6 +44,7 @@
AXIS2_EXTERN struct sandesha2_invoker_mgr * AXIS2_CALL
sandesha2_inmemory_invoker_mgr_create(
const axis2_env_t *env,
+ struct sandesha2_storage_mgr *storage_mgr,
struct axis2_ctx *ctx);
/** @} */
Modified: webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h?view=diff&rev=483915&r1=483914&r2=483915
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h Fri Dec 8 02:34:49 2006
@@ -19,86 +19,113 @@
#include <axis2_utils_defines.h>
#include <axis2_env.h>
-#include <string.h>
+#include <sandesha2_rm_bean.h>
#ifdef __cplusplus
extern "C"
{
#endif
-typedef struct sandesha2_invoker_bean_t sandesha2_invoker_bean_t;
-struct sandesha2_rm_bean;
+typedef struct sandesha2_invoker_bean sandesha2_invoker_bean_t;
+struct sandesha2_transaction;
+
+AXIS2_DECLARE_DATA struct sandesha2_invoker_bean
+{
+ sandesha2_rm_bean_t rm_bean;
+};
/* constructors
*/
AXIS2_EXTERN sandesha2_invoker_bean_t* AXIS2_CALL
- sandesha2_invoker_bean_create(
+sandesha2_invoker_bean_create(
const axis2_env_t *env);
AXIS2_EXTERN sandesha2_invoker_bean_t* AXIS2_CALL
- sandesha2_invoker_bean_create_with_data(const axis2_env_t *env,
+sandesha2_invoker_bean_create_with_data(
+ const axis2_env_t *env,
axis2_char_t * ref_key,
long msg_no,
axis2_char_t *seq_id,
axis2_bool_t invoked);
-axis2_status_t AXIS2_CALL
+void AXIS2_CALL
sandesha2_invoker_bean_free (
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_rm_bean_t *invoker_bean,
const axis2_env_t *env);
-struct sandesha2_rm_bean * AXIS2_CALL
+sandesha2_rm_bean_t * AXIS2_CALL
sandesha2_invoker_bean_get_base(
sandesha2_invoker_bean_t* invoker,
const axis2_env_t *env);
void AXIS2_CALL
sandesha2_invoker_bean_set_base (
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env,
- struct sandesha2_rm_bean* rm_bean);
+ sandesha2_rm_bean_t* rm_bean);
axis2_char_t* AXIS2_CALL
sandesha2_invoker_bean_get_msg_ctx_ref_key(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env);
void AXIS2_CALL
sandesha2_invoker_bean_set_msg_context_ref_key(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env, axis2_char_t* context_ref_id) ;
long AXIS2_CALL
sandesha2_invoker_bean_get_msg_no(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env);
void AXIS2_CALL
sandesha2_invoker_bean_set_msg_no(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env, long msgno) ;
axis2_char_t* AXIS2_CALL
sandesha2_invoker_bean_get_seq_id(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env);
void AXIS2_CALL
sandesha2_invoker_bean_set_seq_id(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env, axis2_char_t* int_seq_id);
axis2_bool_t AXIS2_CALL
sandesha2_invoker_bean_is_invoked (
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env);
void AXIS2_CALL
sandesha2_invoker_bean_set_invoked(
- sandesha2_invoker_bean_t *invoker,
+ sandesha2_invoker_bean_t *invoker_bean,
const axis2_env_t *env,
axis2_bool_t invoked);
+void AXIS2_CALL
+sandesha2_invoker_bean_set_id(
+ sandesha2_rm_bean_t *invoker_bean,
+ const axis2_env_t *env,
+ long id);
+
+long AXIS2_CALL
+sandesha2_invoker_bean_get_id(
+ sandesha2_rm_bean_t *invoker_bean,
+ const axis2_env_t *env);
+
+void AXIS2_CALL
+sandesha2_invoker_bean_set_transaction(
+ sandesha2_rm_bean_t *invoker_bean,
+ const axis2_env_t *env,
+ struct sandesha2_transaction *transaction);
+
+struct sandesha2_transaction *AXIS2_CALL
+sandesha2_invoker_bean_get_transaction(
+ sandesha2_rm_bean_t *invoker_bean,
+ const axis2_env_t *env);
#ifdef __cplusplus
}
Modified: webservices/sandesha/trunk/c/include/sandesha2_invoker_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_invoker_mgr.h?view=diff&rev=483915&r1=483914&r2=483915
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_invoker_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_invoker_mgr.h Fri Dec 8 02:34:49 2006
@@ -90,7 +90,7 @@
AXIS2_DECLARE_DATA struct sandesha2_invoker_mgr
{
- const sandesha2_invoker_mgr_ops_t *ops;
+ sandesha2_invoker_mgr_ops_t ops;
};
AXIS2_EXTERN sandesha2_invoker_mgr_t * AXIS2_CALL
Modified: webservices/sandesha/trunk/c/src/storage/beans/invoker_bean.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/beans/invoker_bean.c?view=diff&rev=483915&r1=483914&r2=483915
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/beans/invoker_bean.c (original)
+++ webservices/sandesha/trunk/c/src/storage/beans/invoker_bean.c Fri Dec 8 02:34:49 2006
@@ -71,10 +71,10 @@
invoker_bean_impl->msg_no = -1;
invoker_bean_impl->seq_id = NULL;
invoker_bean_impl->invoked = AXIS2_FALSE;
- invoker_bean_impl->rm_bean = sandesha2_rm_bean_create(env);
+ invoker_bean_impl->rm_bean_impl = sandesha2_rm_bean_create(env);
invoker_bean_impl->invoker_bean.rm_bean.ops = &rm_bean_ops;
- return &(invoker_bean_impl->bean);
+ return &(invoker_bean_impl->invoker_bean);
}
AXIS2_EXTERN sandesha2_invoker_bean_t* AXIS2_CALL
@@ -110,23 +110,23 @@
invoker_bean_impl->msg_no = msg_no;
invoker_bean_impl->invoked = invoked;
- invoker_bean_impl->rm_bean = sandesha2_rm_bean_create(env);
+ invoker_bean_impl->rm_bean_impl = sandesha2_rm_bean_create(env);
invoker_bean_impl->invoker_bean.rm_bean.ops = &rm_bean_ops;
- return &(invoker_bean_impl->bean);
+ return &(invoker_bean_impl->invoker_bean);
}
-axis2_status_t AXIS2_CALL
+void AXIS2_CALL
sandesha2_invoker_bean_free(
- sandesha2_invoker_bean_t *invoker_bean,
+ sandesha2_rm_bean_t *invoker_bean,
const axis2_env_t *env)
{
sandesha2_invoker_bean_impl_t *invoker_bean_impl = NULL;
invoker_bean_impl = SANDESHA2_INTF_TO_IMPL(invoker_bean);
- if(invoker_bean_impl->rm_bean)
+ if(invoker_bean_impl->rm_bean_impl)
{
- sandesha2_rm_bean_free(invoker_bean_impl->rm_bean, env);
- invoker_bean_impl->rm_bean= NULL;
+ sandesha2_rm_bean_free(invoker_bean_impl->rm_bean_impl, env);
+ invoker_bean_impl->rm_bean_impl= NULL;
}
if(invoker_bean_impl->msg_context_ref_key)
{
@@ -144,7 +144,6 @@
AXIS2_FREE(env->allocator, invoker_bean_impl->seq_id);
invoker_bean_impl = NULL;
}
- return AXIS2_SUCCESS;
}
sandesha2_rm_bean_t * AXIS2_CALL
@@ -154,7 +153,7 @@
{
sandesha2_invoker_bean_impl_t *invoker_bean_impl = NULL;
invoker_bean_impl = SANDESHA2_INTF_TO_IMPL(invoker_bean);
- return invoker_bean_impl->rm_bean;
+ return invoker_bean_impl->rm_bean_impl;
}
@@ -166,7 +165,7 @@
{
sandesha2_invoker_bean_impl_t *invoker_bean_impl = NULL;
invoker_bean_impl = SANDESHA2_INTF_TO_IMPL(invoker_bean);
- invoker_bean_impl->rm_bean = rm_bean;
+ invoker_bean_impl->rm_bean_impl = rm_bean;
}
axis2_char_t* AXIS2_CALL
Modified: webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_invoker_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_invoker_mgr.c?view=diff&rev=483915&r1=483914&r2=483915
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_invoker_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_invoker_mgr.c Fri Dec 8 02:34:49 2006
@@ -15,7 +15,9 @@
*/
#include <sandesha2_inmemory_invoker_mgr.h>
+#include <sandesha2_inmemory_bean_mgr.h>
#include <sandesha2_invoker_mgr.h>
+#include <sandesha2_storage_mgr.h>
#include <sandesha2_constants.h>
#include <sandesha2_error.h>
#include <axis2_log.h>
@@ -30,6 +32,7 @@
typedef struct sandesha2_inmemory_invoker_mgr
{
sandesha2_invoker_mgr_t invoker_mgr;
+ sandesha2_inmemory_bean_mgr_t *bean_mgr;
axis2_hash_t *table;
axis2_thread_mutex_t *mutex;
}sandesha2_inmemory_invoker_mgr_t;
@@ -78,6 +81,13 @@
const axis2_env_t *env,
sandesha2_invoker_bean_t *bean);
+axis2_bool_t AXIS2_CALL
+sandesha2_inmemory_create_invoker_mgr_match(
+ sandesha2_inmemory_bean_mgr_t *invoker_mgr,
+ const axis2_env_t *env,
+ sandesha2_rm_bean_t *bean,
+ sandesha2_rm_bean_t *candidate);
+
static const sandesha2_invoker_mgr_ops_t invoker_mgr_ops =
{
sandesha2_inmemory_invoker_mgr_free,
@@ -92,6 +102,7 @@
AXIS2_EXTERN sandesha2_invoker_mgr_t * AXIS2_CALL
sandesha2_inmemory_invoker_mgr_create(
const axis2_env_t *env,
+ sandesha2_storage_mgr_t *storage_mgr,
axis2_ctx_t *ctx)
{
sandesha2_inmemory_invoker_mgr_t *invoker_mgr_impl = NULL;
@@ -135,7 +146,10 @@
AXIS2_CTX_SET_PROPERTY(ctx, env, SANDESHA2_BEAN_MAP_STORAGE_MAP,
property, AXIS2_FALSE);
}
- invoker_mgr_impl->invoker_mgr.ops = &invoker_mgr_ops;
+ invoker_mgr_impl->bean_mgr = sandesha2_inmemory_bean_mgr_create(env,
+ storage_mgr, ctx, SANDESHA2_BEAN_MAP_CREATE_SEQUECE);
+ invoker_mgr_impl->bean_mgr->ops.match = sandesha2_inmemory_create_invoker_mgr_match;
+ invoker_mgr_impl->invoker_mgr.ops = invoker_mgr_ops;
return &(invoker_mgr_impl->invoker_mgr);
}
@@ -154,6 +168,11 @@
axis2_thread_mutex_destroy(invoker_mgr_impl->mutex);
invoker_mgr_impl->mutex = NULL;
}
+ if(invoker_mgr_impl->bean_mgr)
+ {
+ sandesha2_inmemory_bean_mgr_free(invoker_mgr_impl->bean_mgr, env);
+ invoker_mgr_impl->bean_mgr = NULL;
+ }
if(invoker_mgr_impl->table)
{
axis2_hash_free(invoker_mgr_impl->table, env);
@@ -182,10 +201,8 @@
AXIS2_PARAM_CHECK(env->error, bean, AXIS2_FALSE);
ref_key = sandesha2_invoker_bean_get_msg_ctx_ref_key(bean, env);
- axis2_hash_set(invoker_mgr_impl->table, ref_key, AXIS2_HASH_KEY_STRING,
- bean);
- return AXIS2_TRUE;
-
+ return sandesha2_inmemory_bean_mgr_insert(invoker_mgr_impl->bean_mgr, env,
+ ref_key, (sandesha2_rm_bean_t *) bean);
}
axis2_bool_t AXIS2_CALL
@@ -199,11 +216,8 @@
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
AXIS2_PARAM_CHECK(env->error, key, AXIS2_FALSE);
invoker_mgr_impl = SANDESHA2_INTF_TO_IMPL(invoker_mgr);
-
- axis2_hash_set(invoker_mgr_impl->table, key, AXIS2_HASH_KEY_STRING, NULL);
-
- return AXIS2_TRUE;
-
+ return sandesha2_inmemory_bean_mgr_remove(invoker_mgr_impl->bean_mgr, env,
+ key);
}
sandesha2_invoker_bean_t *AXIS2_CALL
@@ -212,17 +226,13 @@
const axis2_env_t *env,
axis2_char_t *key)
{
- sandesha2_invoker_bean_t *bean = NULL;
sandesha2_inmemory_invoker_mgr_t *invoker_mgr_impl = NULL;
invoker_mgr_impl = SANDESHA2_INTF_TO_IMPL(invoker_mgr);
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
AXIS2_PARAM_CHECK(env->error, key, AXIS2_FALSE);
-
- bean = (sandesha2_invoker_bean_t *) axis2_hash_get(invoker_mgr_impl->table,
- key, AXIS2_HASH_KEY_STRING);
-
- return bean;
+ return (sandesha2_invoker_bean_t *) sandesha2_inmemory_bean_mgr_retrieve(
+ invoker_mgr_impl->bean_mgr, env, key);
}
axis2_bool_t AXIS2_CALL
@@ -233,7 +243,6 @@
{
axis2_char_t *ref_key = NULL;
sandesha2_inmemory_invoker_mgr_t *invoker_mgr_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
AXIS2_PARAM_CHECK(env->error, bean, AXIS2_FALSE);
invoker_mgr_impl = SANDESHA2_INTF_TO_IMPL(invoker_mgr);
@@ -243,9 +252,8 @@
{
return AXIS2_FALSE;
}
- axis2_hash_set(invoker_mgr_impl->table, ref_key, AXIS2_HASH_KEY_STRING, bean);
-
- return AXIS2_TRUE;
+ return sandesha2_inmemory_bean_mgr_update(invoker_mgr_impl->bean_mgr, env,
+ ref_key, (sandesha2_rm_bean_t *) bean);
}
axis2_array_list_t *AXIS2_CALL
@@ -254,72 +262,11 @@
const axis2_env_t *env,
sandesha2_invoker_bean_t *bean)
{
- axis2_array_list_t *beans = NULL;
- axis2_hash_index_t *i = NULL;
- sandesha2_invoker_bean_t *temp = NULL;
- void *v = NULL;
sandesha2_inmemory_invoker_mgr_t *invoker_mgr_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
invoker_mgr_impl = SANDESHA2_INTF_TO_IMPL(invoker_mgr);
-
- beans = axis2_array_list_create(env, 0);
- if(!beans)
- {
- AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- return NULL;
- }
- if(!bean)
- {
- return beans;
- }
- for (i = axis2_hash_first (invoker_mgr_impl->table, env); i;
- i = axis2_hash_next (env, i))
- {
- axis2_bool_t select = AXIS2_TRUE;
- axis2_char_t *ref_key = NULL;
- axis2_char_t *temp_ref_key = NULL;
- axis2_char_t *seq_id = NULL;
- axis2_char_t *temp_seq_id = NULL;
- long msg_no = 0;
- long temp_msg_no = 0;
- axis2_bool_t is_invoked = AXIS2_FALSE;
- axis2_bool_t temp_is_invoked = AXIS2_FALSE;
-
- axis2_hash_this (i, NULL, NULL, &v);
- temp = (sandesha2_invoker_bean_t *) v;
- ref_key = sandesha2_invoker_bean_get_msg_ctx_ref_key(bean, env);
- temp_ref_key = sandesha2_invoker_bean_get_msg_ctx_ref_key(temp, env);
- if(ref_key && temp_ref_key && 0 != AXIS2_STRCMP(ref_key, temp_ref_key))
- {
- select = AXIS2_FALSE;
- }
- seq_id = sandesha2_invoker_bean_get_seq_id(bean, env);
- temp_seq_id = sandesha2_invoker_bean_get_seq_id(temp, env);
- if(seq_id && temp_seq_id && 0 != AXIS2_STRCMP(seq_id, temp_seq_id))
- {
- select = AXIS2_FALSE;
- }
- msg_no = sandesha2_invoker_bean_get_msg_no(bean, env);
- temp_msg_no = sandesha2_invoker_bean_get_msg_no(temp, env);
- if(msg_no != 0 && (msg_no != temp_msg_no))
- {
- select = AXIS2_FALSE;
- }
- is_invoked = sandesha2_invoker_bean_is_invoked(bean, env);
- temp_is_invoked = sandesha2_invoker_bean_is_invoked(temp, env);
- if(is_invoked != temp_is_invoked)
- {
- select = AXIS2_FALSE;
- }
- if(AXIS2_TRUE == select)
- {
- AXIS2_ARRAY_LIST_ADD(beans, env, temp);
- }
-
- }
-
- return beans;
+ return sandesha2_inmemory_bean_mgr_find(invoker_mgr_impl->bean_mgr, env,
+ (sandesha2_rm_bean_t *) bean);
}
sandesha2_invoker_bean_t *AXIS2_CALL
@@ -328,30 +275,64 @@
const axis2_env_t *env,
sandesha2_invoker_bean_t *bean)
{
- axis2_array_list_t *beans = NULL;
- int i = 0, size = 0;
- sandesha2_invoker_bean_t *ret = NULL;
sandesha2_inmemory_invoker_mgr_t *invoker_mgr_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FALSE);
AXIS2_PARAM_CHECK(env->error, bean, AXIS2_FALSE);
invoker_mgr_impl = SANDESHA2_INTF_TO_IMPL(invoker_mgr);
+ return (sandesha2_invoker_bean_t *)
+ sandesha2_inmemory_bean_mgr_find_unique(invoker_mgr_impl->bean_mgr, env,
+ (sandesha2_rm_bean_t *) bean);
+}
+
+axis2_bool_t AXIS2_CALL
+sandesha2_inmemory_create_invoker_mgr_match(
+ sandesha2_inmemory_bean_mgr_t *invoker_mgr,
+ const axis2_env_t *env,
+ sandesha2_rm_bean_t *bean,
+ sandesha2_rm_bean_t *candidate)
+{
+ axis2_bool_t select = AXIS2_TRUE;
+ axis2_char_t *ref_key = NULL;
+ axis2_char_t *temp_ref_key = NULL;
+ axis2_char_t *seq_id = NULL;
+ axis2_char_t *temp_seq_id = NULL;
+ long msg_no = 0;
+ long temp_msg_no = 0;
+ axis2_bool_t is_invoked = AXIS2_FALSE;
+ axis2_bool_t temp_is_invoked = AXIS2_FALSE;
- beans = sandesha2_inmemory_invoker_mgr_find(invoker_mgr, env, bean);
- if(beans)
- size = AXIS2_ARRAY_LIST_SIZE(beans, env);
- if( size > 1)
+ ref_key = sandesha2_invoker_bean_get_msg_ctx_ref_key(
+ (sandesha2_invoker_bean_t *) bean, env);
+ temp_ref_key = sandesha2_invoker_bean_get_msg_ctx_ref_key(
+ (sandesha2_invoker_bean_t *) candidate, env);
+ if(ref_key && temp_ref_key && 0 != AXIS2_STRCMP(ref_key, temp_ref_key))
+ {
+ select = AXIS2_FALSE;
+ }
+ seq_id = sandesha2_invoker_bean_get_seq_id(
+ (sandesha2_invoker_bean_t *) bean, env);
+ temp_seq_id = sandesha2_invoker_bean_get_seq_id(
+ (sandesha2_invoker_bean_t *) candidate, env);
+ if(seq_id && temp_seq_id && 0 != AXIS2_STRCMP(seq_id, temp_seq_id))
+ {
+ select = AXIS2_FALSE;
+ }
+ msg_no = sandesha2_invoker_bean_get_msg_no(
+ (sandesha2_invoker_bean_t *) bean, env);
+ temp_msg_no = sandesha2_invoker_bean_get_msg_no(
+ (sandesha2_invoker_bean_t *) candidate, env);
+ if(msg_no != 0 && (msg_no != temp_msg_no))
+ {
+ select = AXIS2_FALSE;
+ }
+ is_invoked = sandesha2_invoker_bean_is_invoked(
+ (sandesha2_invoker_bean_t *) bean, env);
+ temp_is_invoked = sandesha2_invoker_bean_is_invoked(
+ (sandesha2_invoker_bean_t *) candidate, env);
+ if(is_invoked != temp_is_invoked)
{
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Non-Unique result");
- AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NON_UNIQUE_RESULT, AXIS2_FAILURE);
- return NULL;
- }
- for(i = 0; i < size; i++)
- {
- ret = AXIS2_ARRAY_LIST_GET(beans, env, i);
- break;
+ select = AXIS2_FALSE;
}
-
-
- return ret;
+ return select;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org