You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2005/11/16 05:01:05 UTC

svn commit: r344871 - in /webservices/axis2/trunk/c: include/axis2_msg_ctx.h include/axis2_relates_to.h modules/core/addr/ modules/core/addr/src/ modules/core/addr/src/relates_to.c

Author: samisa
Date: Tue Nov 15 20:00:55 2005
New Revision: 344871

URL: http://svn.apache.org/viewcvs?rev=344871&view=rev
Log:
Added relates_to and also updated message context

Added:
    webservices/axis2/trunk/c/include/axis2_relates_to.h
    webservices/axis2/trunk/c/modules/core/addr/
    webservices/axis2/trunk/c/modules/core/addr/src/
    webservices/axis2/trunk/c/modules/core/addr/src/relates_to.c
Modified:
    webservices/axis2/trunk/c/include/axis2_msg_ctx.h

Modified: webservices/axis2/trunk/c/include/axis2_msg_ctx.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_msg_ctx.h?rev=344871&r1=344870&r2=344871&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_msg_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_msg_ctx.h Tue Nov 15 20:00:55 2005
@@ -60,7 +60,7 @@
     */    
     axis2_bool_t (AXIS2_CALL *is_paused)(axis2_msg_ctx_t *msg_ctx,
                                          axis2_env_t **env); 
-    /* TODO change void* to real return type */
+    /** TODO change void* to real return type */
     void* (AXIS2_CALL *get_relates_to)(axis2_msg_ctx_t *msg_ctx,
                                          axis2_env_t **env); 
 };

Added: webservices/axis2/trunk/c/include/axis2_relates_to.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_relates_to.h?rev=344871&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_relates_to.h (added)
+++ webservices/axis2/trunk/c/include/axis2_relates_to.h Tue Nov 15 20:00:55 2005
@@ -0,0 +1,117 @@
+/*
+ * 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 AXIS2_RELATES_TO_H
+#define AXIS2_RELATES_TO_H
+
+/**
+ * @file axis2_relates_to.h
+ * @brief Axis2 Dispatcher interface
+ */
+
+#include <axis2_defines.h>
+#include <axis2_qname.h>
+#include <axis2_handler.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+    struct axis2_relates_to;
+    struct axis2_relates_to_ops;
+    
+/**
+ * @defgroup axis2_relates_to Dispatcher
+ * @ingroup axis2_engine
+ * @{
+ */
+
+/**
+ *   \brief Dispatcher operations struct
+ */
+ AXIS2_DECLARE_DATA typedef struct axis2_relates_to_ops
+    { 
+        /**
+         * Method get_value
+         *
+         * @return
+         */
+        axis2_char_t* (AXIS2_CALL *get_value)(struct axis_relates_to *relates_to, axis2_env_t **env);
+
+        /**
+         * Method set_value
+         *
+         * @param value
+         */
+        axis2_status_t (AXIS2_CALL *set_value)(struct axis_relates_to *relates_to, axis2_env_t **env, 
+                                 axis2_char_t * value);
+
+        /**
+         * Method get_relationship_type
+         *
+         * @return
+         */
+        axis2_char_t* (AXIS2_CALL *get_relationship_type)(struct axis_relates_to *relates_to, axis2_env_t **env);
+
+        /**
+         * Method set_relationship_type
+         *
+         * @param relationship_type
+         */
+        axis2_status_t (AXIS2_CALL *set_relationship_type)(struct axis_relates_to *relates_to, axis2_env_t **env, 
+                                             axis2_char_t *relationship_type);
+        
+       /**
+        * frees relates_to struct
+        */
+        
+        axis2_status_t (AXIS2_CALL *free) (struct axis2_relates_to *relates_to, 
+                                               axis2_env_t **env);
+        
+    } axis2_relates_to_ops_t;
+	
+   /** 
+    * \brief Dispatcher struct
+    */
+    typedef struct axis2_relates_to
+    {
+        /** Dispatcher related operations */
+        axis2_relates_to_ops_t *ops;
+    } axis2_relates_to_t;
+
+
+/**
+ * creates relates_to struct
+ *
+ * @param value
+ * @param relationship_type
+ */
+AXIS2_DECLARE(axis2_relates_to_t*) AXIS2_CALL axis2_relates_to_create(axis2_env_t **env, axis2_char_t *value, axis2_char_t *relationship_type);
+    
+#define AXIS2_RELATES_TO_GET_VALUE(relates_to, env) ((relates_to)->ops->get_value(relates_to, env))
+#define AXIS2_RELATES_TO_SET_VALUE(relates_to, env, vlaue) ((relates_to)->ops->set_value(relates_to, env, vlaue))
+#define AXIS2_RELATES_TO_GET_RELATIONSHIP_TYPE(relates_to, env) ((relates_to)->ops->get_relationship_type(relates_to, env))
+#define AXIS2_RELATES_TO_SET_RELATIONSHIP_TYPE(relates_to, env, relationship_type) ((relates_to)->ops->set_relationship_type(relates_to, env, relationship_type))
+#define AXIS2_RELATES_TO_FREE(relates_to, env) ((relates_to)->ops->free(relates_to, env))
+    
+/** @} */
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif    /* AXIS2_RELATES_TO_H */

