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 09:58:34 UTC

svn commit: r483890 - in /webservices/sandesha/trunk/c: include/ src/storage/beans/ src/storage/inmemory/

Author: damitha
Date: Fri Dec  8 00:58:33 2006
New Revision: 483890

URL: http://svn.apache.org/viewvc?view=rev&rev=483890
Log:
More work on storage abstration

Modified:
    webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h
    webservices/sandesha/trunk/c/include/sandesha2_create_seq_mgr.h
    webservices/sandesha/trunk/c/include/sandesha2_inmemory_create_seq_mgr.h
    webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h
    webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h
    webservices/sandesha/trunk/c/include/sandesha2_sender_bean.h
    webservices/sandesha/trunk/c/include/sandesha2_seq_property_bean.h
    webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h
    webservices/sandesha/trunk/c/include/sandesha2_transaction.h
    webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c
    webservices/sandesha/trunk/c/src/storage/inmemory/Makefile.am
    webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_create_seq_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=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h Fri Dec  8 00:58:33 2006
@@ -21,14 +21,20 @@
 #include <axis2_env.h>
 #include <axis2_utils.h>
 #include <axis2_utils_defines.h>
+#include <sandesha2_rm_bean.h>
 
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
-typedef struct sandesha2_create_seq_bean_t sandesha2_create_seq_bean_t;
-struct sandesha2_rm_bean_t;
+typedef struct sandesha2_create_seq_bean sandesha2_create_seq_bean_t;
+struct sandesha2_transaction;
+
+struct sandesha2_create_seq_bean
+{
+    sandesha2_rm_bean_t rm_bean;
+};
 
 /* constructors 
  */
@@ -43,78 +49,98 @@
     axis2_char_t *create_seq_msg_id, 
     axis2_char_t *seq_id);
 
-axis2_status_t AXIS2_CALL 
+void AXIS2_CALL 
 sandesha2_create_seq_bean_free  (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_rm_bean_t *create_seq_bean,
     const axis2_env_t *env);
 
-struct sandesha2_rm_bean_t * AXIS2_CALL
+struct sandesha2_rm_bean * AXIS2_CALL
 sandesha2_create_seq_bean_get_base( 
     sandesha2_create_seq_bean_t* create_seq,
     const axis2_env_t *env);
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_base (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env, 
-    struct sandesha2_rm_bean_t* rm_bean);
+    struct sandesha2_rm_bean* rm_bean);
 
 axis2_char_t* AXIS2_CALL 
 sandesha2_create_seq_bean_get_create_seq_msg_id  (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env);
 
 void AXIS2_CALL 
 sandesha2_create_seq_bean_set_create_seq_msg_id (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env, 
     axis2_char_t* seq_msg_id) ;
 
 axis2_char_t* AXIS2_CALL 
 sandesha2_create_seq_bean_get_seq_id (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env);
 	
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_seq_id (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env, 
     axis2_char_t* seq_id) ;
 
 axis2_char_t* AXIS2_CALL
 sandesha2_create_seq_bean_get_internal_seq_id (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env);
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_internal_seq_id (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env, 
     axis2_char_t* int_seq_id);
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_create_seq_msg_store_key(
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env);
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_create_seq_msg_store_key(
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env, 
     axis2_char_t *create_seq_msg_store_key);
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_ref_msg_store_key( 
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env);
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_ref_msg_store_key( 
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env, 
     axis2_char_t *ref_msg_store_key);
 
+void AXIS2_CALL
+sandesha2_create_seq_bean_set_id( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env, 
+    long id);
 
+long AXIS2_CALL
+sandesha2_create_seq_bean_get_id( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env);
+
+void AXIS2_CALL
+sandesha2_create_seq_bean_set_transaction( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env, 
+    struct sandesha2_transaction *transaction);
+
+struct sandesha2_transaction *AXIS2_CALL
+sandesha2_create_seq_bean_get_transaction( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env);
 
 #ifdef __cplusplus
 }

