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/11/20 11:43:04 UTC

svn commit: r477139 - in /webservices/sandesha/trunk/c: include/sandesha2_create_seq_bean.h include/sandesha2_error.h include/sandesha2_rm_elements.h src/storage/beans/create_seq_bean.c src/util/error.c src/util/msg_init.c src/wsrm/rm_elements.c

Author: damitha
Date: Mon Nov 20 02:43:03 2006
New Revision: 477139

URL: http://svn.apache.org/viewvc?view=rev&rev=477139
Log:
MakeConnection implementation is now compiling

Modified:
    webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h
    webservices/sandesha/trunk/c/include/sandesha2_error.h
    webservices/sandesha/trunk/c/include/sandesha2_rm_elements.h
    webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c
    webservices/sandesha/trunk/c/src/util/error.c
    webservices/sandesha/trunk/c/src/util/msg_init.c
    webservices/sandesha/trunk/c/src/wsrm/rm_elements.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=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_create_seq_bean.h Mon Nov 20 02:43:03 2006
@@ -78,6 +78,26 @@
     sandesha2_create_seq_bean_t *create_seq,
     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,
+	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,
+	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,
+	const axis2_env_t *env);
+
+void AXIS2_CALL
+sandesha2_create_seq_bean_set_ref_msg_store_key( 
+    sandesha2_create_seq_bean_t *create_seq,
+	const axis2_env_t *env, axis2_char_t *ref_msg_store_key);
+
 
 
 #ifdef __cplusplus

Modified: webservices/sandesha/trunk/c/include/sandesha2_error.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_error.h?view=diff&rev=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_error.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_error.h Mon Nov 20 02:43:03 2006
@@ -200,6 +200,8 @@
         SANDESHA2_ERROR_INVALID_MAKE_CONNECTION_BOTH_IDENTIFER_AND_ADDRESS_NULL,
         /* MakeConnection is not supported in this RM version */
         SANDESHA2_ERROR_MAKE_CONNECTION_IS_NOT_SUPPORTED_IN_THIS_RM_VERSION,
+        /* Invalid MakeConnection message. Either Address or Identifier must be present */
+        SANDESHA2_ERROR_INVALID_MAKE_CONNECTION_MSG,
         SANDESHA2_ERROR_LAST
     };
         

Modified: webservices/sandesha/trunk/c/include/sandesha2_rm_elements.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_rm_elements.h?view=diff&rev=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_rm_elements.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_rm_elements.h Mon Nov 20 02:43:03 2006
@@ -35,6 +35,8 @@
 #include <sandesha2_seq.h>
 #include <sandesha2_identifier.h>
 #include <sandesha2_msg_number.h>
+#include <sandesha2_make_connection.h>
+#include <sandesha2_msg_pending.h>
 
 
 
