You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by da...@apache.org on 2008/08/26 16:06:40 UTC

svn commit: r689084 - in /webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008: include/sandesha2_endpoint.h src/wsrm/endpoint.c

Author: damitha
Date: Tue Aug 26 07:06:39 2008
New Revision: 689084

URL: http://svn.apache.org/viewvc?rev=689084&view=rev
Log:
Adding new files

Added:
    webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_endpoint.h
    webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c

Added: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_endpoint.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_endpoint.h?rev=689084&view=auto
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_endpoint.h (added)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/include/sandesha2_endpoint.h Tue Aug 26 07:06:39 2008
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef SANDESHA2_ENDPOINT_H
+#define SANDESHA2_ENDPOINT_H
+
+/**
+  * @file sandesha2_endpoint.h
+  * @brief 
+  */
+
+#include <axutil_utils_defines.h>
+#include <axutil_env.h>
+#include <axiom_soap_envelope.h>
+#include <sandesha2_address.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/** @defgroup sandesha2_endpoint
+ * @ingroup sandesha2_wsrm
+ * @{
+ */
+typedef struct sandesha2_endpoint_t sandesha2_endpoint_t;
+
+/**
+ * @brief sandesha2_endpoint
+ *    sandesha2_endpoint
+ */
+
+AXIS2_EXTERN sandesha2_endpoint_t * AXIS2_CALL
+sandesha2_endpoint_create(
+    const axutil_env_t *env, 
+    sandesha2_address_t *address,
+    axis2_char_t *rm_ns_value, 
+    axis2_char_t *addr_ns_value);
+
+axis2_status_t AXIS2_CALL 
+sandesha2_endpoint_free(
+    sandesha2_endpoint_t *endpoint, 
+    const axutil_env_t *env);								
+
+sandesha2_address_t * AXIS2_CALL
+sandesha2_endpoint_get_address(
+    sandesha2_endpoint_t *endpoint,
+    const axutil_env_t *env);
+                    	
+axis2_status_t AXIS2_CALL 
+sandesha2_endpoint_set_address (
+    sandesha2_endpoint_t *endpoint, 
+    const axutil_env_t *env, 
+    sandesha2_address_t *address);								
+ 
+axis2_char_t* AXIS2_CALL 
+sandesha2_endpoint_get_namespace_value(
+    sandesha2_endpoint_t *endpoint,
+	const axutil_env_t *env);
+
+void* AXIS2_CALL 
+sandesha2_endpoint_from_om_node(
+    sandesha2_endpoint_t *endpoint,
+    const axutil_env_t *env, 
+    axiom_node_t *om_node);
+    
+axiom_node_t* AXIS2_CALL 
+sandesha2_endpoint_to_om_node(
+    sandesha2_endpoint_t *endpoint,
+   	const axutil_env_t *env, 
+    void *om_node);
+ 
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* SANDESHA2_ENDPOINT_H */
+

Added: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c?rev=689084&view=auto
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c (added)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/wsrm/endpoint.c Tue Aug 26 07:06:39 2008
@@ -0,0 +1,234 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include <sandesha2_endpoint.h>
+#include <sandesha2_constants.h>
+#include <sandesha2_error.h>
+/** 
+ * @brief Endpoint struct impl
+ *	Sandesha2 Endpoint
+ */
+  
+struct sandesha2_endpoint_t
+{
+	sandesha2_address_t *address;
+	axis2_char_t *addr_ns_val;
+	axis2_char_t *rm_ns_val;
+};
+
+                   	
+static axis2_bool_t AXIS2_CALL 
+sandesha2_endpoint_is_namespace_supported(
+   	const axutil_env_t *env, 
+    axis2_char_t *namespace);
+
+AXIS2_EXTERN sandesha2_endpoint_t* AXIS2_CALL
+sandesha2_endpoint_create(
+    const axutil_env_t *env, 
+    sandesha2_address_t *address,
+	axis2_char_t *rm_ns_val, 
+    axis2_char_t *addr_ns_val)
+{
+    sandesha2_endpoint_t *endpoint = NULL;
+    AXIS2_PARAM_CHECK(env->error, rm_ns_val, NULL);
+    AXIS2_PARAM_CHECK(env->error, addr_ns_val, NULL);
+    
+    if(AXIS2_FALSE == sandesha2_endpoint_is_namespace_supported(env, rm_ns_val))
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_UNSUPPORTED_NS, 
+            AXIS2_FAILURE);
+        return NULL;
+    }    
+    endpoint =  (sandesha2_endpoint_t *)AXIS2_MALLOC 
+        (env->allocator, sizeof(sandesha2_endpoint_t));
+	
+    if(NULL == endpoint)
+	{
+		AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+	}
+    endpoint->rm_ns_val = (axis2_char_t *)axutil_strdup(env, rm_ns_val);
+    endpoint->addr_ns_val = (axis2_char_t *)axutil_strdup(env, addr_ns_val);
+    endpoint->address = address;
+    
+	return endpoint;
+}
+
+
+axis2_status_t AXIS2_CALL 
+sandesha2_endpoint_free (
+    sandesha2_endpoint_t *endpoint, 
+    const axutil_env_t *env)
+{
+    if(endpoint->addr_ns_val)
+    {
+        AXIS2_FREE(env->allocator, endpoint->addr_ns_val);
+        endpoint->addr_ns_val = NULL;
+    }
+    if(endpoint->rm_ns_val)
+    {
+        AXIS2_FREE(env->allocator, endpoint->rm_ns_val);
+        endpoint->rm_ns_val = NULL;
+    }
+    if(endpoint->address)
+    {
+        sandesha2_address_free(endpoint->address, env);
+        endpoint->address = NULL;
+    }
+    
+	AXIS2_FREE(env->allocator, endpoint);
+	return AXIS2_SUCCESS;
+}
+
+axis2_char_t* AXIS2_CALL 
+sandesha2_endpoint_get_namespace_value(
+    sandesha2_endpoint_t *endpoint,
+	const axutil_env_t *env)
+{
+	return endpoint->rm_ns_val;
+}
+
+
+void* AXIS2_CALL 
+sandesha2_endpoint_from_om_node(
+    sandesha2_endpoint_t *endpoint,
+   	const axutil_env_t *env, 
+    axiom_node_t *om_node)
+{
+    axiom_element_t *om_element = NULL; 
+    axiom_element_t *endpoint_part = NULL; 
+    axiom_node_t *endpoint_node = NULL;
+    axutil_qname_t *endpoint_qname = NULL;
+    
+    AXIS2_PARAM_CHECK(env->error, om_node, NULL);
+     
+    om_element = axiom_node_get_data_element(om_node, env);
+    if(NULL == om_element)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_OM_ELEMENT,
+            AXIS2_FAILURE);
+        return NULL;
+    }
+    endpoint_qname = axutil_qname_create(env, SANDESHA2_WSRM_COMMON_ENDPOINT,
+        endpoint->rm_ns_val, NULL);
+    if(NULL == endpoint_qname)
+    {
+        return NULL;
+    }
+    endpoint_part = axiom_element_get_first_child_with_qname(om_element, env,
+        endpoint_qname, om_node, &endpoint_node);
+    if(endpoint_qname)
+        axutil_qname_free(endpoint_qname, env);
+    if(NULL == endpoint_part)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_OM_ELEMENT,
+            AXIS2_FAILURE);
+        return NULL;
+    }
+
+    if(endpoint->address)
+    {
+        sandesha2_address_free(endpoint->address, env);
+        endpoint->address = NULL;
+    }
+
+    endpoint->address = sandesha2_address_create(env, endpoint->addr_ns_val, NULL);
+    if(NULL == endpoint->address)
+    {
+        return NULL;
+    }
+    if(!sandesha2_address_from_om_node(endpoint->address, env, endpoint_node))
+    {
+        return NULL;
+    }
+    return endpoint; 
+}
+
+
+axiom_node_t* AXIS2_CALL 
+sandesha2_endpoint_to_om_node(
+    sandesha2_endpoint_t *endpoint,
+   	const axutil_env_t *env, void *om_node)
+{
+    axiom_namespace_t *rm_ns = NULL;
+    axiom_element_t *at_element = NULL;
+    axiom_node_t *at_node = NULL;
+    
+    AXIS2_PARAM_CHECK(env->error, om_node, NULL);
+    
+    if(!endpoint->address)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_TO_OM_NULL_ELEMENT, AXIS2_FAILURE);
+        return NULL;
+    }
+    rm_ns = axiom_namespace_create(env, endpoint->rm_ns_val, SANDESHA2_WSRM_COMMON_NS_PREFIX_RM);
+    if(!rm_ns)
+    {
+        return NULL;
+    }
+
+    at_element = axiom_element_create(env, NULL, SANDESHA2_WSRM_COMMON_ENDPOINT, rm_ns, &at_node);
+    if(!at_element)
+    {
+        return NULL;
+    }
+    sandesha2_address_to_om_node(endpoint->address, env, at_node);
+    axiom_node_add_child((axiom_node_t*)om_node, env, at_node);
+    return (axiom_node_t*)om_node;
+}
+
+sandesha2_address_t * AXIS2_CALL
+sandesha2_endpoint_get_address(
+    sandesha2_endpoint_t *endpoint,
+    const axutil_env_t *env)
+{
+	return endpoint->address;
+}
+                    	
+axis2_status_t AXIS2_CALL
+sandesha2_endpoint_set_address (
+    sandesha2_endpoint_t *endpoint, 
+	const axutil_env_t *env, 
+    sandesha2_address_t *address) 
+{
+    if(endpoint->address)
+    {
+        sandesha2_address_free(endpoint->address, env);
+        endpoint->address = NULL;
+    }
+
+	endpoint->address = address;
+
+    return AXIS2_SUCCESS;
+}
+    
+static axis2_bool_t AXIS2_CALL 
+sandesha2_endpoint_is_namespace_supported(
+   	const axutil_env_t *env, 
+    axis2_char_t *namespace)
+{
+    if(0 == axutil_strcmp(namespace, SANDESHA2_SPEC_2005_02_NS_URI))
+    {
+        return AXIS2_TRUE;
+    }
+    if(0 == axutil_strcmp(namespace, SANDESHA2_SPEC_2007_02_NS_URI))
+    {
+        return AXIS2_TRUE;
+    }
+    return AXIS2_FALSE;
+}
+
+



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