Modified: webservices/sandesha/trunk/c/include/sandesha2_create_seq_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_create_seq_mgr.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_create_seq_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_create_seq_mgr.h Fri Dec  8 00:58:33 2006
@@ -71,7 +71,7 @@
         retrieve) (
                 sandesha2_create_seq_mgr_t *seq_mgr,
                 const axis2_env_t *env,
-                const axis2_char_t *msg_id);
+                axis2_char_t *msg_id);
 
     axis2_bool_t (AXIS2_CALL *
         update) (
@@ -94,7 +94,7 @@
 
 AXIS2_DECLARE_DATA struct sandesha2_create_seq_mgr
 {
-    const sandesha2_create_seq_mgr_ops_t *ops;
+    sandesha2_create_seq_mgr_ops_t ops;
 };
 
 AXIS2_EXTERN sandesha2_create_seq_mgr_t * AXIS2_CALL
@@ -123,7 +123,7 @@
 sandesha2_create_seq_mgr_retrieve(
     sandesha2_create_seq_mgr_t *seq_mgr,
     const axis2_env_t *env,
-    const axis2_char_t *msg_id);
+    axis2_char_t *msg_id);
 
 axis2_bool_t AXIS2_CALL
 sandesha2_create_seq_mgr_update(

Modified: webservices/sandesha/trunk/c/include/sandesha2_inmemory_create_seq_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_inmemory_create_seq_mgr.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_inmemory_create_seq_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_inmemory_create_seq_mgr.h Fri Dec  8 00:58:33 2006
@@ -33,6 +33,7 @@
 {
 #endif
 
+struct sandesha2_storage_mgr;
 struct axis2_ctx;
 
 /** @defgroup sandesha2_inmemory_create_seq_mgr In Memory Create Sequence Manager
@@ -43,6 +44,7 @@
 AXIS2_EXTERN struct sandesha2_create_seq_mgr * AXIS2_CALL
 sandesha2_inmemory_create_seq_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=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_invoker_bean.h Fri Dec  8 00:58:33 2006
@@ -27,7 +27,7 @@
 #endif
 
 typedef struct sandesha2_invoker_bean_t sandesha2_invoker_bean_t;
-struct sandesha2_rm_bean_t;
+struct sandesha2_rm_bean;
 
 /* constructors 
  */
@@ -47,7 +47,7 @@
     sandesha2_invoker_bean_t *invoker,
     const axis2_env_t *env);
 
-struct sandesha2_rm_bean_t * AXIS2_CALL
+struct sandesha2_rm_bean * AXIS2_CALL
 sandesha2_invoker_bean_get_base( 
     sandesha2_invoker_bean_t* invoker,
     const axis2_env_t *env);
@@ -56,7 +56,7 @@
 sandesha2_invoker_bean_set_base (
     sandesha2_invoker_bean_t *invoker,
     const axis2_env_t *env, 
-    struct sandesha2_rm_bean_t* rm_bean);
+    struct sandesha2_rm_bean* rm_bean);
 
 axis2_char_t* AXIS2_CALL 
 sandesha2_invoker_bean_get_msg_ctx_ref_key(

Modified: webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_next_msg_bean.h Fri Dec  8 00:58:33 2006
@@ -18,7 +18,7 @@
 #define SANDESHA2_NEXT_MSG_BEAN_H
 
 #include <axis2_utils_defines.h>
-struct sandesha2_rm_bean_t;
+struct sandesha2_rm_bean;
 #include <axis2_env.h>
 
 #ifdef __cplusplus
@@ -44,7 +44,7 @@
      sandesha2_next_msg_bean_t *next_msg_bean,
      const axis2_env_t *env);
 
-struct sandesha2_rm_bean_t * AXIS2_CALL
+struct sandesha2_rm_bean * AXIS2_CALL
 sandesha2_next_msg_bean_get_base( 
     sandesha2_next_msg_bean_t* next_msg,
     const axis2_env_t *env);
@@ -53,7 +53,7 @@
 sandesha2_next_msg_bean_set_base (
     sandesha2_next_msg_bean_t *next_msg,
     const axis2_env_t *env, 
-    struct sandesha2_rm_bean_t* rm_bean);
+    struct sandesha2_rm_bean* rm_bean);
 
 axis2_char_t* AXIS2_CALL
 sandesha2_next_msg_bean_get_seq_id(

Modified: webservices/sandesha/trunk/c/include/sandesha2_sender_bean.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_sender_bean.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_sender_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_sender_bean.h Fri Dec  8 00:58:33 2006
@@ -26,7 +26,7 @@
 #endif
 
 typedef struct sandesha2_sender_bean_t sandesha2_sender_bean_t;
-struct sandesha2_rm_bean_t;
+struct sandesha2_rm_bean;
 
 /* constructors 
  */
@@ -49,7 +49,7 @@
     sandesha2_sender_bean_t *sender,
     const axis2_env_t *env);
 
-struct sandesha2_rm_bean_t * AXIS2_CALL
+struct sandesha2_rm_bean * AXIS2_CALL
 sandesha2_sender_bean_get_base( 
     sandesha2_sender_bean_t* sender,
     const axis2_env_t *env);
@@ -58,7 +58,7 @@
 sandesha2_sender_bean_set_base (
     sandesha2_sender_bean_t *sender,
     const axis2_env_t *env, 
-    struct sandesha2_rm_bean_t* rm_bean);
+    struct sandesha2_rm_bean* rm_bean);
 
 axis2_char_t* AXIS2_CALL
 sandesha2_sender_bean_get_msg_ctx_ref_key (

Modified: webservices/sandesha/trunk/c/include/sandesha2_seq_property_bean.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_seq_property_bean.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_seq_property_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_seq_property_bean.h Fri Dec  8 00:58:33 2006
@@ -26,7 +26,7 @@
 #endif
 
 typedef struct sandesha2_seq_property_bean_t sandesha2_seq_property_bean_t ;
-struct sandesha2_rm_bean_t;
+struct sandesha2_rm_bean;
 
 /* constructors 
  */
@@ -47,7 +47,7 @@
     sandesha2_seq_property_bean_t *seq_property,
     const axis2_env_t *env);
 