@@ -47,220 +49,159 @@
  * @ingroup sandesha2_util
  * @{
  */
- 
- typedef struct sandesha2_rm_elements_ops sandesha2_rm_elements_ops_t;
- typedef struct sandesha2_rm_elements sandesha2_rm_elements_t;
- /**
- * @brief Sandesha2 RM Elements ops struct
- * Encapsulator struct for ops of sandesha2_rm_elements
- */
-AXIS2_DECLARE_DATA struct sandesha2_rm_elements_ops
-{
-    
-    axis2_status_t (AXIS2_CALL *
-        from_soap_envelope) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope,
-            axis2_char_t *action);
-            
-    axiom_soap_envelope_t* (AXIS2_CALL *
-        to_soap_envelope) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope);
-            
-    sandesha2_create_seq_t* (AXIS2_CALL *
-        get_create_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_create_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_create_seq_t *create_seq);
-    
-    sandesha2_create_seq_res_t* (AXIS2_CALL *
-        get_create_seq_res) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_create_seq_res) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_create_seq_res_t *create_seq_res);
-            
-    sandesha2_seq_t* (AXIS2_CALL *
-        get_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_seq_t *seq);
-            
-    sandesha2_seq_ack_t* (AXIS2_CALL *
-        get_seq_ack) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_seq_ack) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_seq_ack_t *seq_ack);
-            
-    sandesha2_terminate_seq_t* (AXIS2_CALL *
-        get_terminate_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_terminate_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_terminate_seq_t *terminate_seq);
-            
-    sandesha2_terminate_seq_res_t* (AXIS2_CALL *
-        get_terminate_seq_res) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_terminate_seq_res) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_terminate_seq_res_t *terminate_seq_res);
-            
-    sandesha2_ack_requested_t* (AXIS2_CALL *
-        get_ack_requested) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_ack_requested) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_ack_requested_t *ack_requested);
-    
-    sandesha2_close_seq_t* (AXIS2_CALL *
-        get_close_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_close_seq) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_close_seq_t *close_seq);
-    
-    sandesha2_close_seq_res_t* (AXIS2_CALL *
-        get_close_seq_res) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-    axis2_status_t (AXIS2_CALL *
-        set_close_seq_res) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_close_seq_res_t *close_seq_res);
-    
-    axis2_char_t* (AXIS2_CALL *
-        get_addr_ns_val) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-    
-    axis2_status_t (AXIS2_CALL *
-        free) 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-};
-
-/**
- * @brief sandesha2_rm_elements_ops
- *    sandesha2_rm_elements_ops
- */
-AXIS2_DECLARE_DATA struct sandesha2_rm_elements
-{
-    sandesha2_rm_elements_ops_t *ops;
-};
+
+typedef struct sandesha2_rm_elements_t sandesha2_rm_elements_t;
 
 AXIS2_EXTERN sandesha2_rm_elements_t* AXIS2_CALL
 sandesha2_rm_elements_create(
-						const axis2_env_t *env,
-                        axis2_char_t *addr_ns_uri);
-                        
-/************************** Start of function macros **************************/
-#define SANDESHA2_RM_ELEMENTS_FREE(rm_elements, env) \
-    ((rm_elements)->ops->free (rm_elements, env))
-
-#define SANDESHA2_RM_ELEMENTS_FROM_SOAP_ENVELOPE(rm_elements, env, envelope, action) \
-    ((rm_elements)->ops->from_soap_envelope (rm_elements, env, envelope, action))
-    
-#define SANDESHA2_RM_ELEMENTS_TO_SOAP_ENVELOPE(rm_elements, env, envelope) \
-    ((rm_elements)->ops->to_soap_envelope (rm_elements, env, envelope))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_CREATE_SEQ(rm_elements, env) \
-    ((rm_elements)->ops->get_create_seq (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_CREATE_SEQ(rm_elements, env, element) \
-    ((rm_elements)->ops->set_create_seq (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_CREATE_SEQ_RES(rm_elements, env) \
-    ((rm_elements)->ops->get_create_seq_res (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_CREATE_SEQ_RES(rm_elements, env, element) \
-    ((rm_elements)->ops->set_create_seq_res (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_SEQ(rm_elements, env) \
-    ((rm_elements)->ops->get_seq (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_SEQ(rm_elements, env, element) \
-    ((rm_elements)->ops->set_sequence (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_SEQ_ACK(rm_elements, env) \
-    ((rm_elements)->ops->get_seq_ack (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_SEQ_ACK(rm_elements, env, element) \
-    ((rm_elements)->ops->set_seq_ack (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_TERMINATE_SEQ(rm_elements, env) \
-    ((rm_elements)->ops->get_terminate_seq (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_TERMINATE_SEQ(rm_elements, env, element) \
-    ((rm_elements)->ops->set_terminate_seq (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_TERMINATE_SEQ_RES(rm_elements, env) \
-    ((rm_elements)->ops->get_terminate_seq_res (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_TERMINATE_SEQ_RES(rm_elements, env, element) \
-    ((rm_elements)->ops->set_terminate_seq_res (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_ACK_REQUESTED(rm_elements, env) \
-    ((rm_elements)->ops->get_ack_requested (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_ACK_REQUESTED(rm_elements, env, element) \
-    ((rm_elements)->ops->set_ack_reqested (rm_elements, env, element)
-    
-#define SANDESHA2_RM_ELEMENTS_GET_CLOSE_SEQ(rm_elements, env) \
-    ((rm_elements)->ops->get_close_seq (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_CLOSE_SEQ(rm_elements, env, element) \
-    ((rm_elements)->ops->set_close_seq (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_CLOSE_SEQ_RES(rm_elements, env) \
-    ((rm_elements)->ops->get_close_seq_res (rm_elements, env))
-    
-#define SANDESHA2_RM_ELEMENTS_SET_CLOSE_SEQ_RES(rm_elements, env, element) \
-    ((rm_elements)->ops->set_close_seq_res (rm_elements, env, element))
-    
-#define SANDESHA2_RM_ELEMENTS_GET_ADDR_NS_VAL(rm_elements, env) \
-    ((rm_elements)->ops->get_addr_ns_val (rm_elements, env))
-/************************** End of function macros ****************************/
+    const axis2_env_t *env,
+    axis2_char_t *addr_ns_uri);
+ 
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_from_soap_envelope(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope,
+    axis2_char_t *action);
+            
+axiom_soap_envelope_t* AXIS2_CALL 
+sandesha2_rm_elements_to_soap_envelope(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope);
+            
+sandesha2_create_seq_t* AXIS2_CALL 
+sandesha2_rm_elements_get_create_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_create_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_create_seq_t *create_seq);
+    
+sandesha2_create_seq_res_t* AXIS2_CALL
+sandesha2_rm_elements_get_create_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_create_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+            sandesha2_create_seq_res_t *create_seq_res);
+            
+sandesha2_seq_t* AXIS2_CALL 
+sandesha2_rm_elements_get_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_seq_t *seq);
+            
+sandesha2_seq_ack_t* AXIS2_CALL 
+sandesha2_rm_elements_get_seq_ack(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_seq_ack(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_seq_ack_t *seq_ack);
+            
+sandesha2_terminate_seq_t* AXIS2_CALL 
+sandesha2_rm_elements_get_terminate_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_terminate_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_terminate_seq_t *terminate_seq);
+            
+sandesha2_terminate_seq_res_t* AXIS2_CALL 
+sandesha2_rm_elements_get_terminate_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_terminate_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_terminate_seq_res_t *terminate_seq_res);
+            
+sandesha2_ack_requested_t* AXIS2_CALL 
+sandesha2_rm_elements_get_ack_requested(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_ack_requested(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_ack_requested_t *ack_reqested);
+    
+sandesha2_close_seq_t* AXIS2_CALL 
+sandesha2_rm_elements_get_close_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_close_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_close_seq_t *close_seq);
+    
+sandesha2_close_seq_res_t* AXIS2_CALL 
+sandesha2_rm_elements_get_close_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_set_close_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_close_seq_res_t *close_seq_res);
+    
+axis2_char_t* AXIS2_CALL 
+sandesha2_rm_elements_get_addr_ns_val(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+
+axis2_char_t* AXIS2_CALL 
+sandesha2_rm_elements_get_rm_ns_val(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope,
+    axis2_char_t *action);
+
+axis2_char_t* AXIS2_CALL 
+sandesha2_rm_elements_get_addr_ns_val_from_env(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope,
+    axis2_char_t *action);
+            
+axis2_status_t AXIS2_CALL 
+sandesha2_rm_elements_free(
+    sandesha2_rm_elements_t *mgr, 
+    const axis2_env_t *env);								
+
+sandesha2_make_connection_t* AXIS2_CALL 
+sandesha2_rm_elements_get_make_connection(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
+
+sandesha2_msg_pending_t* AXIS2_CALL 
+sandesha2_rm_elements_get_msg_pending(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env);
 
 /** @} */
 #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=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c (original)
+++ webservices/sandesha/trunk/c/src/storage/beans/create_seq_bean.c Mon Nov 20 02:43:03 2006
@@ -34,7 +34,21 @@
 
 	/*  This is the actual Sequence ID of the seq.*/
 	axis2_char_t *seq_id;
-
+    /**
+     * The key that is used to store the CreateSequence message in the Message 
+     * Storage.This is stored here, so that the CreateSequence message can be 
+     * used as a reference when Sandesha2 want to generate new messages. 
+     * (e.g. MakeConnection)
+     */
+    axis2_char_t *create_seq_msg_store_key;
+
+    /**
+     * This is stored here, so that the message pointed by this can be used as a 
+     * reference when Sandesha2 want to generate new messages. 
+     * (e.g. MakeConnection). Create sequence message could not be used
+     * here since it may be subjected to things like encryption.
+     */
+    axis2_char_t *ref_msg_store_key;
 };
 
 /* FUNCTION prototypes */
@@ -170,5 +184,38 @@
 	const axis2_env_t *env, axis2_char_t *int_seq_id)
 {
 	create_seq->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,
+	const axis2_env_t *env)
+{
+	return create_seq->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,
+	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);
+}
+
+axis2_char_t * AXIS2_CALL
+sandesha2_create_seq_bean_get_ref_msg_store_key( 
+    sandesha2_create_seq_bean_t *create_seq,
+	const axis2_env_t *env)
+{
+	return create_seq->ref_msg_store_key;
+}
+
+void AXIS2_CALL
+sandesha2_create_seq_bean_set_ref_msg_store_key( 
+    sandesha2_create_seq_bean_t *create_seq,
+	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);
 }
 

Modified: webservices/sandesha/trunk/c/src/util/error.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/error.c?view=diff&rev=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/src/util/error.c (original)
+++ webservices/sandesha/trunk/c/src/util/error.c Mon Nov 20 02:43:03 2006
@@ -183,6 +183,8 @@
         "Invalid MakeConnection object. Both Identifier and Address are null";
     sandesha2_error_messages[SANDESHA2_ERROR_MAKE_CONNECTION_IS_NOT_SUPPORTED_IN_THIS_RM_VERSION]=
         "MakeConnection is not supported in this RM version";
+    sandesha2_error_messages[SANDESHA2_ERROR_INVALID_MAKE_CONNECTION_MSG]=
+        "Invalid MakeConnection message. Either Address or Identifier must be present";
 
     return AXIS2_SUCCESS;
 }

Modified: webservices/sandesha/trunk/c/src/util/msg_init.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_init.c?view=diff&rev=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_init.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_init.c Mon Nov 20 02:43:03 2006
@@ -34,6 +34,8 @@
 #include <sandesha2_ack_requested.h>
 #include <sandesha2_close_seq.h>
 #include <sandesha2_close_seq_res.h>
+#include <sandesha2_make_connection.h>
+#include <sandesha2_msg_pending.h>
 #include <sandesha2_rm_elements.h>
 #include "../client/sandesha2_client_constants.h"
 
@@ -113,7 +115,7 @@
     axis2_property_t *prop = NULL;
     axis2_ctx_t *ctx = NULL;
     axiom_soap_envelope_t *envelope = NULL;
-    sandesha2_rm_elements_t *elements = NULL;
+    sandesha2_rm_elements_t *rm_elements = NULL;
     sandesha2_create_seq_t *create_seq = NULL;
     sandesha2_create_seq_res_t *create_seq_res = NULL;
     sandesha2_seq_t *seq = NULL;
@@ -123,6 +125,8 @@
     sandesha2_ack_requested_t *ack_request = NULL;
     sandesha2_close_seq_t *close_seq = NULL;
     sandesha2_close_seq_res_t *close_seq_res = NULL;
+    sandesha2_make_connection_t *make_conn = NULL;
+    sandesha2_msg_pending_t *msg_pending = NULL;
     
     /* If client side and the addressing version is not set. 
      * Assuming the default addressing version.
@@ -138,13 +142,13 @@
         addressing_ns = AXIS2_STRDUP(AXIS2_WSA_NAMESPACE, env);
     }
     if(addressing_ns)
-        elements = sandesha2_rm_elements_create(env, addressing_ns);
-    if(!elements)
+        rm_elements = sandesha2_rm_elements_create(env, addressing_ns);
+    if(!rm_elements)
         return AXIS2_FAILURE;
     envelope = AXIS2_MSG_CTX_GET_SOAP_ENVELOPE(msg_ctx, env);
     action = (axis2_char_t*)AXIS2_MSG_CTX_GET_WSA_ACTION(msg_ctx, env);
-    SANDESHA2_RM_ELEMENTS_FROM_SOAP_ENVELOPE(elements, env, envelope, action);
-    create_seq = SANDESHA2_RM_ELEMENTS_GET_CREATE_SEQ(elements, env);
+    sandesha2_rm_elements_from_soap_envelope(rm_elements, env, envelope, action);
+    create_seq = sandesha2_rm_elements_get_create_seq(rm_elements, env);
     if(create_seq)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -153,7 +157,7 @@
         rm_ns = sandesha2_iom_rm_element_get_namespace_value(
                 (sandesha2_iom_rm_element_t *) create_seq, env);
     }
-    create_seq_res = SANDESHA2_RM_ELEMENTS_GET_CREATE_SEQ_RES(elements, env);
+    create_seq_res = sandesha2_rm_elements_get_create_seq_res(rm_elements, env);
     if(create_seq_res)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -163,7 +167,7 @@
                 (sandesha2_iom_rm_element_t *) create_seq_res, env);
         add_op_if_null(env, msg_ctx);
     }
-    seq = SANDESHA2_RM_ELEMENTS_GET_SEQ(elements, env);
+    seq = sandesha2_rm_elements_get_seq(rm_elements, env);
     if(seq)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -171,7 +175,7 @@
         rm_ns = sandesha2_iom_rm_element_get_namespace_value(
                 (sandesha2_iom_rm_element_t *) seq, env);
     }
-    seq_ack = SANDESHA2_RM_ELEMENTS_GET_SEQ_ACK(elements, env);
+    seq_ack = sandesha2_rm_elements_get_seq_ack(rm_elements, env);
     if(seq_ack)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -181,7 +185,7 @@
                 (sandesha2_iom_rm_element_t *) seq_ack, env);
         add_op_if_null(env, msg_ctx);
     }
-    terminate_seq = SANDESHA2_RM_ELEMENTS_GET_TERMINATE_SEQ(elements, env);
+    terminate_seq = sandesha2_rm_elements_get_terminate_seq(rm_elements, env);
     if(terminate_seq)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -191,7 +195,8 @@
                 (sandesha2_iom_rm_element_t *) terminate_seq, env);
         add_op_if_null(env, msg_ctx);
     }
-    terminate_seq_res = SANDESHA2_RM_ELEMENTS_GET_TERMINATE_SEQ_RES(elements, env);
+    terminate_seq_res = sandesha2_rm_elements_get_terminate_seq_res(rm_elements, 
+        env);
     if(terminate_seq_res)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -200,7 +205,7 @@
         rm_ns = sandesha2_iom_rm_element_get_namespace_value(
                 (sandesha2_iom_rm_element_t *) terminate_seq_res, env);
     }
-    ack_request = SANDESHA2_RM_ELEMENTS_GET_ACK_REQUESTED(elements, env);
+    ack_request = sandesha2_rm_elements_get_ack_requested(rm_elements, env);
     if(ack_request)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -209,7 +214,7 @@
         rm_ns = sandesha2_iom_rm_element_get_namespace_value(
                 (sandesha2_iom_rm_element_t *) ack_request, env);
     }
-    close_seq = SANDESHA2_RM_ELEMENTS_GET_CLOSE_SEQ(elements, env);
+    close_seq = sandesha2_rm_elements_get_close_seq(rm_elements, env);
     if(close_seq)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -218,7 +223,7 @@
         rm_ns = sandesha2_iom_rm_element_get_namespace_value(
                 (sandesha2_iom_rm_element_t *) close_seq, env);
     }
-    close_seq_res = SANDESHA2_RM_ELEMENTS_GET_CLOSE_SEQ_RES(elements, env);
+    close_seq_res = sandesha2_rm_elements_get_close_seq_res(rm_elements, env);
     if(close_seq_res)
     {
         sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
@@ -227,9 +232,23 @@
         rm_ns = sandesha2_iom_rm_element_get_namespace_value(
                 (sandesha2_iom_rm_element_t *) close_seq_res, env);
     }
+    make_conn = sandesha2_rm_elements_get_make_connection(rm_elements, env);
+    if(make_conn)
+    {
+        sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
+                SANDESHA2_MSG_PART_MAKE_CONNECTION, 
+                (sandesha2_iom_rm_part_t *) make_conn);
+    }
+    msg_pending = sandesha2_rm_elements_get_msg_pending(rm_elements, env);
+    if(msg_pending)
+    {
+        sandesha2_msg_ctx_set_msg_part(rm_msg_ctx, env, 
+                SANDESHA2_MSG_PART_MESSAGE_PENDING, 
+                (sandesha2_iom_rm_part_t *) msg_pending);
+    }
     sandesha2_msg_ctx_set_rm_ns_val(rm_msg_ctx, env, rm_ns);
-    addressing_ns_value = SANDESHA2_RM_ELEMENTS_GET_ADDR_NS_VAL(
-            elements, env);
+    addressing_ns_value = sandesha2_rm_elements_get_addr_ns_val(
+            rm_elements, env);
     if(addressing_ns_value)
     {
         sandesha2_msg_ctx_set_addr_ns_val(rm_msg_ctx, env, 
@@ -259,6 +278,7 @@
     sandesha2_ack_requested_t *ack_request = NULL;
     sandesha2_close_seq_t *close_seq = NULL;
     sandesha2_close_seq_res_t *close_seq_res = NULL;
+    sandesha2_make_connection_t *make_conn = NULL;
     int temp_flow = -1;
 
     temp_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
@@ -289,6 +309,8 @@
             rm_msg_ctx, env, SANDESHA2_MSG_PART_CLOSE_SEQ);
     close_seq_res = (sandesha2_close_seq_res_t *) sandesha2_msg_ctx_get_msg_part(
             rm_msg_ctx, env, SANDESHA2_MSG_PART_CLOSE_SEQ_RESPONSE);
+    make_conn = (sandesha2_make_connection_t *) sandesha2_msg_ctx_get_msg_part(
+            rm_msg_ctx, env, SANDESHA2_MSG_PART_MAKE_CONNECTION);
     /* Setting message type */
     if(create_seq)
     {
@@ -358,6 +380,31 @@
                 SANDESHA2_MSG_TYPE_CLOSE_SEQ_RESPONSE);
         idf = sandesha2_close_seq_res_get_identifier(close_seq_res, env);
         seq_id = sandesha2_identifier_get_identifier(idf, env);
+    }
+    else if(make_conn)
+    {
+        sandesha2_identifier_t *idf = NULL;
+        sandesha2_address_t *address = NULL;
+        sandesha2_msg_ctx_set_msg_type(rm_msg_ctx, env, 
+                SANDESHA2_MSG_TYPE_MAKE_CONNECTION_MSG);
+        idf = sandesha2_make_connection_get_identifier(make_conn, env);
+        address = sandesha2_make_connection_get_address(make_conn, env);
+        if(idf)
+            seq_id = sandesha2_identifier_get_identifier(idf, env);
+        else if(address)
+        {
+            /* TODO Get seq_id based on the anonymous address */
+        }
+        else
+        {
+            SANDESHA2_ERROR_SET(env->error, 
+                SANDESHA2_ERROR_INVALID_MAKE_CONNECTION_MSG, AXIS2_FAILURE);
+            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+                " Invalid MakeConnection message. Either Address or Identifier" \
+                " must be present");
+            return AXIS2_FALSE;
+        }
+        
     }
     else
     {

Modified: webservices/sandesha/trunk/c/src/wsrm/rm_elements.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/wsrm/rm_elements.c?view=diff&rev=477139&r1=477138&r2=477139
==============================================================================
--- webservices/sandesha/trunk/c/src/wsrm/rm_elements.c (original)
+++ webservices/sandesha/trunk/c/src/wsrm/rm_elements.c Mon Nov 20 02:43:03 2006
@@ -29,11 +29,9 @@
  * @brief RM Elements struct impl
  *	Sandesha2 RM Elements
  */
-typedef struct sandesha2_rm_elements_impl sandesha2_rm_elements_impl_t;  
   
-struct sandesha2_rm_elements_impl
+struct sandesha2_rm_elements_t
 {
-    sandesha2_rm_elements_t elements;
     sandesha2_seq_t *seq;
     sandesha2_seq_ack_t *seq_ack;
     sandesha2_create_seq_t *create_seq;
@@ -45,260 +43,56 @@
     sandesha2_ack_requested_t *ack_requested;
     axis2_char_t *rm_ns_val;
     axis2_char_t *addr_ns_val;
+    sandesha2_make_connection_t *make_connection;
+    sandesha2_msg_pending_t *msg_pending;
 };
 
-#define SANDESHA2_INTF_TO_IMPL(elements) \
-                        ((sandesha2_rm_elements_impl_t *)(elements))
-
-/***************************** Function headers *******************************/
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_from_soap_envelope
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope,
-            axis2_char_t *action);
-            
-axiom_soap_envelope_t* AXIS2_CALL 
-sandesha2_rm_elements_to_soap_envelope
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope);
-            
-sandesha2_create_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_create_seq 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_create_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_create_seq_t *create_seq);
-    
-sandesha2_create_seq_res_t* AXIS2_CALL 
-sandesha2_rm_elements_get_create_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_create_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_create_seq_res_t *create_seq_res);
-            
-sandesha2_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_seq_t *seq);
-            
-sandesha2_seq_ack_t* AXIS2_CALL 
-sandesha2_rm_elements_get_seq_ack
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_seq_ack
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_seq_ack_t *seq_ack);
-            
-sandesha2_terminate_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_terminate_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_terminate_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_terminate_seq_t *terminate_seq);
-            
-sandesha2_terminate_seq_res_t* AXIS2_CALL 
-sandesha2_rm_elements_get_terminate_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_terminate_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_terminate_seq_res_t *terminate_seq_res);
-            
-sandesha2_ack_requested_t* AXIS2_CALL 
-sandesha2_rm_elements_get_ack_requested
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_ack_requested
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_ack_requested_t *ack_reqested);
-    
-sandesha2_close_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_close_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_close_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_close_seq_t *close_seq);
-    
-sandesha2_close_seq_res_t* AXIS2_CALL 
-sandesha2_rm_elements_get_close_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_close_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_close_seq_res_t *close_seq_res);
-    
-axis2_char_t* AXIS2_CALL 
-sandesha2_rm_elements_get_addr_ns_val
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env);
-
-axis2_char_t* AXIS2_CALL 
-sandesha2_rm_elements_get_rm_ns_val
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope,
-            axis2_char_t *action);
-
-axis2_char_t* AXIS2_CALL 
-sandesha2_rm_elements_get_addr_ns_val_from_env
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope,
-            axis2_char_t *action);
-            
-axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_free(sandesha2_rm_elements_t *mgr, 
-                        const axis2_env_t *env);								
-
-/***************************** End of function headers ************************/
-
 AXIS2_EXTERN sandesha2_rm_elements_t* AXIS2_CALL
-sandesha2_rm_elements_create(const axis2_env_t *env,
-                        axis2_char_t *addr_ns_val)
+sandesha2_rm_elements_create(
+    const axis2_env_t *env,
+    axis2_char_t *addr_ns_val)
 {
-    sandesha2_rm_elements_impl_t *rm_elements_impl = NULL;
+    sandesha2_rm_elements_t *rm_elements = NULL;
     AXIS2_ENV_CHECK(env, NULL);
     
-    rm_elements_impl =  (sandesha2_rm_elements_impl_t *)AXIS2_MALLOC 
-                        (env->allocator, sizeof(sandesha2_rm_elements_impl_t));
-	
-    if(NULL == rm_elements_impl)
+    rm_elements =  (sandesha2_rm_elements_t *)AXIS2_MALLOC 
+        (env->allocator, sizeof(sandesha2_rm_elements_t));
+    if(!rm_elements)
 	{
 		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
 	}
+    rm_elements->seq = NULL;
+    rm_elements->seq_ack = NULL;
+    rm_elements->create_seq = NULL;
+    rm_elements->create_seq_res = NULL;
+    rm_elements->terminate_seq = NULL;
+    rm_elements->terminate_seq_res = NULL;
+    rm_elements->close_seq = NULL;
+    rm_elements->close_seq_res = NULL;
+    rm_elements->ack_requested = NULL;
+    rm_elements->rm_ns_val = NULL;
+    rm_elements->addr_ns_val = NULL;
+    rm_elements->make_connection = NULL;
+    rm_elements->msg_pending = NULL;
     
-    rm_elements_impl->seq = NULL;
-    rm_elements_impl->seq_ack = NULL;
-    rm_elements_impl->create_seq = NULL;
-    rm_elements_impl->create_seq_res = NULL;
-    rm_elements_impl->terminate_seq = NULL;
-    rm_elements_impl->terminate_seq_res = NULL;
-    rm_elements_impl->close_seq = NULL;
-    rm_elements_impl->close_seq_res = NULL;
-    rm_elements_impl->ack_requested = NULL;
-    rm_elements_impl->rm_ns_val = NULL;
-    rm_elements_impl->addr_ns_val = NULL;
-    
-    rm_elements_impl->elements.ops = AXIS2_MALLOC(env->allocator,
-                        sizeof(sandesha2_rm_elements_ops_t));
-    if(NULL == rm_elements_impl->elements.ops)
-	{
-		sandesha2_rm_elements_free((sandesha2_rm_elements_t*)rm_elements_impl, 
-                        env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-	}
-    
-    rm_elements_impl->addr_ns_val = AXIS2_STRDUP(addr_ns_val, env);
-    
+    rm_elements->addr_ns_val = AXIS2_STRDUP(addr_ns_val, env);
     
-    rm_elements_impl->elements.ops->from_soap_envelope = 
-                        sandesha2_rm_elements_from_soap_envelope;
-    rm_elements_impl->elements.ops->to_soap_envelope = 
-                        sandesha2_rm_elements_to_soap_envelope;
-    rm_elements_impl->elements.ops->get_create_seq = 
-                        sandesha2_rm_elements_get_create_seq;
-    rm_elements_impl->elements.ops->set_create_seq = 
-                        sandesha2_rm_elements_set_create_seq;
-    rm_elements_impl->elements.ops->get_create_seq_res = 
-                        sandesha2_rm_elements_get_create_seq_res;
-    rm_elements_impl->elements.ops->set_create_seq_res = 
-                        sandesha2_rm_elements_set_create_seq_res;
-    rm_elements_impl->elements.ops->get_seq = 
-                        sandesha2_rm_elements_get_seq;
-    rm_elements_impl->elements.ops->set_seq = 
-                        sandesha2_rm_elements_set_seq;
-    rm_elements_impl->elements.ops->get_seq_ack = 
-                        sandesha2_rm_elements_get_seq_ack;
-    rm_elements_impl->elements.ops->set_seq_ack = 
-                        sandesha2_rm_elements_set_seq_ack;
-    rm_elements_impl->elements.ops->get_terminate_seq = 
-                        sandesha2_rm_elements_get_terminate_seq;
-    rm_elements_impl->elements.ops->set_terminate_seq = 
-                        sandesha2_rm_elements_set_terminate_seq;
-    rm_elements_impl->elements.ops->get_terminate_seq_res = 
-                        sandesha2_rm_elements_get_terminate_seq_res;
-    rm_elements_impl->elements.ops->set_terminate_seq_res = 
-                        sandesha2_rm_elements_set_terminate_seq_res;
-    rm_elements_impl->elements.ops->get_ack_requested = 
-                        sandesha2_rm_elements_get_ack_requested;
-    rm_elements_impl->elements.ops->set_ack_requested = 
-                        sandesha2_rm_elements_set_ack_requested;
-    rm_elements_impl->elements.ops->get_close_seq = 
-                        sandesha2_rm_elements_get_close_seq;
-    rm_elements_impl->elements.ops->set_close_seq = 
-                        sandesha2_rm_elements_set_close_seq;
-    rm_elements_impl->elements.ops->get_close_seq_res = 
-                        sandesha2_rm_elements_get_close_seq_res;
-    rm_elements_impl->elements.ops->set_close_seq_res = 
-                        sandesha2_rm_elements_set_close_seq_res;
-    rm_elements_impl->elements.ops->get_addr_ns_val = 
-                        sandesha2_rm_elements_get_addr_ns_val;
-    rm_elements_impl->elements.ops->free = sandesha2_rm_elements_free;
-                        
-	return &(rm_elements_impl->elements);
+	return rm_elements;
 }
 
-
 axis2_status_t AXIS2_CALL 
 sandesha2_rm_elements_free(
-    sandesha2_rm_elements_t *elements, 
+    sandesha2_rm_elements_t *rm_elements, 
     const axis2_env_t *env)
 {
-    sandesha2_rm_elements_impl_t *elements_impl = NULL;
-    
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    
-    elements_impl = SANDESHA2_INTF_TO_IMPL(elements);
-    
-    if(NULL != elements_impl->addr_ns_val)
-    {
-        AXIS2_FREE(env->allocator, elements_impl->addr_ns_val);
-        elements_impl->addr_ns_val = NULL;
-    }
-    if(NULL != elements->ops)
+    if(rm_elements->addr_ns_val)
     {
-        AXIS2_FREE(env->allocator, elements->ops);
-        elements->ops = NULL;
+        AXIS2_FREE(env->allocator, rm_elements->addr_ns_val);
+        rm_elements->addr_ns_val = NULL;
     }
-	AXIS2_FREE(env->allocator, SANDESHA2_INTF_TO_IMPL(elements));
+	AXIS2_FREE(env->allocator, rm_elements);
 	return AXIS2_SUCCESS;
 }
 
@@ -310,7 +104,6 @@
     axis2_char_t *action)
 {
     int soap_version = -1;
-    sandesha2_rm_elements_impl_t *elements_impl = NULL;
     axiom_soap_header_t *soap_header = NULL;
     axiom_soap_body_t *soap_body = NULL;
     axiom_node_t *header_node = NULL;
@@ -344,19 +137,18 @@
     AXIS2_PARAM_CHECK(env->error, soap_envelope, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, action, AXIS2_FAILURE);
     
-    elements_impl = SANDESHA2_INTF_TO_IMPL(rm_elements);
     soap_version = AXIOM_SOAP_ENVELOPE_GET_SOAP_VERSION(soap_envelope, env);
     
-    elements_impl->rm_ns_val = sandesha2_rm_elements_get_rm_ns_val(rm_elements,
+    rm_elements->rm_ns_val = sandesha2_rm_elements_get_rm_ns_val(rm_elements,
                         env, soap_envelope, action);
                         
-    if(!elements_impl->rm_ns_val)
+    if(!rm_elements->rm_ns_val)
         return AXIS2_SUCCESS;
         
-    elements_impl->addr_ns_val =  
+    rm_elements->addr_ns_val =  
             sandesha2_rm_elements_get_addr_ns_val_from_env(
                         rm_elements, env, soap_envelope, action);
-    if(!elements_impl->addr_ns_val)
+    if(!rm_elements->addr_ns_val)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Cannot find the"
                         " addressing version");
@@ -370,38 +162,38 @@
     body_node = AXIOM_SOAP_BODY_GET_BASE_NODE(soap_body, env);
     body_element = AXIOM_NODE_GET_DATA_ELEMENT(body_node, env);
                         
-    rm_ns_val = elements_impl->rm_ns_val;
-    addr_ns_val = elements_impl->addr_ns_val;
+    rm_ns_val = rm_elements->rm_ns_val;
+    addr_ns_val = rm_elements->addr_ns_val;
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_SEQ, rm_ns_val, NULL);
     seq_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(header_element, env,
                         qname, header_node, &seq_node);
     if(seq_node)
     {
-        elements_impl->seq = sandesha2_seq_create(env, rm_ns_val);
+        rm_elements->seq = sandesha2_seq_create(env, rm_ns_val);
         sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
-                elements_impl->seq, env, header_node);
+                rm_elements->seq, env, header_node);
     }
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_SEQ_ACK, rm_ns_val, 
                         NULL);
     seq_ack_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(header_element,
                         env, qname, header_node, &seq_ack_node);
-    if(NULL != seq_ack_element)
+    if(seq_ack_element)
     {
-        elements_impl->seq_ack = sandesha2_seq_ack_create(env, rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->seq_ack, env,
-                        header_node);
+        rm_elements->seq_ack = sandesha2_seq_ack_create(env, rm_ns_val);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->seq_ack, env, header_node);
     }
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_CREATE_SEQ, rm_ns_val,
                         NULL);
     create_seq_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(body_element,
                         env, qname, body_node, &create_seq_node);
-    if(NULL != create_seq_node)
+    if(create_seq_node)
     {
-        elements_impl->create_seq = sandesha2_create_seq_create(env,
+        rm_elements->create_seq = sandesha2_create_seq_create(env,
                         addr_ns_val, rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->create_seq, env,
-                        body_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->create_seq, env, body_node);
     }
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_CREATE_SEQ_RESPONSE, 
@@ -409,12 +201,12 @@
     create_seq_res_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
                         body_element, env, qname, body_node, 
                         &create_seq_res_node);
-    if(NULL != create_seq_res_node)
+    if(create_seq_res_node)
     {
-        elements_impl->create_seq_res = sandesha2_create_seq_res_create(env, 
+        rm_elements->create_seq_res = sandesha2_create_seq_res_create(env, 
                         rm_ns_val, addr_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->create_seq_res, env,
-                        body_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->create_seq_res, env, body_node);
     }
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_TERMINATE_SEQ, 
@@ -422,12 +214,12 @@
     terminate_seq_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
                         body_element, env, qname, body_node, 
                         &terminate_seq_node);
-    if(NULL != terminate_seq_node)
+    if(terminate_seq_node)
     {
-        elements_impl->terminate_seq = sandesha2_terminate_seq_create(env, 
+        rm_elements->terminate_seq = sandesha2_terminate_seq_create(env, 
                         rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->terminate_seq, env,
-                        body_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->terminate_seq, env, body_node);
     }
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_TERMINATE_SEQ_RESPONSE, 
@@ -435,12 +227,12 @@
     terminate_seq_res_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
                         body_element, env, qname, body_node, 
                         &terminate_seq_res_node);
-    if(NULL != terminate_seq_res_node)
+    if(terminate_seq_res_node)
     {
-        elements_impl->terminate_seq_res = sandesha2_terminate_seq_res_create(
+        rm_elements->terminate_seq_res = sandesha2_terminate_seq_res_create(
                         env, rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->terminate_seq_res, 
-                        env, body_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->terminate_seq_res, env, body_node);
     }
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_CLOSE_SEQ, 
@@ -448,12 +240,12 @@
     close_seq_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
                         body_element, env, qname, body_node, 
                         &close_seq_node);
-    if(NULL != close_seq_node)
+    if(close_seq_node)
     {
-        elements_impl->close_seq = sandesha2_close_seq_create(env, 
+        rm_elements->close_seq = sandesha2_close_seq_create(env, 
                         rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->close_seq, env,
-                        body_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->close_seq, env, body_node);
     }
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_CLOSE_SEQ_RESPONSE, 
@@ -461,12 +253,12 @@
     close_seq_res_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
                         body_element, env, qname, body_node, 
                         &close_seq_res_node);
-    if(NULL != close_seq_res_node)
+    if(close_seq_res_node)
     {
-        elements_impl->close_seq_res = sandesha2_close_seq_res_create(env, 
+        rm_elements->close_seq_res = sandesha2_close_seq_res_create(env, 
                         rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->close_seq_res, env,
-                        body_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->close_seq_res, env, body_node);
     }
     
     qname = axis2_qname_create(env, SANDESHA2_WSRM_COMMON_ACK_REQUESTED, 
@@ -474,23 +266,22 @@
     ack_requested_element = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
                         header_element, env, qname, header_node, 
                         &ack_requested_node);
-    if(NULL != ack_requested_node)
+    if(ack_requested_node)
     {
-        elements_impl->ack_requested = sandesha2_ack_requested_create(env, 
+        rm_elements->ack_requested = sandesha2_ack_requested_create(env, 
                         rm_ns_val);
-        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)elements_impl->ack_requested, env,
-                        header_node);
+        sandesha2_iom_rm_element_from_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->ack_requested, env, header_node);
     }
     return AXIS2_SUCCESS;
 }
             
 axiom_soap_envelope_t* AXIS2_CALL 
