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 da...@apache.org on 2005/11/16 04:45:14 UTC
svn commit: r344866 [1/2] - in /webservices/axis2/trunk/c: include/
modules/core/description/src/ modules/core/engine/src/ modules/util/src/
modules/util/test/ modules/wsdl/src/
Author: damitha
Date: Tue Nov 15 19:44:41 2005
New Revision: 344866
URL: http://svn.apache.org/viewcvs?rev=344866&view=rev
Log:
work on wsdl
Added:
webservices/axis2/trunk/c/include/axis2_wsdl_extensible_component.h
webservices/axis2/trunk/c/include/axis2_wsdl_feature.h
webservices/axis2/trunk/c/include/axis2_wsdl_interface.h
webservices/axis2/trunk/c/include/axis2_wsdl_property.h
webservices/axis2/trunk/c/modules/wsdl/src/wsdl_extensible_component.c
webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c
webservices/axis2/trunk/c/modules/wsdl/src/wsdl_interface.c
webservices/axis2/trunk/c/modules/wsdl/src/wsdl_property.c
Modified:
webservices/axis2/trunk/c/include/axis2_engine_config.h
webservices/axis2/trunk/c/include/axis2_error.h
webservices/axis2/trunk/c/include/axis2_operation.h
webservices/axis2/trunk/c/include/axis2_param_container.h
webservices/axis2/trunk/c/include/axis2_svc.h
webservices/axis2/trunk/c/modules/core/description/src/operation.c
webservices/axis2/trunk/c/modules/core/description/src/param_container.c
webservices/axis2/trunk/c/modules/core/description/src/svc.c
webservices/axis2/trunk/c/modules/core/engine/src/engine_config.c
webservices/axis2/trunk/c/modules/util/src/Makefile.am
webservices/axis2/trunk/c/modules/util/src/Makefile.in
webservices/axis2/trunk/c/modules/util/test/Makefile.am
webservices/axis2/trunk/c/modules/util/test/Makefile.in
webservices/axis2/trunk/c/modules/util/test/util_test.c
webservices/axis2/trunk/c/modules/util/test/util_test.h
webservices/axis2/trunk/c/modules/wsdl/src/Makefile.am
webservices/axis2/trunk/c/modules/wsdl/src/Makefile.in
Modified: webservices/axis2/trunk/c/include/axis2_engine_config.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_engine_config.h?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_engine_config.h (original)
+++ webservices/axis2/trunk/c/include/axis2_engine_config.h Tue Nov 15 19:44:41 2005
@@ -72,6 +72,21 @@
axis2_status_t (AXIS2_CALL *remove_svc) (axis2_engine_config_t *engine_config,
axis2_env_t **env,
const axis2_char_t *name);
+
+ axis2_status_t (AXIS2_CALL *add_param) (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ axis2_param_t *param);
+
+ axis2_param_t *(AXIS2_CALL *get_param) (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ const axis2_char_t *name);
+
+ axis2_array_list_t *(AXIS2_CALL *get_params) (axis2_engine_config_t *engine_config,
+ axis2_env_t **env);
+
+ axis2_bool_t (AXIS2_CALL *is_param_locked) (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ const axis2_char_t *param_name);
};
/**
@@ -95,23 +110,35 @@
/************************* Start of function macros ***************************/
-#define AXIS2_ENGINE_CONFIG_free(engine_config, env) \
- (engine_config->free(engine_config, env);
+#define AXIS2_ENGINE_CONFIG_FREE(engine_config, env) \
+ (engine_config->ops->free(engine_config, env)
-#define AXIS2_ENGINE_CONFIG_add_svc_grp(engine_config, env, svc_grp) \
- (engine_config->ops->add_svc_grp (engine_config, env, svc_grp));
+#define AXIS2_ENGINE_CONFIG_ADD_SVC_GRP(engine_config, env, svc_grp) \
+ (engine_config->ops->add_svc_grp (engine_config, env, svc_grp))
#define AXIS2_ENGINE_CONFIG_GET_SVC_GRP(engine_config, env, svc_grp_name) \
- (engine_config->ops->get_svc_grp (engine_config, env, svc_grp_name));
+ (engine_config->ops->get_svc_grp (engine_config, env, svc_grp_name))
#define AXIS2_ENGINE_CONFIG_ADD_SVC(engine_config, env, svc) \
- (engine_config->ops->get_svc (engine_config, env, svc));
+ (engine_config->ops->get_svc (engine_config, env, svc))
#define AXIS2_ENGINE_CONFIG_GET_SVC(engine_config, env, svc_name) \
- (engine_config->ops->get_svc (engine_config, env, svc_name));
+ (engine_config->ops->get_svc (engine_config, env, svc_name))
#define AXIS2_ENGINE_CONFIG_REMOVE_SVC(engine_config, env, svc_name) \
- (engine_config->ops->remove_svc (engine_config, env, svc_name));
+ (engine_config->ops->remove_svc (engine_config, env, svc_name))
+
+#define AXIS2_ENGINE_CONFIG_ADD_PARAM(engine_config, env, param) \
+ (engine_config->ops->add_param(engine_config , env, param))
+
+#define AXIS2_ENGINE_CONFIG_GET_PARAM(engine_config, env, name) \
+ (engine_config->ops->get_param(engine_config , env, name))
+
+#define AXIS2_ENGINE_CONFIG_GET_PARAMS(engine_config, env) \
+ (engine_config->ops->get_params(engine_config , env))
+
+#define AXIS2_ENGINE_CONFIG_IS_PARAM_LOCKED(engine_config, env, param_name) \
+ (engine_config->ops->is_parameter_locked(engine_config, env, param_name))
/************************* End of function macros *****************************/
Modified: webservices/axis2/trunk/c/include/axis2_error.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_error.h?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_error.h (original)
+++ webservices/axis2/trunk/c/include/axis2_error.h Tue Nov 15 19:44:41 2005
@@ -157,6 +157,8 @@
AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE,
/** Parameter container not set */
AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER,
+ /** Parameter not set */
+ AXIS2_ERROR_INVALID_STATE_PARAM,
/** Operation accessed has invalid state */
AXIS2_ERROR_INVALID_STATE_OPERATION,
/** Service accessed has invalid state */
@@ -182,7 +184,9 @@
/** Invalid handler rules */
AXIS2_ERROR_INVALID_HANDLER_RULES,
/** Invalid handler state */
- AXIS2_ERROR_INVALID_HANDLER_STATE
+ AXIS2_ERROR_INVALID_HANDLER_STATE,
+ /** No such element */
+ AXIS2_ERROR_NO_SUCH_ELEMENT
};
/** @} */
Modified: webservices/axis2/trunk/c/include/axis2_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_operation.h?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_operation.h Tue Nov 15 19:44:41 2005
@@ -27,6 +27,9 @@
#include <axis2_wsdl_operation.h>
#include <axis2_svc.h>
#include <axis2_msg_recv.h>
+#include <axis2_array_list.h>
+
+#include "description.h"
#ifdef __cplusplus
extern "C"
@@ -74,7 +77,7 @@
const axis2_char_t *name);
- axis2_hash_t *(AXIS2_CALL *get_params) (axis2_operation_t *operation,
+ axis2_array_list_t *(AXIS2_CALL *get_params) (axis2_operation_t *operation,
axis2_env_t **env);
/**
@@ -114,6 +117,27 @@
struct axis2_msg_recv_s *(AXIS2_CALL *get_msg_recv) (axis2_operation_t *operation,
axis2_env_t **env);
+ axis2_hash_t * (AXIS2_CALL *get_component_properties) (
+ axis2_operation_t *operation,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *set_component_properties) (
+ axis2_operation_t *operation,
+ axis2_env_t **env,
+ axis2_hash_t *properties);
+
+ axis2_wsdl_component_t * (
+ AXIS2_CALL *get_component_property) (
+ axis2_operation_t *operation,
+ axis2_env_t **env,
+ const axis2_char_t *key);
+
+ axis2_status_t (AXIS2_CALL *set_component_property) (
+ axis2_operation_t *operation,
+ axis2_env_t **env,
+ const void *key,
+ void *value);
+
axis2_char_t *(AXIS2_CALL *get_style) (axis2_operation_t *operation,
axis2_env_t **env);
@@ -147,55 +171,75 @@
axis2_operation_create_with_name (axis2_env_t **env,
axis2_qname_t *name);
+/**
+ * Creates operation struct with wsdl operation
+ * @param wsdl_operation wsdl operation
+ * @return pointer to newly created operation
+ */
+axis2_operation_t * AXIS2_CALL
+axis2_operation_create_with_wsdl_operation (axis2_env_t **env,
+ axis2_wsdl_operation_t *wsdl_operation);
/************************** Start of function macros **************************/
#define AXIS2_OPERATION_FREE(operation, env) \
- ((operation->ops)->free (operation, env));
+ ((operation->ops)->free (operation, env))
#define AXIS2_OPERATION_ADD_PARAM(operation, env, param) \
- ((operation->ops)->add_param (operation, env, param));
+ ((operation->ops)->add_param (operation, env, param))
#define AXIS2_OPERATION_GET_PARAM(operation, env) \
- ((operation->ops)->get_param (operation, env));
+ ((operation->ops)->get_param (operation, env))
#define AXIS2_OPERATION_GET_PARAMS(operation, env) \
- ((operation->ops)->get_params (operation, env));
+ ((operation->ops)->get_params (operation, env))
#define AXIS2_OPERATION_IS_PARAM_LOCKED(operation, env, param_name) \
- ((operation->ops)->is_param_locked(operation, env, param_name));
+ ((operation->ops)->is_param_locked(operation, env, param_name))
#define AXIS2_OPERATION_SET_PARENT(operation, env, service_desc) \
- ((operation->ops)->set_parent (operation, env, service_desc));
+ ((operation->ops)->set_parent (operation, env, service_desc))
#define AXIS2_OPERATION_GET_PARENT(operation, env) \
- ((operation->ops)->get_parent (operation, env));
+ ((operation->ops)->get_parent (operation, env))
#define AXIS2_OPERATION_SET_MSG_RECEIVER(operation, env, msg_recv) \
- ((operation->ops)->set_msg_recv (operation, env, msg_recv));
+ ((operation->ops)->set_msg_recv (operation, env, msg_recv))
#define AXIS2_OPERATION_GET_MSG_RECEIVER(operation, env) \
- ((operation->ops)->get_msg_recv (operation, env));
+ ((operation->ops)->get_msg_recv (operation, env))
#define AXIS2_OPERATION_SET_NAME(operation, env, qname) \
- ((operation->ops)->set_name (operation, env, qname));
+ ((operation->ops)->set_name (operation, env, qname))
#define AXIS2_OPERATION_GET_NAME(operation, env) \
- ((operation->ops)->get_name (operation, env));
+ ((operation->ops)->get_name (operation, env))
#define AXIS2_OPERATION_SET_MSG_EXCHANGE_PATTERN(operation , env, \
msg_exchange_pattern) \
((operation->ops)->set_msg_exchange_pattern (operation, env, \
- msg_exchange_pattern));
+ msg_exchange_pattern))
#define AXIS2_OPERATION_GET_MSG_EXCHANGE_PATTERN(operation, env) \
- ((operation->ops)->get_msg_exchange_pattern (operation, env));
+ ((operation->ops)->get_msg_exchange_pattern (operation, env))
+
+#define AXIS2_OPERATION_GET_COMPONENT_PROPERTIES(operation, env) \
+ ((operation->ops)->get_component_properties (operation, env))
+#define AXIS2_OPERATION_SET_COMPONENT_PROPERTIES(operation, env, properties) \
+ ((operation->ops)->set_component_properties (operation, env, properties))
+
+#define AXIS2_OPERATION_GET_COMPONENT_PROPERTY(operation, env, key) \
+ ((operation->ops)->get_component_property (operation, env, key))
+
+#define AXIS2_OPERATION_SET_COMPONENT_PROPERTY(operation, env, key, value) \
+ ((operation->ops)->set_component_property (operation, env, key, value))
+
#define AXIS2_OPERATION_GET_STYLE(operation, env) \
- ((operation->ops)->get_style (operation, env));
+ ((operation->ops)->get_style (operation, env))
#define AXIS2_OPERATION_SET_STYLE(operation, env, style) \
- ((operation->ops)->set_style (operation, env, style));
+ ((operation->ops)->set_style (operation, env, style))
/************************** End of function macros ****************************/
Modified: webservices/axis2/trunk/c/include/axis2_param_container.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_param_container.h?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_param_container.h (original)
+++ webservices/axis2/trunk/c/include/axis2_param_container.h Tue Nov 15 19:44:41 2005
@@ -28,6 +28,7 @@
#include <axis2_env.h>
#include <axis2_allocator.h>
#include <axis2_string.h>
+#include <axis2_array_list.h>
#include <axis2_hash.h>
/*#include <axis2_om_element.h>*/
@@ -81,7 +82,7 @@
/** To get all the params in a given description
* @return all the params contained
*/
- axis2_hash_t *(AXIS2_CALL *get_params)
+ axis2_array_list_t *(AXIS2_CALL *get_params)
(struct axis2_param_container *param_container,
axis2_env_t **env);
Modified: webservices/axis2/trunk/c/include/axis2_svc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_svc.h?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_svc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_svc.h Tue Nov 15 19:44:41 2005
@@ -29,6 +29,7 @@
#include <axis2_svc_grp.h>
#include <axis2_qname.h>
#include <axis2_error.h>
+#include <axis2_array_list.h>
#ifdef __cplusplus
extern "C"
@@ -146,39 +147,47 @@
axis2_svc_create_with_qname (axis2_env_t **env,
axis2_qname_t *qname);
+/**
+ * Creates service struct with wsdl service
+ * @param wsdl_svc wsdl service
+ * @return pointer to newly created service
+ */
+axis2_svc_t * AXIS2_CALL
+axis2_svc_create_with_wsdl_svc (axis2_env_t **env,
+ axis2_wsdl_svc_t *wsdl_svc);
/**************************** Start of function macros ************************/
-#define AXIS2_SVC_FREE(svc, env) (svc->ops->free (svc, env));
+#define AXIS2_SVC_FREE(svc, env) (svc->ops->free (svc, env))
#define AXIS2_SVC_ADD_OPERATION(svc, env, operation) \
- (svc->ops->add_operation (svc, env, operation));
+ (svc->ops->add_operation (svc, env, operation))
#define AXIS2_SVC_GET_OPERATION_WITH_QNAME(svc, env) \
- (svc->ops->get_operation_with_qname (svc, env));
+ (svc->ops->get_operation_with_qname (svc, env))
#define AXIS2_SVC_GET_OPERATION_WITH_NAME(svc, env) \
- (svc->ops->get_operation_with_name (svc, env));
+ (svc->ops->get_operation_with_name (svc, env))
-#define AXIS2_SVC_GET_OPERATIONS(svc, env) (svc->ops->get_operations (svc, env));
+#define AXIS2_SVC_GET_OPERATIONS(svc, env) (svc->ops->get_operations (svc, env))
#define AXIS2_SVC_SET_PARENT(svc, env , svc_grp) (svc->ops->set_parent \
- (svc, env, svc_grp));
+ (svc, env, svc_grp))
-#define AXIS2_SVC_GET_PARENT(svc, env) (svc->ops->get_parent (svc, env));
+#define AXIS2_SVC_GET_PARENT(svc, env) (svc->ops->get_parent (svc, env))
-#define AXIS2_SVC_SET_NAME(svc, env, qname) (svc->ops->set_name(svc , env, qname));
+#define AXIS2_SVC_SET_NAME(svc, env, qname) (svc->ops->set_name(svc , env, qname))
-#define AXIS2_SVC_GET_NAME(svc, env) (svc->ops->get_name(svc , env));
+#define AXIS2_SVC_GET_NAME(svc, env) (svc->ops->get_name(svc , env))
-#define AXIS2_SVC_ADD_PARAM(svc, env, param) (svc->ops->add_param(svc , env, param));
+#define AXIS2_SVC_ADD_PARAM(svc, env, param) (svc->ops->add_param(svc , env, param))
-#define AXIS2_SVC_GET_PARAM(svc, env, name) (svc->ops->get_param(svc , env, name));
+#define AXIS2_SVC_GET_PARAM(svc, env, name) (svc->ops->get_param(svc , env, name))
-#define AXIS2_SVC_GET_PARAMS(svc, env) (svc->ops->get_params(svc , env));
+#define AXIS2_SVC_GET_PARAMS(svc, env) (svc->ops->get_params(svc , env))
#define AXIS2_SVC_IS_PARAM_LOCKED(svc, env, param_name) \
- (svc->ops->is_parameter_locked(svc, env, param_name));
+ (svc->ops->is_param_locked(svc, env, param_name))
#define AXIS2_SVC_GET_COMPONENT_PROPERTIES(svc, env) \
((svc->ops)->get_component_properties(svc, env))
Added: webservices/axis2/trunk/c/include/axis2_wsdl_extensible_component.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_extensible_component.h?rev=344866&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_extensible_component.h (added)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_extensible_component.h Tue Nov 15 19:44:41 2005
@@ -0,0 +1,143 @@
+/*
+ * 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_WSDL_EXTENSIBLE_COMPONENT_H
+#define AXIS2_WSDL_EXTENSIBLE_COMPONENT_H
+
+/**
+ * @file axis2_wsdl_extensible_component.h
+ * @brief Axis2 Wsdl extensible component interface
+ */
+
+#include <axis2.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+#include <axis2_linked_list.h>
+#include <axis2_wsdl_feature.h>
+#include <axis2_wsdl_property.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_wsdl_extensible_component_s axis2_wsdl_extensible_component_t;
+typedef struct axis2_wsdl_extensible_component_ops_s axis2_wsdl_extensible_component_ops_t;
+
+/** @defgroup axis2_wsdl_extensible_component Wsdl Extensible Component
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+/**
+ * @brief Wsdl Extensible Component operations struct
+ * Encapsulator struct for operations of axis2_wsdl_extensible_component
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_extensible_component_ops_s
+{
+ /** De-allocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *free)(
+ axis2_wsdl_extensible_component_t *wsdl_extensible_component,
+ axis2_env_t **env);
+
+ /**
+ * Will add a <code>WSDLFeature</code> to the feature list.
+ * If feature is null it will not be added.
+ * <code>ExtensibleComponent</code>
+ *
+ * @param wsdl_feature
+ */
+ axis2_status_t (AXIS2_CALL *
+ add_feature) (axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env,
+ axis2_wsdl_feature_t *wsdl_feature);
+
+ /**
+ * Will return the <code>WSDLFeature</code>s. If there aren't
+ * any features an empty list will be returned.
+ *
+ * @return
+ */
+ axis2_linked_list_t *(AXIS2_CALL *
+ get_features) (axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env);
+
+ /**
+ * Will add the property to the component properties. If the property is null it will
+ * not be added.
+ *
+ * @param wsdlProperty
+ */
+ axis2_status_t (AXIS2_CALL *
+ add_property) (axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env,
+ axis2_wsdl_property_t *wsdl_property);
+
+ /**
+ * Returns the Component Properties. If none exist an empty list will be returned.
+ *
+ * @return
+ */
+ axis2_linked_list_t *(AXIS2_CALL *
+ get_properties) (axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env);
+};
+
+/**
+ * @brief Wsdl container struct
+ * Property for params
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_extensible_component_s
+{
+ axis2_wsdl_extensible_component_ops_t *ops;
+};
+
+/**
+ * Creates wsdl property struct
+ * @return pointer to newly created wsdl property
+ */
+AXIS2_DECLARE(axis2_wsdl_extensible_component_t *)
+axis2_wsdl_extensible_component_create (axis2_env_t **env);
+
+/*************************** Function macros **********************************/
+
+#define AXIS2_WSDL_EXTENSIBLE_COMPONENT_FREE(extensible_component, env) \
+ ((extensible_component->ops)->free (extensible_component, env))
+
+#define AXIS2_WSDL_EXTENSIBLE_COMPONENT_ADD_FEATURE(extensible_component, env, feature) \
+ ((extensible_component->ops)->add_feature (extensible_component, env, feature))
+
+#define AXIS2_WSDL_EXTENSIBLE_COMPONENT_GET_FEATURES(extensible_component, env) \
+ ((extensible_component->ops)->get_features (extensible_component, env))
+
+#define AXIS2_WSDL_EXTENSIBLE_COMPONENT_ADD_PROPERTY(extensible_component, env, property) \
+ ((extensible_component->ops)->add_property (extensible_component, env, property))
+
+#define AXIS2_WSDL_EXTENSIBLE_COMPONENT_GET_PROPERTIES(extensible_component, env) \
+ ((extensible_component->ops)->get_properties (extensible_component, env))
+
+/*************************** End of function macros ***************************/
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WSDL_EXTENSIBLE_COMPONENT_H */
Added: webservices/axis2/trunk/c/include/axis2_wsdl_feature.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_feature.h?rev=344866&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_feature.h (added)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_feature.h Tue Nov 15 19:44:41 2005
@@ -0,0 +1,137 @@
+/*
+ * 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_WSDL_FEATURE_H
+#define AXIS2_WSDL_FEATURE_H
+
+/**
+ * @file axis2_wsdl_feature.h
+ * @brief Axis2 Wsdl feature interface
+ */
+
+#include <axis2.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_wsdl_feature_s axis2_wsdl_feature_t;
+typedef struct axis2_wsdl_feature_ops_s axis2_wsdl_feature_ops_t;
+
+/** @defgroup axis2_wsdl_feature Wsdl Feature
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+/**
+ * @brief Wsdl Feature operations struct
+ * Encapsulator struct for operations of axis2_wsdl_feature
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_feature_ops_s
+{
+ /** De-allocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *free)(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env);
+
+ /**
+ * Method getName
+ *
+ * @return
+ */
+ axis2_char_t *(AXIS2_CALL *
+ get_name) (axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env);
+
+ /**
+ * Method setName
+ *
+ * @param name
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_name) (axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env,
+ axis2_char_t *name);
+
+
+ /**
+ * Method isRequired
+ *
+ * @return
+ */
+ axis2_bool_t (AXIS2_CALL *
+ is_required) (axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env);
+
+ /**
+ * Method setRequired
+ *
+ * @param required
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_required) (axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env,
+ axis2_bool_t required);
+
+
+};
+
+/**
+ * @brief Wsdl container struct
+ * Property for params
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_feature_s
+{
+ axis2_wsdl_feature_ops_t *ops;
+};
+
+/**
+ * Creates wsdl feature struct
+ * @return pointer to newly created wsdl feature
+ */
+AXIS2_DECLARE(axis2_wsdl_feature_t *) axis2_wsdl_feature_create (axis2_env_t **env);
+
+/*************************** Function macros **********************************/
+
+#define AXIS2_WSDL_FEATURE_FREE(wsdl_feature, env) \
+ ((wsdl_feature->ops)->free (wsdl_feature, env))
+
+#define AXIS2_WSDL_FEATURE_GET_NAME(wsdl_feature, env) \
+ ((wsdl_feature->ops)->get_name (wsdl_feature, env))
+
+#define AXIS2_WSDL_FEATURE_SET_NAME(wsdl_feature, env, name) \
+ ((wsdl_feature->ops)->set_name (wsdl_feature, env, name))
+
+#define AXIS2_WSDL_FEATURE_IS_REQUIRED(wsdl_feature, env) \
+ ((wsdl_feature->ops)->is_required (wsdl_feature, env))
+
+#define AXIS2_WSDL_FEATURE_SET_REQUIRED(wsdl_feature, env, required) \
+ ((wsdl_feature->ops)->set_required (wsdl_feature, env, required))
+
+/*************************** End of function macros ***************************/
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WSDL_FEATURE_H */
Added: webservices/axis2/trunk/c/include/axis2_wsdl_interface.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_interface.h?rev=344866&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_interface.h (added)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_interface.h Tue Nov 15 19:44:41 2005
@@ -0,0 +1,278 @@
+/*
+ * 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_WSDL_INTERFACE_H
+#define AXIS2_WSDL_INTERFACE_H
+
+/**
+ * @file axis2_wsdl_interface.h
+ * @brief Axis2 Wsdl interface interface
+ */
+
+#include <axis2.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+#include <axis2_hash.h>
+#include <axis2_wsdl_operation.h>
+#include <axis2_linked_list.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_wsdl_interface_s axis2_wsdl_interface_t;
+typedef struct axis2_wsdl_interface_ops_s axis2_wsdl_interface_ops_t;
+
+/** @defgroup axis2_wsdl_interface Wsdl Interface
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+/**
+ * @brief Wsdl Interface operations struct
+ * Encapsulator struct for operations of axis2_wsdl_interface
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_interface_ops_s
+{
+ /** De-allocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *
+ free)(axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * Method getDefinedOperations
+ *
+ * @return
+ */
+ axis2_hash_t *(AXIS2_CALL *
+ get_defined_operations) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * @return
+ */
+ axis2_linked_list_t *(AXIS2_CALL *
+ get_faults) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * @return
+ */
+ axis2_qname_t *(AXIS2_CALL *
+ get_name) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * @return
+ */
+ axis2_hash_t *(AXIS2_CALL *
+ get_operations) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * Retruns the <code>WSDLOperation</code>
+ *
+ * @param nCName
+ * @return
+ */
+ axis2_wsdl_operation_t *(AXIS2_CALL *
+ get_operation) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_char_t *nc_name);
+
+ /**
+ * @return
+ */
+ axis2_hash_t *(AXIS2_CALL *
+ get_super_interfaces) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * Method getSuperInterface
+ *
+ * @param qName
+ * @return
+ */
+ axis2_wsdl_interface_t *(AXIS2_CALL *
+ get_super_interface) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_qname_t *qname);
+
+ /**
+ * The Targetnamespace is that of the namespace URI of the QName of
+ * this component.
+ *
+ * @return URI as a String if the name is set otherwise will return null.
+ */
+ axis2_char_t *(AXIS2_CALL *
+ get_target_namespace) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+ /**
+ * @param list
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_faults) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_linked_list_t *list);
+
+ /**
+ * @param qName
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_name) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_qname_t *qName);
+
+ /**
+ * @param list
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_operations) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_hash_t *list);
+
+ /**
+ * The operation is added by its ncname. If operation is null
+ * it will not be added. If the Operation name is null a
+ * <code>WSDLProcessingException</code> will be thrown.
+ *
+ * @param operation
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_operation) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_wsdl_operation_t *operation);
+
+ /**
+ * @param list
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_super_interfaces) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_hash_t *list);
+
+ /**
+ * The Inteface will be added to the list of super interfaces keyed with
+ * the QName.
+ *
+ * @param interfaceComponent WSDLInterface Object
+ */
+ axis2_status_t (AXIS2_CALL *
+ add_super_interface)(axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_wsdl_interface_t *interface_component);
+
+ /**
+ * Will return the StyleDefault if exist , otherwise will return null
+ *
+ * @return
+ */
+ axis2_char_t *(AXIS2_CALL *
+ get_style_default)(axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env);
+
+
+ /**
+ * Method setStyleDefault
+ *
+ * @param styleDefault
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_style_default) (axis2_wsdl_interface_t *wsdl_interface,
+ axis2_env_t **env,
+ axis2_char_t *style_default);
+
+};
+
+/**
+ * @brief Wsdl container struct
+ * Property for params
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_interface_s
+{
+ axis2_wsdl_interface_ops_t *ops;
+};
+
+/**
+ * Creates wsdl property struct
+ * @return pointer to newly created wsdl property
+ */
+AXIS2_DECLARE(axis2_wsdl_interface_t *) axis2_wsdl_interface_create (axis2_env_t **env);
+
+/*************************** Function macros **********************************/
+
+#define AXIS2_WSDL_INTERFACE_FREE(wsdl_interface, env) \
+ ((wsdl_interface->ops)->free (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_GET_DEFINED_OPERATIONS(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_defined_operations (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_GET_FAULTS(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_faults (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_GET_NAME(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_name (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_GET_OPERATIONS(wsdl_interface, env, name) \
+ ((wsdl_interface->ops)->get_operations (wsdl_interface, env, name))
+
+#define AXIS2_WSDL_INTERFACE_GET_SUPER_INTERFACES(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_super_interfaces (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_GET_SUPER_INTERFACE(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_super_interface (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_GET_TARGET_NAMESPACE(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_target_namespace (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_SET_FAULTS(wsdl_interface, env, list) \
+ ((wsdl_interface->ops)->set_faults (wsdl_interface, env, list))
+
+#define AXIS2_WSDL_INTERFACE_SET_NAME(wsdl_interface, env, name) \
+ ((wsdl_interface->ops)->set_name (wsdl_interface, env, name))
+
+#define AXIS2_WSDL_INTERFACE_SET_OPERATIONS(wsdl_interface, env, list) \
+ ((wsdl_interface->ops)->set_operations (wsdl_interface, env, list))
+
+#define AXIS2_WSDL_INTERFACE_SET_OPERATION(wsdl_interface, env, operation) \
+ ((wsdl_interface->ops)->set_operation (wsdl_interface, env, operation))
+
+#define AXIS2_WSDL_INTERFACE_SET_SUPER_INTERFACES(wsdl_interface, env, list) \
+ ((wsdl_interface->ops)->set_super_interfaces (wsdl_interface, env, list))
+
+#define AXIS2_WSDL_INTERFACE_SET_SUPER_INTERFACE(wsdl_interface, env, interface) \
+ ((wsdl_interface->ops)->set_super_interface (wsdl_interface, env, interface))
+
+#define AXIS2_WSDL_INTERFACE_GET_STYLE_DEFAULT(wsdl_interface, env) \
+ ((wsdl_interface->ops)->get_style_default (wsdl_interface, env))
+
+#define AXIS2_WSDL_INTERFACE_SET_STYLE_DEFAULT(wsdl_interface, env, style_default) \
+ ((wsdl_interface->ops)->set_style_default (wsdl_interface, env, style_default))
+
+/*************************** End of function macros ***************************/
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WSDL_INTERFACE_H */
Added: webservices/axis2/trunk/c/include/axis2_wsdl_property.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_property.h?rev=344866&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_property.h (added)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_property.h Tue Nov 15 19:44:41 2005
@@ -0,0 +1,163 @@
+/*
+ * 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_WSDL_PROPERTY_H
+#define AXIS2_WSDL_PROPERTY_H
+
+/**
+ * @file axis2_wsdl_property.h
+ * @brief Axis2 Wsdl property interface
+ */
+
+#include <axis2.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_wsdl_property_s axis2_wsdl_property_t;
+typedef struct axis2_wsdl_property_ops_s axis2_wsdl_property_ops_t;
+
+/** @defgroup axis2_wsdl_property Wsdl Property
+ * @ingroup axis2_wsdl
+ * @{
+ */
+
+/**
+ * @brief Wsdl Property operations struct
+ * Encapsulator struct for operations of axis2_wsdl_property
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_property_ops_s
+{
+ /** De-allocate memory
+ * @return status code
+ */
+ axis2_status_t (AXIS2_CALL *free)(axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env);
+
+ /**
+ * Method getConstraint
+ *
+ * @return
+ */
+ void * (AXIS2_CALL *
+ get_constraint) (axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env);
+
+ /**
+ * Method setConstraint
+ *
+ * @param constraint
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_constraint) (axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env,
+ void *constraint);
+
+ /**
+ * Method getName
+ *
+ * @return
+ */
+ axis2_char_t *(AXIS2_CALL *
+ get_name) (axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env);
+
+ /**
+ * Method setName
+ *
+ * @param name
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_name) (axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env,
+ axis2_char_t *name);
+
+
+ /**
+ * Method getValue
+ *
+ * @return
+ */
+ void *(AXIS2_CALL *
+ get_value) (axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env);
+
+ /**
+ * Method setValue
+ *
+ * @param value
+ */
+ axis2_status_t (AXIS2_CALL *
+ set_value) (axis2_wsdl_property_t *wsdl_property,
+ axis2_env_t **env,
+ void *value);
+
+
+
+};
+
+/**
+ * @brief Wsdl container struct
+ * Property for params
+ */
+AXIS2_DECLARE_DATA struct axis2_wsdl_property_s
+{
+ axis2_wsdl_property_ops_t *ops;
+};
+
+/**
+ * Creates wsdl property struct
+ * @return pointer to newly created wsdl property
+ */
+AXIS2_DECLARE(axis2_wsdl_property_t *) axis2_wsdl_property_create (axis2_env_t **env);
+
+/*************************** Function macros **********************************/
+
+#define AXIS2_WSDL_PROPERTY_FREE(wsdl_property, env) \
+ ((wsdl_property->ops)->free (wsdl_property, env))
+
+#define AXIS2_WSDL_PROPERTY_GET_CONSTRAINT(wsdl_property, env) \
+ ((wsdl_property->ops)->set_constraint (wsdl_property, env))
+
+#define AXIS2_WSDL_PROPERTY_SET_CONSTRAINT(wsdl_property, env, constraint) \
+ ((wsdl_property->ops)->get_constraint (wsdl_property, env, constraint))
+
+#define AXIS2_WSDL_PROPERTY_GET_NAME(wsdl_property, env) \
+ ((wsdl_property->ops)->get_name (wsdl_property, env))
+
+#define AXIS2_WSDL_PROPERTY_SET_NAME(wsdl_property, env, name) \
+ ((wsdl_property->ops)->set_name (wsdl_property, env, name))
+
+#define AXIS2_WSDL_PROPERTY_GET_VALUE(wsdl_property, env) \
+ ((wsdl_property->ops)->get_value (wsdl_property, env))
+
+#define AXIS2_WSDL_PROPERTY_SET_VALUE(wsdl_property, env, value) \
+ ((wsdl_property->ops)->set_value (wsdl_property, env, value))
+
+/*************************** End of function macros ***************************/
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WSDL_PROPERTY_H */
Modified: webservices/axis2/trunk/c/modules/core/description/src/operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/operation.c?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/operation.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/operation.c Tue Nov 15 19:44:41 2005
@@ -47,7 +47,7 @@
axis2_env_t **env,
const axis2_char_t *name);
-axis2_hash_t * AXIS2_CALL
+axis2_array_list_t * AXIS2_CALL
axis2_operation_get_params (axis2_operation_t *operation,
axis2_env_t **env);
@@ -92,6 +92,26 @@
axis2_operation_get_msg_exchange_pattern (axis2_operation_t *operation,
axis2_env_t **env);
+axis2_hash_t * AXIS2_CALL
+axis2_operation_get_component_properties(axis2_operation_t *operation,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_operation_set_component_properties(axis2_operation_t *operation,
+ axis2_env_t **env,
+ axis2_hash_t *properties);
+
+axis2_wsdl_component_t * AXIS2_CALL
+axis2_operation_get_component_property(axis2_operation_t *operation,
+ axis2_env_t **env,
+ const axis2_char_t *key);
+
+axis2_status_t AXIS2_CALL
+axis2_operation_set_component_property (axis2_operation_t *operation,
+ axis2_env_t **env,
+ const void *key,
+ void *value);
+
axis2_char_t * AXIS2_CALL
axis2_operation_get_style (axis2_operation_t *operation,
axis2_env_t **env);
@@ -158,11 +178,27 @@
operation_impl->operation.ops->set_name = axis2_operation_set_name;
operation_impl->operation.ops->get_name = axis2_operation_get_name;
+
operation_impl->operation.ops->set_msg_exchange_pattern
= axis2_operation_set_msg_exchange_pattern;
+
operation_impl->operation.ops->get_msg_exchange_pattern
= axis2_operation_get_msg_exchange_pattern;
+
+ operation_impl->operation.ops->get_component_properties =
+ axis2_operation_get_component_properties;
+
+ operation_impl->operation.ops->set_component_properties =
+ axis2_operation_set_component_properties;
+
+ operation_impl->operation.ops->get_component_property =
+ axis2_operation_get_component_property;
+
+ operation_impl->operation.ops->set_component_property =
+ axis2_operation_set_component_property;
+
operation_impl->operation.ops->set_style = axis2_operation_set_style;
+
operation_impl->operation.ops->get_style = axis2_operation_get_style;
operation_impl->parent = NULL;
@@ -184,7 +220,26 @@
}
AXIS2_PARAM_CHECK((*env)->error, qname, AXIS2_FAILURE);
- AXIS2_WSDL_OPERATION_SET_NAME(operation_impl->wsdl_operation, env, qname);
+ axis2_operation_set_name(&(operation_impl->operation), env, qname);
+
+ return &(operation_impl->operation);
+}
+
+axis2_operation_t * AXIS2_CALL
+axis2_operation_create_with_wsdl_operation (axis2_env_t **env,
+ axis2_wsdl_operation_t *wsdl_operation)
+{
+ axis2_operation_impl_t *operation_impl =
+ AXIS2_INTF_TO_IMPL(axis2_operation_create(env));
+
+ if(NULL == operation_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ AXIS2_PARAM_CHECK((*env)->error, wsdl_operation, NULL);
+
+ operation_impl->wsdl_operation = wsdl_operation;
return &(operation_impl->operation);
}
@@ -223,47 +278,58 @@
axis2_env_t **env,
axis2_param_t *param)
{
+ axis2_param_container_t *param_container_l = NULL;
AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FALSE);
- AXIS2_PARAM_CHECK((*env)->error, AXIS2_INTF_TO_IMPL(operation)->param_container,
- AXIS2_FALSE);
AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FALSE);
- axis2_hash_set
- (AXIS2_PARAM_CONTAINER_GET_PARAMS(AXIS2_INTF_TO_IMPL(operation)->
- param_container, env), AXIS2_PARAM_GET_NAME(param, env),
- AXIS2_HASH_KEY_STRING, param);
- return AXIS2_SUCCESS;
-
+ if(AXIS2_TRUE == axis2_operation_is_param_locked(operation, env,
+ AXIS2_PARAM_GET_NAME(param, env)))
+ {
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE, AXIS2_FAILURE);
+ }
+ else
+ {
+ param_container_l = (axis2_param_container_t *)
+ axis2_operation_get_component_property(operation, env,
+ (axis2_char_t *) PARAMETER_KEY);
+ return AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container_l, env, param);
+ }
+
+ return AXIS2_SUCCESS;
}
axis2_param_t * AXIS2_CALL
axis2_operation_get_param (axis2_operation_t *operation,
axis2_env_t **env,
- const axis2_char_t *name)
+ const axis2_char_t *param_name)
{
+ axis2_param_container_t *param_container_l = NULL;
AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FALSE);
- AXIS2_PARAM_CHECK((*env)->error, AXIS2_INTF_TO_IMPL(operation)->param_container,
- AXIS2_FALSE);
+ AXIS2_PARAM_CHECK((*env)->error, param_name, NULL);
+ if(AXIS2_INTF_TO_IMPL(operation)->param_container)
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_STATE_OPERATION, NULL);
- axis2_char_t *tempname = AXIS2_STRDUP(name, env);
- if(NULL == tempname)
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FALSE);
-
- return (axis2_param_t *)(axis2_hash_get (
- AXIS2_PARAM_CONTAINER_GET_PARAMS(AXIS2_INTF_TO_IMPL(operation)->
- param_container, env), tempname, AXIS2_HASH_KEY_STRING));
+ param_container_l = (axis2_param_container_t *)
+ axis2_operation_get_component_property(operation, env, (axis2_char_t *)
+ PARAMETER_KEY);
+
+ return AXIS2_PARAM_CONTAINER_GET_PARAM(param_container_l, env, param_name);
}
-axis2_hash_t * AXIS2_CALL
+axis2_array_list_t * AXIS2_CALL
axis2_operation_get_params(axis2_operation_t *operation,
axis2_env_t **env)
{
+ axis2_param_container_t *param_container_l = NULL;
AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FALSE);
AXIS2_PARAM_CHECK((*env)->error, AXIS2_INTF_TO_IMPL(operation)->param_container,
AXIS2_FALSE);
- return AXIS2_PARAM_CONTAINER_GET_PARAMS
- (AXIS2_INTF_TO_IMPL(operation)->param_container, env);
+ param_container_l = (axis2_param_container_t *)
+ axis2_operation_get_component_property(operation, env, (axis2_char_t *)
+ PARAMETER_KEY);
+ return AXIS2_PARAM_CONTAINER_GET_PARAMS(param_container_l, env);
}
axis2_bool_t AXIS2_CALL
@@ -271,17 +337,31 @@
axis2_env_t **env,
const axis2_char_t *param_name)
{
+ axis2_svc_t *parent_l = NULL;
+ axis2_param_t *param_l = NULL;
AXIS2_FUNC_PARAM_CHECK(operation, env, AXIS2_FALSE);
- AXIS2_PARAM_CHECK((*env)->error, AXIS2_INTF_TO_IMPL(operation)->param_container,
- AXIS2_FALSE);
+ if(AXIS2_INTF_TO_IMPL(operation)->param_container)
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_STATE_OPERATION,
+ AXIS2_FALSE);
- axis2_char_t *tempname = AXIS2_STRDUP(param_name, env);
- if(NULL == tempname)
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FALSE);
-
- return AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED
- (AXIS2_INTF_TO_IMPL(operation)->param_container, env, tempname);
+ AXIS2_PARAM_CHECK((*env)->error, param_name, AXIS2_FALSE);
+ axis2_bool_t locked = AXIS2_FALSE;
+ /* checking the locked value of parent*/
+ parent_l = axis2_operation_get_parent(operation, env);
+ if(NULL != parent_l)
+ {
+ locked = AXIS2_SVC_IS_PARAM_LOCKED(parent_l, env, param_name);
+ }
+ if(AXIS2_TRUE == locked)
+ {
+ return AXIS2_TRUE;
+ }
+ else
+ {
+ param_l = axis2_operation_get_param(operation, env, param_name);
+ }
+ return AXIS2_PARAM_IS_LOCKED(param_l, env);
}
axis2_status_t AXIS2_CALL
Modified: webservices/axis2/trunk/c/modules/core/description/src/param_container.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/param_container.c?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/param_container.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/param_container.c Tue Nov 15 19:44:41 2005
@@ -45,7 +45,7 @@
axis2_env_t **env,
const axis2_char_t *name);
-axis2_hash_t * AXIS2_CALL
+axis2_array_list_t * AXIS2_CALL
axis2_param_container_get_params (axis2_param_container_t *param_container,
axis2_env_t **env);
@@ -89,7 +89,11 @@
param_container_impl->params = axis2_hash_make (env);
if(NULL == param_container_impl->params)
+ {
+ AXIS2_FREE((*env)->allocator, param_container_impl->param_container.ops);
+ AXIS2_FREE((*env)->allocator, param_container_impl);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
return &(param_container_impl->param_container);
}
@@ -142,13 +146,26 @@
params, AXIS2_STRDUP(name, env), AXIS2_HASH_KEY_STRING));
}
-axis2_hash_t * AXIS2_CALL
+axis2_array_list_t * AXIS2_CALL
axis2_param_container_get_params (axis2_param_container_t *param_container,
axis2_env_t **env)
{
+ axis2_hash_index_t *i = 0;
+ axis2_hash_t *hash_l = NULL;
+ /* create an array list with the initial default capacity */
+ axis2_array_list_t *array_list_l = axis2_array_list_create(env, 0);
+ void *value = NULL;
+
AXIS2_FUNC_PARAM_CHECK(param_container, env, NULL);
-
- return AXIS2_INTF_TO_IMPL(param_container)->params;
+
+ hash_l = AXIS2_INTF_TO_IMPL(param_container)->params;
+ for (i = axis2_hash_first (hash_l, env); i; i = axis2_hash_next (env, i))
+ {
+ axis2_hash_this (i, NULL, NULL, &value);
+ AXIS2_ARRAY_LIST_ADD(array_list_l, env, value);
+ }
+
+ return array_list_l;
}
axis2_status_t AXIS2_CALL
Modified: webservices/axis2/trunk/c/modules/core/description/src/svc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/svc.c?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/svc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/svc.c Tue Nov 15 19:44:41 2005
@@ -12,8 +12,10 @@
axis2_param_container_t *param_container;
axis2_wsdl_svc_t *wsdl_svc;
axis2_svc_grp_t *parent;
- axis2_hash_t *wasaction_opeartionmap;
- axis2_qname_t *qname;
+ axis2_hash_t *wasaction_opeartionmap;
+ axis2_char_t *axis2_svc_name;
+ axis2_array_list_t *module_list;
+ long last_update;
};
@@ -122,6 +124,7 @@
svc_impl->svc.ops->add_param = axis2_svc_add_param;
svc_impl->svc.ops->get_param = axis2_svc_get_param;
svc_impl->svc.ops->get_params = axis2_svc_get_params;
+ svc_impl->svc.ops->is_param_locked = axis2_svc_is_param_locked;
svc_impl->svc.ops->get_component_properties = axis2_svc_get_component_properties;
svc_impl->svc.ops->set_component_properties = axis2_svc_set_component_properties;
svc_impl->svc.ops->get_component_property = axis2_svc_get_component_property;
@@ -139,7 +142,7 @@
svc_impl->param_container = param_container;
axis2_wsdl_svc_t *wsdl_svc = (axis2_wsdl_svc_t *)
- axis2_param_container_create(env);
+ axis2_wsdl_svc_create(env);
if(NULL == wsdl_svc)
{
AXIS2_FREE((*env)->allocator, svc_impl->svc.ops);
@@ -161,7 +164,21 @@
AXIS2_FREE((*env)->allocator, svc_impl);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
}
- svc_impl->qname = NULL;
+
+ /** Create modle list of default size */
+ svc_impl->module_list = axis2_array_list_create(env, 0);
+ if(NULL == svc_impl->module_list)
+ {
+ AXIS2_FREE((*env)->allocator, svc_impl->svc.ops);
+ AXIS2_PARAM_CONTAINER_FREE(svc_impl->param_container, env);
+ AXIS2_WSDL_SVC_FREE(svc_impl->wsdl_svc, env);
+ axis2_hash_free(svc_impl->wasaction_opeartionmap, env);
+ AXIS2_FREE((*env)->allocator, svc_impl);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ svc_impl->axis2_svc_name = NULL;
+ svc_impl->last_update = 0;
return &(svc_impl->svc);
}
@@ -178,11 +195,30 @@
AXIS2_PARAM_CHECK((*env)->error, qname, AXIS2_FAILURE);
- svc_impl->qname = qname;
+ axis2_svc_set_name(&(svc_impl->svc), env, qname);
return &(svc_impl->svc);
}
+axis2_svc_t * AXIS2_CALL
+axis2_svc_create_with_wsdl_svc (axis2_env_t **env,
+ axis2_wsdl_svc_t *wsdl_svc)
+{
+ axis2_svc_impl_t *svc_impl =
+ AXIS2_INTF_TO_IMPL(axis2_svc_create(env));
+
+ if(NULL == svc_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ AXIS2_PARAM_CHECK((*env)->error, wsdl_svc, NULL);
+
+ svc_impl->wsdl_svc = wsdl_svc;
+
+ return &(svc_impl->svc);
+}
+
/********************** Start of function implementations ********************/
axis2_status_t AXIS2_CALL
@@ -207,8 +243,11 @@
if(NULL != AXIS2_INTF_TO_IMPL(svc)->wasaction_opeartionmap)
axis2_hash_free(AXIS2_INTF_TO_IMPL(svc)->wasaction_opeartionmap, env);
- if(NULL != AXIS2_INTF_TO_IMPL(svc)->qname)
- AXIS2_QNAME_FREE(AXIS2_INTF_TO_IMPL(svc)->qname, env);
+ if(NULL != AXIS2_INTF_TO_IMPL(svc)->module_list)
+ AXIS2_ARRAY_LIST_FREE(AXIS2_INTF_TO_IMPL(svc)->module_list, env);
+
+ if(NULL != AXIS2_INTF_TO_IMPL(svc)->axis2_svc_name)
+ AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(svc)->axis2_svc_name);
AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(svc));
Modified: webservices/axis2/trunk/c/modules/core/engine/src/engine_config.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/engine_config.c?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/engine_config.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/src/engine_config.c Tue Nov 15 19:44:41 2005
@@ -65,6 +65,25 @@
axis2_env_t **env,
const axis2_char_t *name);
+axis2_status_t AXIS2_CALL
+axis2_engine_config_add_param (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ axis2_param_t *param);
+
+axis2_param_t * AXIS2_CALL
+axis2_engine_config_get_param (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ const axis2_char_t *name);
+
+axis2_array_list_t * AXIS2_CALL
+axis2_engine_config_get_params (axis2_engine_config_t *engine_config,
+ axis2_env_t **env);
+
+axis2_bool_t AXIS2_CALL
+axis2_engine_config_is_param_locked (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ const axis2_char_t *param_name);
+
/**
* To split a given svc name into it's svc grp name and svc name.
* if the svc name is foo:bar then svc grp name is "foo" and
@@ -94,11 +113,22 @@
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
engine_config_impl->engine_config.ops->free = axis2_engine_config_free;
- engine_config_impl->engine_config.ops->add_svc_grp = axis2_engine_config_add_svc_grp;
- engine_config_impl->engine_config.ops->get_svc_grp = axis2_engine_config_get_svc_grp;
+ engine_config_impl->engine_config.ops->add_svc_grp =
+ axis2_engine_config_add_svc_grp;
+ engine_config_impl->engine_config.ops->get_svc_grp =
+ axis2_engine_config_get_svc_grp;
engine_config_impl->engine_config.ops->add_svc = axis2_engine_config_add_svc;
engine_config_impl->engine_config.ops->get_svc = axis2_engine_config_get_svc;
- engine_config_impl->engine_config.ops->remove_svc = axis2_engine_config_remove_svc;
+ engine_config_impl->engine_config.ops->remove_svc =
+ axis2_engine_config_remove_svc;
+ engine_config_impl->engine_config.ops->add_param =
+ axis2_engine_config_add_param;
+ engine_config_impl->engine_config.ops->get_param =
+ axis2_engine_config_get_param;
+ engine_config_impl->engine_config.ops->get_params =
+ axis2_engine_config_get_params;
+ engine_config_impl->engine_config.ops->is_param_locked =
+ axis2_engine_config_is_param_locked;
axis2_param_container_t *param_container = (axis2_param_container_t *)
axis2_param_container_create(env);
@@ -256,6 +286,82 @@
return AXIS2_SVC_GRP_REMOVE_SVC(sg, env, qname);
}
+
+axis2_status_t AXIS2_CALL
+axis2_engine_config_add_param (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ axis2_param_t *param)
+{
+ AXIS2_FUNC_PARAM_CHECK(engine_config, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FAILURE);
+
+ if(NULL == AXIS2_INTF_TO_IMPL(engine_config)->param_container)
+ {
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER, AXIS2_FAILURE);
+ }
+ axis2_hash_set (AXIS2_PARAM_CONTAINER_GET_PARAMS(AXIS2_INTF_TO_IMPL(engine_config)->
+ param_container, env), AXIS2_PARAM_GET_NAME(param, env),
+ AXIS2_HASH_KEY_STRING, param);
+ return AXIS2_SUCCESS;
+}
+
+axis2_param_t * AXIS2_CALL
+axis2_engine_config_get_param (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ const axis2_char_t *name)
+{
+ AXIS2_FUNC_PARAM_CHECK(engine_config, env, AXIS2_FAILURE);
+
+ if(NULL == AXIS2_INTF_TO_IMPL(engine_config)->param_container)
+ {
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER, AXIS2_FAILURE);
+ }
+
+ axis2_char_t *tempname = AXIS2_STRDUP(name, env);
+ if(NULL == tempname)
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_NULL_PARAM,
+ AXIS2_FAILURE);
+
+ return (axis2_param_t *)(axis2_hash_get
+ (AXIS2_PARAM_CONTAINER_GET_PARAMS(AXIS2_INTF_TO_IMPL(engine_config)->
+ param_container, env), tempname, AXIS2_HASH_KEY_STRING));
+
+}
+
+axis2_array_list_t * AXIS2_CALL
+axis2_engine_config_get_params (axis2_engine_config_t *engine_config,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(engine_config, env, NULL);
+ return AXIS2_PARAM_CONTAINER_GET_PARAMS(AXIS2_INTF_TO_IMPL(engine_config)->
+ param_container, env);
+
+}
+
+axis2_bool_t AXIS2_CALL
+axis2_engine_config_is_param_locked (axis2_engine_config_t *engine_config,
+ axis2_env_t **env,
+ const axis2_char_t *param_name)
+{
+ AXIS2_FUNC_PARAM_CHECK(engine_config, env, AXIS2_FALSE);
+ if(NULL == AXIS2_INTF_TO_IMPL(engine_config)->param_container)
+ {
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER, AXIS2_FALSE);
+ }
+
+ axis2_char_t *tempname = AXIS2_STRDUP(param_name, env);
+ if(NULL == tempname)
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_NULL_PARAM,
+ AXIS2_FAILURE);
+
+ return AXIS2_PARAM_CONTAINER_IS_PARAM_LOCKED
+ (AXIS2_INTF_TO_IMPL(engine_config)->param_container, env, param_name);
+
+}
+
axis2_status_t
split_svc_name (axis2_env_t **env,
Modified: webservices/axis2/trunk/c/modules/util/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/Makefile.am?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/util/src/Makefile.am Tue Nov 15 19:44:41 2005
@@ -9,7 +9,8 @@
string.c \
file_diff.c \
qname.c \
- array_list.c
+ array_list.c \
+ linked_list.c
libaxis2_util_la_LIBADD = $(LDFLAGS)
INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include \
Modified: webservices/axis2/trunk/c/modules/util/src/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/Makefile.in?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/util/src/Makefile.in Tue Nov 15 19:44:41 2005
@@ -64,7 +64,8 @@
am__DEPENDENCIES_1 =
libaxis2_util_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libaxis2_util_la_OBJECTS = hash.lo allocator.lo env.lo error.lo \
- stream.lo log.lo string.lo file_diff.lo qname.lo array_list.lo
+ stream.lo log.lo string.lo file_diff.lo qname.lo array_list.lo \
+ linked_list.lo
libaxis2_util_la_OBJECTS = $(am_libaxis2_util_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/conftools/depcomp
@@ -200,7 +201,8 @@
string.c \
file_diff.c \
qname.c \
- array_list.c
+ array_list.c \
+ linked_list.c
libaxis2_util_la_LIBADD = $(LDFLAGS)
INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include \
@@ -281,6 +283,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_diff.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linked_list.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qname.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream.Plo@am__quote@
Modified: webservices/axis2/trunk/c/modules/util/test/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/test/Makefile.am?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/test/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/util/test/Makefile.am Tue Nov 15 19:44:41 2005
@@ -2,7 +2,14 @@
prglibdir=$(prefix)/lib/unit_test
prglib_LTLIBRARIES = libtest_util.la
AM_CPPFLAGS = $(CPPFLAGS) -g
-libtest_util_la_SOURCES = util_hash_test.c util_stream_test.c util_log_test.c util_error_test.c util_test.c util_array_list_test.c
+libtest_util_la_SOURCES = util_hash_test.c \
+ util_stream_test.c \
+ util_log_test.c \
+ util_error_test.c \
+ util_test.c \
+ util_array_list_test.c\
+ util_linked_list_test.c
+
include_HEADERS=$(top_builddir)/modules/util/test/*.h
libtest_util_la_LIBADD = $(LDFLAGS) $(top_builddir)/modules/util/src/libaxis2_util.la
Modified: webservices/axis2/trunk/c/modules/util/test/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/test/Makefile.in?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/test/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/util/test/Makefile.in Tue Nov 15 19:44:41 2005
@@ -71,7 +71,7 @@
$(top_builddir)/modules/util/src/libaxis2_util.la
am_libtest_util_la_OBJECTS = util_hash_test.lo util_stream_test.lo \
util_log_test.lo util_error_test.lo util_test.lo \
- util_array_list_test.lo
+ util_array_list_test.lo util_linked_list_test.lo
libtest_util_la_OBJECTS = $(am_libtest_util_la_OBJECTS)
prgbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(prgbin_PROGRAMS)
@@ -208,7 +208,14 @@
prglibdir = $(prefix)/lib/unit_test
prglib_LTLIBRARIES = libtest_util.la
AM_CPPFLAGS = $(CPPFLAGS) -g
-libtest_util_la_SOURCES = util_hash_test.c util_stream_test.c util_log_test.c util_error_test.c util_test.c util_array_list_test.c
+libtest_util_la_SOURCES = util_hash_test.c \
+ util_stream_test.c \
+ util_log_test.c \
+ util_error_test.c \
+ util_test.c \
+ util_array_list_test.c\
+ util_linked_list_test.c
+
include_HEADERS = $(top_builddir)/modules/util/test/*.h
libtest_util_la_LIBADD = $(LDFLAGS) $(top_builddir)/modules/util/src/libaxis2_util.la
INCLUDES = -I$(top_builddir)/include \
@@ -321,6 +328,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_array_list_test.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_error_test.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_hash_test.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_linked_list_test.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_log_test.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_stream_test.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util_test.Plo@am__quote@
Modified: webservices/axis2/trunk/c/modules/util/test/util_test.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/test/util_test.c?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/test/util_test.c (original)
+++ webservices/axis2/trunk/c/modules/util/test/util_test.c Tue Nov 15 19:44:41 2005
@@ -11,6 +11,7 @@
SUITE_ADD_TEST(suite, Testaxis2_log_write);
SUITE_ADD_TEST(suite, Testaxis2_hash_get);
SUITE_ADD_TEST(suite, Testaxis2_array_list_get);
+ SUITE_ADD_TEST(suite, Testaxis2_linked_list_get);
return suite;
}
Modified: webservices/axis2/trunk/c/modules/util/test/util_test.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/test/util_test.h?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/test/util_test.h (original)
+++ webservices/axis2/trunk/c/modules/util/test/util_test.h Tue Nov 15 19:44:41 2005
@@ -6,6 +6,7 @@
#include "util_log_test.h"
#include "util_hash_test.h"
#include "util_array_list_test.h"
+#include "util_linked_list_test.h"
#include "util_error_test.h"
CuSuite* axis2_utilGetSuite();
Modified: webservices/axis2/trunk/c/modules/wsdl/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/Makefile.am?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/Makefile.am Tue Nov 15 19:44:41 2005
@@ -2,7 +2,11 @@
AM_CPPFLAGS = $(CPPFLAGS)
libaxis2_wsdl_la_SOURCES = wsdl_operation.c \
wsdl_svc.c \
- wsdl_component.c
+ wsdl_component.c \
+ wsdl_feature.c \
+ wsdl_property.c \
+ wsdl_extensible_component.c \
+ wsdl_interface.c
libaxis2_wsdl_la_LIBADD = $(LDFLAGS)
INCLUDES = -I$(top_builddir)/include \
Modified: webservices/axis2/trunk/c/modules/wsdl/src/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/Makefile.in?rev=344866&r1=344865&r2=344866&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/wsdl/src/Makefile.in Tue Nov 15 19:44:41 2005
@@ -64,7 +64,8 @@
am__DEPENDENCIES_1 =
libaxis2_wsdl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libaxis2_wsdl_la_OBJECTS = wsdl_operation.lo wsdl_svc.lo \
- wsdl_component.lo
+ wsdl_component.lo wsdl_feature.lo wsdl_property.lo \
+ wsdl_extensible_component.lo wsdl_interface.lo
libaxis2_wsdl_la_OBJECTS = $(am_libaxis2_wsdl_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/conftools/depcomp
@@ -193,7 +194,11 @@
AM_CPPFLAGS = $(CPPFLAGS)
libaxis2_wsdl_la_SOURCES = wsdl_operation.c \
wsdl_svc.c \
- wsdl_component.c
+ wsdl_component.c \
+ wsdl_feature.c \
+ wsdl_property.c \
+ wsdl_extensible_component.c \
+ wsdl_interface.c
libaxis2_wsdl_la_LIBADD = $(LDFLAGS)
INCLUDES = -I$(top_builddir)/include \
@@ -270,7 +275,11 @@
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_component.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_extensible_component.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_feature.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_interface.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_operation.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_property.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wsdl_svc.Plo@am__quote@
.c.o:
Added: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_extensible_component.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_extensible_component.c?rev=344866&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_extensible_component.c (added)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_extensible_component.c Tue Nov 15 19:44:41 2005
@@ -0,0 +1,216 @@
+/*
+ * 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 <axis2_wsdl_extensible_component.h>
+
+/**
+ * @brief Wsdl extensible component struct impl
+ * Wsdl extensible component
+ */
+typedef struct axis2_wsdl_extensible_component_impl_s
+{
+ axis2_wsdl_extensible_component_t extensible_component;
+ /**
+ * Field features
+ */
+ axis2_linked_list_t *features;
+
+ /**
+ * Field properties
+ */
+ axis2_linked_list_t *properties;
+
+} axis2_wsdl_extensible_component_impl_t;
+
+#define AXIS2_INTF_TO_IMPL(extensible_component) \
+ ((axis2_wsdl_extensible_component_impl_t *)extensible_component)
+
+/************************* Function prototypes ********************************/
+
+axis2_status_t AXIS2_CALL
+ axis2_wsdl_extensible_component_free (
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_extensible_component_add_feature(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env,
+ axis2_wsdl_feature_t *wsdl_feature);
+
+axis2_linked_list_t *AXIS2_CALL
+axis2_wsdl_extensible_component_get_features(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_extensible_component_add_property(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env,
+ axis2_wsdl_property_t *wsdl_property);
+
+axis2_linked_list_t *AXIS2_CALL
+axis2_wsdl_extensible_component_get_properties(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env);
+
+/************************** End of function prototypes ************************/
+
+axis2_wsdl_extensible_component_t * AXIS2_CALL
+axis2_wsdl_extensible_component_create (axis2_env_t **env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ axis2_wsdl_extensible_component_impl_t *extensible_component_impl =
+ (axis2_wsdl_extensible_component_impl_t *) AXIS2_MALLOC((*env)->allocator,
+ sizeof(axis2_wsdl_extensible_component_impl_t));
+
+
+ if(NULL == extensible_component_impl)
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+
+ extensible_component_impl->extensible_component.ops =
+ AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_extensible_component_ops_t));
+ if(NULL == extensible_component_impl->extensible_component.ops)
+ {
+ AXIS2_FREE((*env)->allocator, extensible_component_impl);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ extensible_component_impl->extensible_component.ops->free =
+ axis2_wsdl_extensible_component_free;
+ extensible_component_impl->extensible_component.ops->add_feature =
+ axis2_wsdl_extensible_component_add_feature;
+ extensible_component_impl->extensible_component.ops->get_features =
+ axis2_wsdl_extensible_component_get_features;
+ extensible_component_impl->extensible_component.ops->add_property =
+ axis2_wsdl_extensible_component_add_property;
+ extensible_component_impl->extensible_component.ops->get_properties =
+ axis2_wsdl_extensible_component_get_properties;
+
+ extensible_component_impl->features = axis2_linked_list_create(env);
+ if(NULL == extensible_component_impl->features)
+ {
+ AXIS2_FREE((*env)->allocator, extensible_component_impl->extensible_component.ops);
+ AXIS2_FREE((*env)->allocator, extensible_component_impl);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ extensible_component_impl->properties = axis2_linked_list_create(env);
+ if(NULL == extensible_component_impl->properties)
+ {
+ AXIS2_LINKED_LIST_FREE(extensible_component_impl->features, env);
+ AXIS2_FREE((*env)->allocator, extensible_component_impl->
+ extensible_component.ops);
+ AXIS2_FREE((*env)->allocator, extensible_component_impl);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ return &(extensible_component_impl->extensible_component);
+}
+
+/***************************Function implementation****************************/
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_extensible_component_free (
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(extensible_component, env, AXIS2_FAILURE);
+ if(NULL != extensible_component->ops)
+ AXIS2_FREE((*env)->allocator, extensible_component->ops);
+
+ if(NULL != AXIS2_INTF_TO_IMPL(extensible_component)->features)
+ {
+ AXIS2_LINKED_LIST_FREE(AXIS2_INTF_TO_IMPL(extensible_component)->
+ features, env);
+ }
+
+ if(NULL != AXIS2_INTF_TO_IMPL(extensible_component)->properties)
+ {
+ AXIS2_LINKED_LIST_FREE(AXIS2_INTF_TO_IMPL(extensible_component)->
+ properties, env);
+ }
+
+ AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(extensible_component));
+
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_extensible_component_add_feature(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env,
+ axis2_wsdl_feature_t *wsdl_feature)
+{
+ AXIS2_FUNC_PARAM_CHECK(extensible_component, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, wsdl_feature, AXIS2_FAILURE);
+
+ if (NULL == AXIS2_INTF_TO_IMPL(extensible_component)->features)
+ {
+ AXIS2_INTF_TO_IMPL(extensible_component)->features =
+ axis2_linked_list_create(env);
+ }
+
+ return AXIS2_LINKED_LIST_ADD(AXIS2_INTF_TO_IMPL(extensible_component)->features,
+ env, wsdl_feature);
+}
+
+axis2_linked_list_t *AXIS2_CALL
+axis2_wsdl_extensible_component_get_features(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(extensible_component, env, NULL);
+
+ if (NULL == AXIS2_INTF_TO_IMPL(extensible_component)->features)
+ {
+ return axis2_linked_list_create(env);
+ }
+ return AXIS2_INTF_TO_IMPL(extensible_component)->features;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_extensible_component_add_property(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env,
+ axis2_wsdl_property_t *wsdl_property)
+{
+ AXIS2_FUNC_PARAM_CHECK(extensible_component, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, wsdl_property, AXIS2_FAILURE);
+ if (NULL == AXIS2_INTF_TO_IMPL(extensible_component)->properties)
+ {
+ AXIS2_INTF_TO_IMPL(extensible_component)->properties =
+ axis2_linked_list_create(env);
+ }
+
+ return AXIS2_LINKED_LIST_ADD(AXIS2_INTF_TO_IMPL(extensible_component)->
+ features, env, wsdl_property);
+}
+
+axis2_linked_list_t *AXIS2_CALL
+axis2_wsdl_extensible_component_get_properties(
+ axis2_wsdl_extensible_component_t *extensible_component,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(extensible_component, env, NULL);
+
+ if (NULL == AXIS2_INTF_TO_IMPL(extensible_component)->properties)
+ {
+ return axis2_linked_list_create(env);
+ }
+ return AXIS2_INTF_TO_IMPL(extensible_component)->properties;
+}
Added: webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c?rev=344866&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c (added)
+++ webservices/axis2/trunk/c/modules/wsdl/src/wsdl_feature.c Tue Nov 15 19:44:41 2005
@@ -0,0 +1,151 @@
+/*
+ * 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 <axis2_wsdl_feature.h>
+
+/**
+ * @brief Wsdl feature struct impl
+ * Wsdl features
+ */
+typedef struct axis2_wsdl_feature_impl_s
+{
+ axis2_wsdl_feature_t wsdl_feature;
+ axis2_char_t *name;
+ axis2_bool_t required;
+} axis2_wsdl_feature_impl_t;
+
+#define AXIS2_INTF_TO_IMPL(wsdl_feature) \
+ ((axis2_wsdl_feature_impl_t *)wsdl_feature)
+
+/************************* Function prototypes ********************************/
+
+axis2_status_t AXIS2_CALL
+ axis2_wsdl_feature_free (axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env);
+
+axis2_char_t *AXIS2_CALL
+axis2_wsdl_feature_get_name(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_feature_set_name(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env,
+ axis2_char_t *name);
+
+axis2_bool_t AXIS2_CALL
+axis2_wsdl_feature_is_required(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_feature_set_required(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env,
+ axis2_bool_t required);
+
+/************************** End of function prototypes ************************/
+
+axis2_wsdl_feature_t * AXIS2_CALL
+axis2_wsdl_feature_create (axis2_env_t **env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ axis2_wsdl_feature_impl_t *wsdl_feature_impl =
+ (axis2_wsdl_feature_impl_t *) AXIS2_MALLOC((*env)->allocator,
+ sizeof(axis2_wsdl_feature_impl_t));
+
+
+ if(NULL == wsdl_feature_impl)
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+
+ wsdl_feature_impl->wsdl_feature.ops =
+ AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_feature_ops_t));
+ if(NULL == wsdl_feature_impl->wsdl_feature.ops)
+ {
+ AXIS2_FREE((*env)->allocator, wsdl_feature_impl);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
+ }
+
+ wsdl_feature_impl->wsdl_feature.ops->free = axis2_wsdl_feature_free;
+ wsdl_feature_impl->wsdl_feature.ops->get_name =
+ axis2_wsdl_feature_get_name;
+ wsdl_feature_impl->wsdl_feature.ops->set_name =
+ axis2_wsdl_feature_set_name;
+ wsdl_feature_impl->wsdl_feature.ops->is_required =
+ axis2_wsdl_feature_is_required;
+ wsdl_feature_impl->wsdl_feature.ops->set_required =
+ axis2_wsdl_feature_set_required;
+
+ wsdl_feature_impl->name = NULL;
+ wsdl_feature_impl->required = AXIS2_FALSE;
+
+ return &(wsdl_feature_impl->wsdl_feature);
+}
+
+/***************************Function implementation****************************/
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_feature_free (axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, AXIS2_FAILURE);
+ if(NULL != wsdl_feature->ops)
+ AXIS2_FREE((*env)->allocator, wsdl_feature->ops);
+
+ if(NULL != AXIS2_INTF_TO_IMPL(wsdl_feature)->name)
+ {
+ AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_feature)->name);
+ }
+
+ AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(wsdl_feature));
+
+ return AXIS2_SUCCESS;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_wsdl_feature_get_name(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, NULL);
+ return AXIS2_INTF_TO_IMPL(wsdl_feature)->name;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_feature_set_name(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env,
+ axis2_char_t *name)
+{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, name, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(wsdl_feature)->name = name;
+ return AXIS2_SUCCESS;
+}
+
+axis2_bool_t AXIS2_CALL
+axis2_wsdl_feature_is_required(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, AXIS2_FALSE);
+ return AXIS2_INTF_TO_IMPL(wsdl_feature)->required;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_feature_set_required(axis2_wsdl_feature_t *wsdl_feature,
+ axis2_env_t **env,
+ axis2_bool_t required)
+{
+ AXIS2_FUNC_PARAM_CHECK(wsdl_feature, env, AXIS2_FAILURE);
+ AXIS2_INTF_TO_IMPL(wsdl_feature)->required = required;
+ return AXIS2_SUCCESS;
+}