-struct sandesha2_rm_bean_t * AXIS2_CALL
+struct sandesha2_rm_bean * AXIS2_CALL
 sandesha2_seq_property_bean_get_base( 
     sandesha2_seq_property_bean_t* seq_property,
     const axis2_env_t *env);
@@ -56,7 +56,7 @@
 sandesha2_seq_property_bean_set_base (
     sandesha2_seq_property_bean_t *seq_property,
     const axis2_env_t *env, 
-    struct sandesha2_rm_bean_t* rm_bean);
+    struct sandesha2_rm_bean* rm_bean);
 
 axis2_char_t *AXIS2_CALL
 sandesha2_seq_property_bean_get_name (

Modified: webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_storage_mgr.h Fri Dec  8 00:58:33 2006
@@ -41,7 +41,7 @@
  
 typedef struct sandesha2_storage_mgr sandesha2_storage_mgr_t;
 typedef struct sandesha2_storage_mgr_ops sandesha2_storage_mgr_ops_t;
-struct sandesha2_rm_bean_t;
+struct sandesha2_rm_bean;
 struct sandesha2_sender_mgr;
 struct sandesha2_create_seq_mgr;
 struct sandesha2_invoker_mgr;
@@ -73,7 +73,7 @@
             enlist_bean)(
                 sandesha2_storage_mgr_t *storage_mgr,
                 const axis2_env_t *env,
-                struct sandesha2_rm_bean_t *rm_bean);
+                struct sandesha2_rm_bean *rm_bean);
 
     struct sandesha2_create_seq_mgr *(AXIS2_CALL *
             get_create_seq_mgr)(
@@ -200,7 +200,7 @@
 sandesha2_storage_mgr_enlist_bean(
     sandesha2_storage_mgr_t *storage_mgr,
     const axis2_env_t *env,
-    struct sandesha2_rm_bean_t *rm_bean);
+    struct sandesha2_rm_bean *rm_bean);
 
 struct sandesha2_create_seq_mgr *AXIS2_CALL
 sandesha2_storage_mgr_get_create_seq_mgr(

Modified: webservices/sandesha/trunk/c/include/sandesha2_transaction.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_transaction.h?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_transaction.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_transaction.h Fri Dec  8 00:58:33 2006
@@ -36,7 +36,7 @@
 typedef struct sandesha2_transaction sandesha2_transaction_t;
 typedef struct sandesha2_transaction_ops sandesha2_transaction_ops_t;
 struct sandesha2_storage_mgr;
-struct sandesha2_rm_bean_t;
+struct sandesha2_rm_bean;
 
 /** @defgroup sandesha2_transaction In Memory Transaction 
   * @ingroup sandesha2
@@ -73,7 +73,7 @@
             enlist)(
                 sandesha2_transaction_t *trans,
                 const axis2_env_t *env,
-                struct sandesha2_rm_bean_t *rm_bean);
+                struct sandesha2_rm_bean *rm_bean);
 };
 
 AXIS2_DECLARE_DATA struct sandesha2_transaction
@@ -110,7 +110,7 @@
 sandesha2_transaction_enlist(
     sandesha2_transaction_t *trans,
     const axis2_env_t *env,
-    struct sandesha2_rm_bean_t *rm_bean);
+    struct sandesha2_rm_bean *rm_bean);
 
 /** @} */
 #ifdef __cplusplus

Modified: webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c (original)
+++ webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c Fri Dec  8 00:58:33 2006
@@ -15,6 +15,7 @@
  */
 
 #include <sandesha2_create_seq_bean.h>
+#include <sandesha2_transaction.h>
 #include <sandesha2_rm_bean.h>
 #include <axis2_env.h>
 #include <axis2_utils.h>
@@ -25,9 +26,10 @@
 
 /*create_seq_bean struct */
 
-struct sandesha2_create_seq_bean_t
+typedef struct sandesha2_create_seq_bean_impl
 {
-    sandesha2_rm_bean_t *rm_bean;
+    sandesha2_create_seq_bean_t create_seq_bean;
+    sandesha2_rm_bean_t *rm_bean_impl;
 	/*  a unique identifier that can be used to identify the messages of a certain seq */
 	axis2_char_t *internal_seq_id;
 
@@ -51,36 +53,45 @@
      * here since it may be subjected to things like encryption.
      */
     axis2_char_t *ref_msg_store_key;
-};
+} sandesha2_create_seq_bean_impl_t;
 
-/* FUNCTION prototypes */
+#define SANDESHA2_INTF_TO_IMPL(create_seq_bean) \
+    ((sandesha2_create_seq_bean_impl_t *) create_seq_bean)
 