-sandesha2_rm_elements_to_soap_envelope
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope)
+sandesha2_rm_elements_to_soap_envelope(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope)
 {
-    sandesha2_rm_elements_impl_t *rm_elements_impl = NULL;
     axiom_soap_header_t *soap_header = NULL;
     axiom_soap_body_t *soap_body = NULL;
     axiom_node_t *body_node = NULL;
@@ -499,268 +290,287 @@
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK(env->error, soap_envelope, NULL);
     
-    rm_elements_impl = SANDESHA2_INTF_TO_IMPL(rm_elements);
     soap_header = AXIOM_SOAP_ENVELOPE_GET_HEADER(soap_envelope, env);
     soap_body = AXIOM_SOAP_ENVELOPE_GET_BODY(soap_envelope, env);
     body_node = AXIOM_SOAP_BODY_GET_BASE_NODE(soap_body, env);
     
-    if(NULL != rm_elements_impl->seq)
+    if(rm_elements->seq)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->seq, env, 
-                        soap_header);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->seq, env, soap_header);
     }
-    if(NULL != rm_elements_impl->seq_ack)
+    if(rm_elements->seq_ack)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->seq_ack, env, 
-                        soap_header);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->seq_ack, env, soap_header);
     }
-    if(NULL != rm_elements_impl->create_seq)
+    if(rm_elements->create_seq)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->create_seq, env, 
-                        body_node);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->create_seq, env, body_node);
     }