Added: webservices/axis2/trunk/c/modules/core/addr/src/relates_to.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/addr/src/relates_to.c?rev=344871&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/addr/src/relates_to.c (added)
+++ webservices/axis2/trunk/c/modules/core/addr/src/relates_to.c Tue Nov 15 20:00:55 2005
@@ -0,0 +1,181 @@
+/*
+ * 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.
+ */
+ 
+ /** <wsa:RelatesTo RelationshipType="..."?>xs:anyURI</wsa:RelatesTo> */
+typedef struct axis2_relates_to_impl
+{
+    axis2_relates_to_t relates_to;    
+    /** value */
+    axis2_char_t *value;
+    /** relationship type */
+    axis2_char_t *relationship_type;
+} axis2_relates_to_impl_t;
+
+/** Interface to implementation conversion macro */
+#define AXIS2_INTF_TO_IMPL(replace_to) ((axis2_phase_impl_t *)replace_to)
+
+
+axis2_relates_to_t* AXIS2_CALL axis2_relates_to_create(axis2_env_t **env, axis2_char_t *value, axis2_char_t *relationship_type) 
+{
+    axis2_relates_to_impl_t *relates_to_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    
+    relates_to_impl = AXIS2_MALLOC( (*env)->allocator, sizeof(axis2_relates_to_impl_t) );
+    if (!relates_to_impl)
+    { 
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;        
+    }
+
+    relates_to_impl->value = NULL;
+    relates_to_impl->relationship_type = NULL;
+    
+    if (value)
+    {
+        relates_to_impl->value = AXIS2_STRDUP(value, env);
+        if (!(relates_to_impl->value))
+        {
+            AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+            axis2_relates_to_free(&(relates_to_impl->relates_to), env);
+            return NULL;        
+        }
+    }
+    
+    if (relationship_type)
+    {
+        relates_to_impl->relationship_type = AXIS2_STRDUP(relationship_type, env);
+        if (!(relates_to_impl->relationship_type))
+        {
+            AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+            axis2_relates_to_free(&(relates_to_impl->relates_to), env);
+            return NULL;        
+        }
+    }
+
+    /* initialize operations */
+    relates_to_impl->relates_to.ops = NULL;
+    relates_to_impl->relates_to.ops  = AXIS2_MALLOC( (*env)->allocator, sizeof(axis2_relates_to_ops_t) );
+    if (!relates_to_impl->relates_to.ops)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        axis2_relates_to_free(&(relates_to_impl->relates_to), env);
+        return NULL;        
+    }
+
+    relates_to_impl->relates_to.ops->free = axis2_relates_to_free;
+
+    return &(relates_to_impl->relates_to);
+}
+
+axis2_char_t* AXIS2_CALL axis2_relates_to_get_value(struct axis_relates_to *relates_to, axis2_env_t **env) 
+{
+    AXIS2_FUNC_PARAM_CHECK(relates_to, env,NULL);
+    return AXIS2_INTF_TO_IMPL(relates_to)->value;
+}
+
+axis2_status_t AXIS2_CALL axis2_relates_to_set_value(struct axis_relates_to *relates_to, axis2_env_t **env, axis2_char_t * value) 
+{
+    axis2_relates_to_impl_t *relates_to_impl = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(qname, env,AXIS2_FAILURE);
+    
+    relates_to_impl = AXIS2_INTF_TO_IMPL(relates_to);
+    
+    if (relates_to_impl->value)
+    {
+        AXIS2_FREE((*env)->allocator, relates_to_impl->value);
+        relates_to_impl->value = NULL;
+    }
+
+    if (value)
+    {
+        relates_to_impl->value = (axis2_char_t*)AXIS2_STRDUP(value, env);
+        if (!(relates_to_impl->value))
+        {
+            AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+            return AXIS2_FAILURE;
+        }
+    }
+    
+    return AXIS2_SUCCESS;
+}
+
+axis2_char_t* AXIS2_CALL axis2_relates_to_get_relationship_type(struct axis_relates_to *relates_to, axis2_env_t **env) 
+{
+    AXIS2_FUNC_PARAM_CHECK(relates_to, env,NULL);
+    return AXIS2_INTF_TO_IMPL(relates_to)->relationship_type;
+}
+
+axis2_status_t AXIS2_CALL axis2_relates_to_set_relationship_type(struct axis_relates_to *relates_to, axis2_env_t **env, axis2_char_t *relationship_type) 
+{
+    axis2_relates_to_impl_t *relates_to_impl = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(qname, env,AXIS2_FAILURE);
+    
+    relates_to_impl = AXIS2_INTF_TO_IMPL(relates_to);
+    
+    if (relates_to_impl->relationship_type)
+    {
+        AXIS2_FREE((*env)->allocator, relates_to_impl->relationship_type);
+        relates_to_impl->relationship_type = NULL;
+    }
+
+    if (relationship_type)
+    {
+        relates_to_impl->relationship_type = (axis2_char_t*)AXIS2_STRDUP(relationship_type, env);
+        if (!(relates_to_impl->relationship_type))
+        {
+            AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+            return AXIS2_FAILURE;
+        }
+    }
+    
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL axis2_relates_to_free (struct axis2_relates_to *relates_to, 
+                                               axis2_env_t **env)
+{
+    axis2_relates_to_impl_t *relates_to_impl = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(relates_to, env, AXIS2_FAILURE);
+    
+    relates_to_impl = AXIS2_INTF_TO_IMPL(relates_to);
+    
+    if (relates_to_impl->relates_to.ops)
+    {
+        AXIS2_FREE((*env)->allocator, relates_to_impl->relates_to.ops);
+        relates_to_impl->relates_to.ops = NULL;
+    }
+    
+    if (relates_to_impl->value)
+    {
+        AXIS2_FREE((*env)->allocator, relates_to_impl->value);
+        relates_to_impl->value = NULL;
+    }    
+    
+    if (relates_to_impl->relationship_type)
+    {
+        AXIS2_FREE((*env)->allocator, relates_to_impl->relationship_type);
+        relates_to_impl->relationship_type = NULL;
+    }    
+
+    AXIS2_FREE((*env)->allocator, relates_to_impl);
+    relates_to_impl = NULL;
+    
+    return AXIS2_SUCCESS;
+}