+static const sandesha2_rm_bean_ops_t rm_bean_ops = 
+{
+    sandesha2_create_seq_bean_free,
+    sandesha2_create_seq_bean_set_id,
+    sandesha2_create_seq_bean_get_id,
+    sandesha2_create_seq_bean_set_transaction,
+    sandesha2_create_seq_bean_get_transaction
+};
 
 AXIS2_EXTERN sandesha2_create_seq_bean_t * AXIS2_CALL
 sandesha2_create_seq_bean_create(
     const axis2_env_t *env )
 {
-	sandesha2_create_seq_bean_t *bean = NULL;
+	sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
 	AXIS2_ENV_CHECK(env, NULL);
 
-	bean = (sandesha2_create_seq_bean_t *) AXIS2_MALLOC(env->allocator, 
-				sizeof(sandesha2_create_seq_bean_t) );
+	create_seq_bean_impl = (sandesha2_create_seq_bean_impl_t *) AXIS2_MALLOC(
+        env->allocator, sizeof(sandesha2_create_seq_bean_impl_t) );
 
-	if (!bean)
+	if (!create_seq_bean_impl)
 	{
 		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
 		return NULL;
 	}
-
 	/* init the properties. */
-	bean->internal_seq_id = NULL;
-	bean->create_seq_msg_id = NULL;
-	bean->seq_id = NULL;
-    bean->create_seq_msg_store_key = NULL;
-    bean->ref_msg_store_key = NULL;
-    bean->rm_bean = NULL;
+	create_seq_bean_impl->internal_seq_id = NULL;
+	create_seq_bean_impl->create_seq_msg_id = NULL;
+	create_seq_bean_impl->seq_id = NULL;
+    create_seq_bean_impl->create_seq_msg_store_key = NULL;
+    create_seq_bean_impl->ref_msg_store_key = NULL;
+    create_seq_bean_impl->rm_bean_impl = sandesha2_rm_bean_create(env);
+    create_seq_bean_impl->create_seq_bean.rm_bean.ops = &rm_bean_ops;
 
-	return bean;
+	return &(create_seq_bean_impl->create_seq_bean);
 }
 	
 AXIS2_EXTERN sandesha2_create_seq_bean_t* AXIS2_CALL 
@@ -90,160 +101,236 @@
     axis2_char_t *create_seq_msg_id,
     axis2_char_t *seq_id)
 {
-	sandesha2_create_seq_bean_t *bean = NULL;
+	sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
 
 	AXIS2_ENV_CHECK(env, NULL);
 
-	bean = (sandesha2_create_seq_bean_t*) AXIS2_MALLOC(env->allocator, 
-				sizeof(sandesha2_create_seq_bean_t));
+	create_seq_bean_impl = (sandesha2_create_seq_bean_impl_t*) AXIS2_MALLOC(
+        env->allocator, sizeof(sandesha2_create_seq_bean_impl_t));
 
-	if (!bean)
+	if (!create_seq_bean_impl)
 	{
 		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
 		return NULL;
 	}
 
 	/* init the properties. */
-	bean->internal_seq_id = internal_seq_id;
-	bean->create_seq_msg_id = create_seq_msg_id;
-	bean->seq_id = seq_id;
-	bean->rm_bean = NULL;
+	create_seq_bean_impl->internal_seq_id = internal_seq_id;
+	create_seq_bean_impl->create_seq_msg_id = create_seq_msg_id;
+	create_seq_bean_impl->seq_id = seq_id;
+    create_seq_bean_impl->create_seq_msg_store_key = NULL;
+    create_seq_bean_impl->ref_msg_store_key = NULL;
+    create_seq_bean_impl->rm_bean_impl = sandesha2_rm_bean_create(env);
+    create_seq_bean_impl->create_seq_bean.rm_bean.ops = &rm_bean_ops;
 
-	return bean;
+	return &(create_seq_bean_impl->create_seq_bean);
 }
 