-    if(NULL != rm_elements_impl->create_seq_res)
+    if(rm_elements->create_seq_res)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->create_seq_res, 
-                        env, body_node);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->create_seq_res, env, body_node);
     }
-    if(NULL != rm_elements_impl->terminate_seq)
+    if(rm_elements->terminate_seq)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->terminate_seq, 
-                        env, body_node);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->terminate_seq, env, body_node);
     }
-    if(NULL != rm_elements_impl->terminate_seq_res)
+    if(rm_elements->terminate_seq_res)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->terminate_seq_res, 
-                        env, body_node);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->terminate_seq_res, env, body_node);
     }
-    if(NULL != rm_elements_impl->close_seq)
+    if(rm_elements->close_seq)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->close_seq, 
-                        env, body_node);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->close_seq, env, body_node);
     }
-    if(NULL != rm_elements_impl->close_seq_res)
+    if(rm_elements->close_seq_res)
     {
-        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)rm_elements_impl->close_seq_res, 
-                        env, body_node);
+        sandesha2_iom_rm_element_to_om_node((sandesha2_iom_rm_element_t *)
+            rm_elements->close_seq_res, env, body_node);
     }
     return soap_envelope;
 }
             
 sandesha2_create_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_create_seq 
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_create_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->create_seq;
+    return rm_elements->create_seq;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_create_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_create_seq_t *create_seq)
+sandesha2_rm_elements_set_create_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_create_seq_t *create_seq)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, create_seq, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->create_seq = create_seq;
+    rm_elements->create_seq = create_seq;
     return AXIS2_SUCCESS;
 }
     
 sandesha2_create_seq_res_t* AXIS2_CALL 