-
-axis2_status_t AXIS2_CALL
+void AXIS2_CALL
 sandesha2_create_seq_bean_free  (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_rm_bean_t *create_seq_bean,
     const axis2_env_t *env)
 {
-	if(create_seq->rm_bean)
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	if(create_seq_bean_impl->rm_bean_impl)
 	{
-		sandesha2_rm_bean_free(create_seq->rm_bean, env);
-		create_seq->rm_bean= NULL;
+		sandesha2_rm_bean_free(create_seq_bean_impl->rm_bean_impl, env);
+		create_seq_bean_impl->rm_bean_impl= NULL;
 	}
-	if(create_seq->internal_seq_id)
+	if(create_seq_bean_impl->internal_seq_id)
 	{
-		AXIS2_FREE(env->allocator, create_seq->internal_seq_id);
-		create_seq->internal_seq_id = NULL;
+		AXIS2_FREE(env->allocator, create_seq_bean_impl->internal_seq_id);
+		create_seq_bean_impl->internal_seq_id = NULL;
 	}
 		
-	if(create_seq->create_seq_msg_id)
+	if(create_seq_bean_impl->create_seq_msg_id)
 	{
-		AXIS2_FREE(env->allocator, create_seq->create_seq_msg_id);
-		create_seq->create_seq_msg_id= NULL;
+		AXIS2_FREE(env->allocator, create_seq_bean_impl->create_seq_msg_id);
+		create_seq_bean_impl->create_seq_msg_id= NULL;
 	}
 
-	if(create_seq->seq_id)
+	if(create_seq_bean_impl->seq_id)
 	{
-		AXIS2_FREE(env->allocator, create_seq->seq_id);
-		create_seq->seq_id= NULL;
+		AXIS2_FREE(env->allocator, create_seq_bean_impl->seq_id);
+		create_seq_bean_impl->seq_id= NULL;
 	}
-    return AXIS2_SUCCESS;
+    if(create_seq_bean_impl)
+    {
+        AXIS2_FREE(env->allocator, create_seq_bean_impl);
+        create_seq_bean_impl = NULL;
+    }
 }
 
 sandesha2_rm_bean_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_base( 
-    sandesha2_create_seq_bean_t* create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env)
 {
-	return create_seq->rm_bean;
-
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	return create_seq_bean_impl->rm_bean_impl;
 }	
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_base (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env, 
     sandesha2_rm_bean_t* rm_bean)
 
 {
-	create_seq->rm_bean = rm_bean;
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	create_seq_bean_impl->rm_bean_impl = rm_bean;
 }
 
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_create_seq_msg_id( 
-    sandesha2_create_seq_bean_t* create_seq,
+    sandesha2_create_seq_bean_t* create_seq_bean,
     const axis2_env_t *env)
 {
-	return create_seq->create_seq_msg_id;
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	return create_seq_bean_impl->create_seq_msg_id;
 
 }	
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_create_seq_msg_id (
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
     const axis2_env_t *env, 
     axis2_char_t* seq_msg_id)
 
 {
-	create_seq->create_seq_msg_id = AXIS2_STRDUP(seq_msg_id, env);
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	create_seq_bean_impl->create_seq_msg_id = AXIS2_STRDUP(seq_msg_id, env);
 }
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_seq_id(
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env)
 {
-	return create_seq->seq_id;
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	return create_seq_bean_impl->seq_id;
 }
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_seq_id(
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env, axis2_char_t *seq_id)
 {
-	create_seq->seq_id = AXIS2_STRDUP(seq_id, env);
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	create_seq_bean_impl->seq_id = AXIS2_STRDUP(seq_id, env);
 }
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_internal_seq_id( 
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env)
 {
-	return create_seq->internal_seq_id;
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	return create_seq_bean_impl->internal_seq_id;
 }
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_internal_seq_id( 
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env, axis2_char_t *int_seq_id)
 {
-	create_seq->internal_seq_id = AXIS2_STRDUP(int_seq_id, env);
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	create_seq_bean_impl->internal_seq_id = AXIS2_STRDUP(int_seq_id, env);
 }
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_create_seq_msg_store_key(
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env)
 {
-	return create_seq->create_seq_msg_store_key;
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	return create_seq_bean_impl->create_seq_msg_store_key;
 }
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_create_seq_msg_store_key(
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env, axis2_char_t *create_seq_msg_store_key)
 {
-    create_seq->create_seq_msg_store_key = AXIS2_STRDUP(create_seq_msg_store_key, 
-        env);
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+    create_seq_bean_impl->create_seq_msg_store_key = AXIS2_STRDUP(
+        create_seq_msg_store_key, env);
 }
 
 axis2_char_t * AXIS2_CALL
 sandesha2_create_seq_bean_get_ref_msg_store_key( 
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env)
 {
-	return create_seq->ref_msg_store_key;
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+	return create_seq_bean_impl->ref_msg_store_key;
 }
 
 void AXIS2_CALL
 sandesha2_create_seq_bean_set_ref_msg_store_key( 
-    sandesha2_create_seq_bean_t *create_seq,
+    sandesha2_create_seq_bean_t *create_seq_bean,
 	const axis2_env_t *env, axis2_char_t *ref_msg_store_key)
 {
-    create_seq->ref_msg_store_key = AXIS2_STRDUP(ref_msg_store_key, env);
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+    create_seq_bean_impl->ref_msg_store_key = AXIS2_STRDUP(ref_msg_store_key, 
+        env);
+}
+
+void AXIS2_CALL
+sandesha2_create_seq_bean_set_id( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env, 
+    long id)
+{
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+    sandesha2_rm_bean_set_id(create_seq_bean_impl->rm_bean_impl, env, id);
+}
+
+long AXIS2_CALL
+sandesha2_create_seq_bean_get_id( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env)
+{
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+    return sandesha2_rm_bean_get_id(create_seq_bean_impl->rm_bean_impl, env);
+}
+
+void AXIS2_CALL
+sandesha2_create_seq_bean_set_transaction( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env, 
+    sandesha2_transaction_t *transaction)
+{
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+    sandesha2_rm_bean_set_transaction(create_seq_bean_impl->rm_bean_impl, env, 
+        transaction);
+}
+
+sandesha2_transaction_t *AXIS2_CALL
+sandesha2_create_seq_bean_get_transaction( 
+    sandesha2_rm_bean_t *create_seq_bean,
+	const axis2_env_t *env)
+{
+    sandesha2_create_seq_bean_impl_t *create_seq_bean_impl = NULL;
+    create_seq_bean_impl = SANDESHA2_INTF_TO_IMPL(create_seq_bean);
+    return sandesha2_rm_bean_get_transaction(create_seq_bean_impl->rm_bean_impl, 
+        env);
 }
 