-sandesha2_rm_elements_get_create_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_create_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->create_seq_res;
+    return rm_elements->create_seq_res;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_create_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_create_seq_res_t *create_seq_res)
+sandesha2_rm_elements_set_create_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_create_seq_res_t *create_seq_res)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, create_seq_res, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->create_seq_res = create_seq_res;
+    rm_elements->create_seq_res = create_seq_res;
     return AXIS2_SUCCESS;
 }
             
 sandesha2_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->seq;
+    return rm_elements->seq;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_seq_t *seq)
+sandesha2_rm_elements_set_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_seq_t *seq)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, seq, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->seq = seq;
+    rm_elements->seq = seq;
     return AXIS2_SUCCESS;
 }
             
 sandesha2_seq_ack_t* AXIS2_CALL 
-sandesha2_rm_elements_get_seq_ack
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_seq_ack(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->seq_ack;
+    return rm_elements->seq_ack;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_seq_ack
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_seq_ack_t *seq_ack)
+sandesha2_rm_elements_set_seq_ack(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_seq_ack_t *seq_ack)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, seq_ack, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->seq_ack = seq_ack;
+    rm_elements->seq_ack = seq_ack;
     return AXIS2_SUCCESS;
 }
             
 sandesha2_terminate_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_terminate_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_terminate_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->terminate_seq;
+    return rm_elements->terminate_seq;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_terminate_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_terminate_seq_t *terminate_seq)
+sandesha2_rm_elements_set_terminate_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_terminate_seq_t *terminate_seq)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, terminate_seq, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->terminate_seq = terminate_seq;
+    rm_elements->terminate_seq = terminate_seq;
     return AXIS2_SUCCESS;
 }
             
 sandesha2_terminate_seq_res_t* AXIS2_CALL 
-sandesha2_rm_elements_get_terminate_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_terminate_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->terminate_seq_res;
+    return rm_elements->terminate_seq_res;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_terminate_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_terminate_seq_res_t *terminate_seq_res)
+sandesha2_rm_elements_set_terminate_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_terminate_seq_res_t *terminate_seq_res)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, terminate_seq_res, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->terminate_seq_res = terminate_seq_res;
+    rm_elements->terminate_seq_res = terminate_seq_res;
     return AXIS2_SUCCESS;
 }
             
 sandesha2_ack_requested_t* AXIS2_CALL 
-sandesha2_rm_elements_get_ack_requested
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_ack_requested(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->ack_requested;
+    return rm_elements->ack_requested;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_ack_requested
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_ack_requested_t *ack_requested)
+sandesha2_rm_elements_set_ack_requested(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_ack_requested_t *ack_requested)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, ack_requested, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->ack_requested = ack_requested;
+    rm_elements->ack_requested = ack_requested;
     return AXIS2_SUCCESS;
 }
     
 sandesha2_close_seq_t* AXIS2_CALL 