Modified: webservices/sandesha/trunk/c/src/storage/inmemory/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/inmemory/Makefile.am?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/inmemory/Makefile.am (original)
+++ webservices/sandesha/trunk/c/src/storage/inmemory/Makefile.am Fri Dec  8 00:58:33 2006
@@ -7,7 +7,8 @@
 								inmemory_next_msg_mgr.c \
 								inmemory_seq_property_mgr.c \
 								inmemory_transaction.c \
-								inmemory_storage_mgr.c
+								inmemory_storage_mgr.c \
+								inmemory_bean_mgr.c
 
 INCLUDES = -I$(top_builddir)/include \
 			-I$(top_builddir)/include/sandesha2 \

Modified: webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_create_seq_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_create_seq_mgr.c?view=diff&rev=483890&r1=483889&r2=483890
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_create_seq_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/storage/inmemory/inmemory_create_seq_mgr.c Fri Dec  8 00:58:33 2006
@@ -15,9 +15,12 @@
  */
  
 #include <sandesha2_inmemory_create_seq_mgr.h>
+#include <sandesha2_inmemory_bean_mgr.h>
 #include <sandesha2_constants.h>
+#include <sandesha2_storage_mgr.h>
 #include <sandesha2_create_seq_mgr.h>
 #include <sandesha2_error.h>
+#include <sandesha2_rm_bean.h>
 #include <axis2_log.h>
 #include <axis2_hash.h>
 #include <axis2_thread.h>
@@ -30,12 +33,14 @@
 typedef struct sandesha2_inmemory_create_seq_mgr
 {
     sandesha2_create_seq_mgr_t seq_mgr;
+    sandesha2_inmemory_bean_mgr_t *bean_mgr;
     axis2_hash_t *table;
     axis2_thread_mutex_t *mutex;
 
 }sandesha2_inmemory_create_seq_mgr_t;
 
-#define SANDESHA2_INTF_TO_IMPL(seq_mgr) ((sandesha2_inmemory_create_seq_mgr_t *) seq_mgr)
+#define SANDESHA2_INTF_TO_IMPL(seq_mgr) \
+    ((sandesha2_inmemory_create_seq_mgr_t *) seq_mgr)
 
 static axis2_status_t AXIS2_CALL 
 sandesha2_inmemory_create_seq_mgr_free(
@@ -58,7 +63,7 @@
 sandesha2_inmemory_create_seq_mgr_retrieve(
     sandesha2_create_seq_mgr_t *seq_mgr,
     const axis2_env_t *env,
-    const axis2_char_t *msg_id);
+    axis2_char_t *msg_id);
 
 static axis2_bool_t AXIS2_CALL
 sandesha2_inmemory_create_seq_mgr_update(
@@ -78,6 +83,12 @@
     const axis2_env_t *env,
     sandesha2_create_seq_bean_t *bean);
 
+axis2_bool_t AXIS2_CALL
+sandesha2_inmemory_create_seq_mgr_match(
+    sandesha2_inmemory_bean_mgr_t *seq_mgr,
+    const axis2_env_t *env,
+    sandesha2_rm_bean_t *bean,
+    sandesha2_rm_bean_t *candidate);
 
 static const sandesha2_create_seq_mgr_ops_t create_seq_mgr_ops = 
 {
@@ -87,12 +98,13 @@
     sandesha2_inmemory_create_seq_mgr_retrieve,
     sandesha2_inmemory_create_seq_mgr_update,
     sandesha2_inmemory_create_seq_mgr_find,
-    sandesha2_inmemory_create_seq_mgr_find_unique
+    sandesha2_inmemory_create_seq_mgr_find_unique,
 };
 
 AXIS2_EXTERN sandesha2_create_seq_mgr_t * AXIS2_CALL
 sandesha2_inmemory_create_seq_mgr_create(
     const axis2_env_t *env,
+    sandesha2_storage_mgr_t *storage_mgr,
     axis2_ctx_t *ctx)
 {
     sandesha2_inmemory_create_seq_mgr_t *seq_mgr_impl = NULL;
@@ -134,7 +146,10 @@
         AXIS2_CTX_SET_PROPERTY(ctx, env, SANDESHA2_BEAN_MAP_CREATE_SEQUECE, 
                 property, AXIS2_FALSE);
     }