-sandesha2_rm_elements_get_close_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_close_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->close_seq;
+    return rm_elements->close_seq;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_close_seq
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_close_seq_t *close_seq)
+sandesha2_rm_elements_set_close_seq(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_close_seq_t *close_seq)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, close_seq, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->close_seq = close_seq;
+    rm_elements->close_seq = close_seq;
     return AXIS2_SUCCESS;
 }
     
 sandesha2_close_seq_res_t* AXIS2_CALL 
-sandesha2_rm_elements_get_close_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_close_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->close_seq_res;
+    return rm_elements->close_seq_res;
 }
             
 axis2_status_t AXIS2_CALL 
-sandesha2_rm_elements_set_close_seq_res
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            sandesha2_close_seq_res_t *close_seq_res)
+sandesha2_rm_elements_set_close_seq_res(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    sandesha2_close_seq_res_t *close_seq_res)
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, close_seq_res, AXIS2_FAILURE);
-    SANDESHA2_INTF_TO_IMPL(rm_elements)->close_seq_res = close_seq_res;
+    rm_elements->close_seq_res = close_seq_res;
     return AXIS2_SUCCESS;
 }
     
 axis2_char_t* AXIS2_CALL 
-sandesha2_rm_elements_get_addr_ns_val
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env)
+sandesha2_rm_elements_get_addr_ns_val(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    
+    return rm_elements->addr_ns_val;
+}
+
+sandesha2_make_connection_t* AXIS2_CALL 
+sandesha2_rm_elements_get_make_connection(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    
+    return rm_elements->make_connection;
+}
+
+sandesha2_msg_pending_t* AXIS2_CALL 
+sandesha2_rm_elements_get_msg_pending(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env)
 {
     AXIS2_ENV_CHECK(env, NULL);
     
-    return SANDESHA2_INTF_TO_IMPL(rm_elements)->addr_ns_val;
+    return rm_elements->msg_pending;
 }
 
 axis2_char_t* AXIS2_CALL 
-sandesha2_rm_elements_get_rm_ns_val
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope,
-            axis2_char_t *action)
+sandesha2_rm_elements_get_rm_ns_val(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope,
+    axis2_char_t *action)
 {
     axiom_soap_header_t *soap_header = NULL;
     
@@ -769,21 +579,21 @@
     AXIS2_PARAM_CHECK(env->error, action, AXIS2_FAILURE);
     
     soap_header = AXIOM_SOAP_ENVELOPE_GET_HEADER(soap_envelope, env);
-    if(NULL != soap_header)
+    if(soap_header)
     {
         axis2_array_list_t *headers = NULL;
         
         headers = AXIOM_SOAP_HEADER_GET_HEADER_BLOCKS_WITH_NAMESPACE_URI(
                         soap_header, env, SANDESHA2_SPEC_2005_02_NS_URI);
-        if(NULL != headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
+        if(headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
             return SANDESHA2_SPEC_2005_02_NS_URI;
         headers = AXIOM_SOAP_HEADER_GET_HEADER_BLOCKS_WITH_NAMESPACE_URI(
                         soap_header, env, SANDESHA2_SPEC_2006_08_NS_URI);
                 
-        if(NULL != headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
+        if(headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
             return SANDESHA2_SPEC_2006_08_NS_URI;
     }
-    if(NULL == action)
+    if(!action)
         return NULL;
     
     if(0 == AXIS2_STRCMP(action, SANDESHA2_SPEC_2005_02_ACTION_CREATE_SEQ))
@@ -815,11 +625,11 @@
 }
 
 axis2_char_t* AXIS2_CALL 
-sandesha2_rm_elements_get_addr_ns_val_from_env
-            (sandesha2_rm_elements_t *rm_elements,
-            const axis2_env_t *env,
-            axiom_soap_envelope_t *soap_envelope,
-            axis2_char_t *action)
+sandesha2_rm_elements_get_addr_ns_val_from_env(
+    sandesha2_rm_elements_t *rm_elements,
+    const axis2_env_t *env,
+    axiom_soap_envelope_t *soap_envelope,
+    axis2_char_t *action)
 {
     axiom_soap_header_t *soap_header = NULL;
     
@@ -828,22 +638,21 @@
     AXIS2_PARAM_CHECK(env->error, action, AXIS2_FAILURE);
     
     soap_header = AXIOM_SOAP_ENVELOPE_GET_HEADER(soap_envelope, env);
-    if(NULL != soap_header)
+    if(soap_header)
     {
         axis2_array_list_t *headers = NULL;
         
         headers = AXIOM_SOAP_HEADER_GET_HEADER_BLOCKS_WITH_NAMESPACE_URI(
                         soap_header, env, AXIS2_WSA_NAMESPACE);
-        if(NULL != headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
+        if(headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
             return AXIS2_WSA_NAMESPACE;
             
         headers = AXIOM_SOAP_HEADER_GET_HEADER_BLOCKS_WITH_NAMESPACE_URI(
                         soap_header, env, AXIS2_WSA_NAMESPACE_SUBMISSION);
                 
-        if(NULL != headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
+        if(headers && 0 < AXIS2_ARRAY_LIST_SIZE(headers, env))
             return AXIS2_WSA_NAMESPACE_SUBMISSION;
     }
     return NULL;
-    
-    
 }
+



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