-    seq_mgr_impl->seq_mgr.ops = &create_seq_mgr_ops;
+    seq_mgr_impl->bean_mgr = sandesha2_inmemory_bean_mgr_create(env, 
+        storage_mgr, ctx, SANDESHA2_BEAN_MAP_CREATE_SEQUECE);
+    seq_mgr_impl->bean_mgr->ops.match = sandesha2_inmemory_create_seq_mgr_match;
+    seq_mgr_impl->seq_mgr.ops = create_seq_mgr_ops;
     return &(seq_mgr_impl->seq_mgr);
 }
 
@@ -153,6 +168,11 @@
         axis2_thread_mutex_destroy(seq_mgr_impl->mutex);
         seq_mgr_impl->mutex = NULL;
     }
+    if(seq_mgr_impl->bean_mgr)
+    {
+        sandesha2_inmemory_bean_mgr_free(seq_mgr_impl->bean_mgr, env);
+        seq_mgr_impl->bean_mgr = NULL;
+    }
     if(seq_mgr_impl->table)
     {
         axis2_hash_free(seq_mgr_impl->table, env);
@@ -180,10 +200,8 @@
     seq_mgr_impl = SANDESHA2_INTF_TO_IMPL(seq_mgr);
 
     msg_id = sandesha2_create_seq_bean_get_create_seq_msg_id(bean, env);
-    axis2_hash_set(seq_mgr_impl->table, msg_id, AXIS2_HASH_KEY_STRING, bean);
-
-    return AXIS2_TRUE;
-
+    return sandesha2_inmemory_bean_mgr_insert(seq_mgr_impl->bean_mgr, env, 
+        msg_id, (sandesha2_rm_bean_t *) bean);
 }
 
 static axis2_bool_t AXIS2_CALL
@@ -197,30 +215,22 @@
     AXIS2_ENV_CHECK(env, AXIS2_FALSE);
     AXIS2_PARAM_CHECK(env->error, msg_id, AXIS2_FALSE);
     seq_mgr_impl = SANDESHA2_INTF_TO_IMPL(seq_mgr);
-
-    axis2_hash_set(seq_mgr_impl->table, msg_id, AXIS2_HASH_KEY_STRING, NULL);
-
-    return AXIS2_TRUE;
-
+    return sandesha2_inmemory_bean_mgr_remove(seq_mgr_impl->bean_mgr, env, 
+        msg_id);
 }
 
 static sandesha2_create_seq_bean_t *AXIS2_CALL
 sandesha2_inmemory_create_seq_mgr_retrieve(
     sandesha2_create_seq_mgr_t *seq_mgr,
     const axis2_env_t *env,
-    const axis2_char_t *msg_id)
+    axis2_char_t *msg_id)
 {
     sandesha2_inmemory_create_seq_mgr_t *seq_mgr_impl = NULL;
-    sandesha2_create_seq_bean_t *bean = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FALSE);
     AXIS2_PARAM_CHECK(env->error, msg_id, AXIS2_FALSE);
     seq_mgr_impl = SANDESHA2_INTF_TO_IMPL(seq_mgr);
-
-    bean = (sandesha2_create_seq_bean_t *) axis2_hash_get(seq_mgr_impl->table, 
-            msg_id, AXIS2_HASH_KEY_STRING);
-
-    return bean;
+    return (sandesha2_create_seq_bean_t *) sandesha2_inmemory_bean_mgr_retrieve(
+        seq_mgr_impl->bean_mgr, env, msg_id);
 }
 
 static axis2_bool_t AXIS2_CALL
@@ -241,9 +251,8 @@
     {
         return AXIS2_FALSE;
     }
-    axis2_hash_set(seq_mgr_impl->table, msg_id, AXIS2_HASH_KEY_STRING, bean);
-
-    return AXIS2_TRUE;
+    return sandesha2_inmemory_bean_mgr_update(seq_mgr_impl->bean_mgr, env, 
+        msg_id, (sandesha2_rm_bean_t *) bean);
 }
 
 static axis2_array_list_t *AXIS2_CALL
@@ -253,66 +262,10 @@
     sandesha2_create_seq_bean_t *bean)
 {
     sandesha2_inmemory_create_seq_mgr_t *seq_mgr_impl = NULL;
-    axis2_array_list_t *beans = NULL;
-    axis2_hash_index_t *i = NULL;
-    sandesha2_create_seq_bean_t *temp = NULL;
-    void *v = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FALSE);
     seq_mgr_impl = SANDESHA2_INTF_TO_IMPL(seq_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 (seq_mgr_impl->table, env); i; 
-            i = axis2_hash_next (env, i))
-    {
-        axis2_bool_t equal = AXIS2_TRUE;
-        axis2_char_t *msg_id = NULL;
-        axis2_char_t *temp_msg_id = NULL;
-        axis2_char_t *seq_id = NULL;
-        axis2_char_t *temp_seq_id = NULL;
-        axis2_char_t *internal_seq_id = NULL;
-        axis2_char_t *temp_internal_seq_id = NULL;
-        
-        axis2_hash_this (i, NULL, NULL, &v);
-        temp = (sandesha2_create_seq_bean_t *) v;
-        msg_id = sandesha2_create_seq_bean_get_create_seq_msg_id(bean, env);
-        temp_msg_id = sandesha2_create_seq_bean_get_create_seq_msg_id(temp, env);
-        if(msg_id && temp_msg_id && 0 != AXIS2_STRCMP(msg_id, temp_msg_id))
-        {
-            equal = AXIS2_FALSE;
-        }
-        seq_id = sandesha2_create_seq_bean_get_seq_id(bean, env);
-        temp_seq_id = sandesha2_create_seq_bean_get_seq_id(temp, env);
-        if(seq_id && temp_seq_id && 0 != AXIS2_STRCMP(seq_id, temp_seq_id))
-        {
-            equal = AXIS2_FALSE;
-        }
-        internal_seq_id = sandesha2_create_seq_bean_get_internal_seq_id(bean, 
-                env);
-        temp_internal_seq_id = sandesha2_create_seq_bean_get_internal_seq_id(
-                temp, env);
-        if(internal_seq_id && temp_internal_seq_id && 0 != AXIS2_STRCMP(
-                    internal_seq_id, temp_internal_seq_id))
-        {
-            equal = AXIS2_FALSE;
-        }
-        if(AXIS2_TRUE == equal)
-        {
-            AXIS2_ARRAY_LIST_ADD(beans, env, temp);
-        }
-        
-    }
-
-    return beans;
+    return sandesha2_inmemory_bean_mgr_find(seq_mgr_impl->bean_mgr, env, 
+        (sandesha2_rm_bean_t *) bean);
 }
 
 static sandesha2_create_seq_bean_t *AXIS2_CALL
@@ -322,29 +275,54 @@
     sandesha2_create_seq_bean_t *bean)
 {
     sandesha2_inmemory_create_seq_mgr_t *seq_mgr_impl = NULL;
-    axis2_array_list_t *beans = NULL;
-    int i = 0, size = 0;
-    sandesha2_create_seq_bean_t *ret = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FALSE);
     AXIS2_PARAM_CHECK(env->error, bean, AXIS2_FALSE);
     seq_mgr_impl = SANDESHA2_INTF_TO_IMPL(seq_mgr);
-
     
-    beans = sandesha2_inmemory_create_seq_mgr_find(seq_mgr, env, bean);
-    if(beans)
-        size = AXIS2_ARRAY_LIST_SIZE(beans, env);
-    if( size > 1)
-    {
-        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++)
+    return (sandesha2_create_seq_bean_t *) 
+        sandesha2_inmemory_bean_mgr_find_unique(seq_mgr_impl->bean_mgr, env, 
+        (sandesha2_rm_bean_t *) bean);
+}
+
+axis2_bool_t AXIS2_CALL
+sandesha2_inmemory_create_seq_mgr_match(
+    sandesha2_inmemory_bean_mgr_t *seq_mgr,
+    const axis2_env_t *env,
+    sandesha2_rm_bean_t *bean,
+    sandesha2_rm_bean_t *candidate)
+{
+    axis2_bool_t equal = AXIS2_TRUE;
+    axis2_char_t *msg_id = NULL;
+    axis2_char_t *temp_msg_id = NULL;
+    axis2_char_t *seq_id = NULL;
+    axis2_char_t *temp_seq_id = NULL;
+    axis2_char_t *internal_seq_id = NULL;
+    axis2_char_t *temp_internal_seq_id = NULL;
+    msg_id = sandesha2_create_seq_bean_get_create_seq_msg_id(
+        (sandesha2_create_seq_bean_t *) bean, env);
+    temp_msg_id = sandesha2_create_seq_bean_get_create_seq_msg_id(
+        (sandesha2_create_seq_bean_t *) candidate, env);
+    if(msg_id && temp_msg_id && 0 != AXIS2_STRCMP(msg_id, temp_msg_id))
+    {
+        equal = AXIS2_FALSE;
+    }
+    seq_id = sandesha2_create_seq_bean_get_seq_id(
+        (sandesha2_create_seq_bean_t *) bean, env);
+    temp_seq_id = sandesha2_create_seq_bean_get_seq_id(
+        (sandesha2_create_seq_bean_t *) candidate, env);
+    if(seq_id && temp_seq_id && 0 != AXIS2_STRCMP(seq_id, temp_seq_id))
+    {
+        equal = AXIS2_FALSE;
+    }
+    internal_seq_id = sandesha2_create_seq_bean_get_internal_seq_id(
+        (sandesha2_create_seq_bean_t *) bean, env);
+    temp_internal_seq_id = sandesha2_create_seq_bean_get_internal_seq_id(
+        (sandesha2_create_seq_bean_t *) candidate, env);
+    if(internal_seq_id && temp_internal_seq_id && 0 != AXIS2_STRCMP(
+        internal_seq_id, temp_internal_seq_id))
     {
-       ret = AXIS2_ARRAY_LIST_GET(beans, env, i);
-       break;
+        equal = AXIS2_FALSE;
     }
-    return ret;
+    return equal;
 }
 



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