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/10/24 04:16:29 UTC
svn commit: r327912 - in /webservices/axis2/trunk/c: include/
modules/core/description/src/ modules/core/engine/src/ modules/test/util/
modules/util/src/
Author: damitha
Date: Sun Oct 23 19:16:07 2005
New Revision: 327912
URL: http://svn.apache.org/viewcvs?rev=327912&view=rev
Log:
Fixed some bugs in string.h. Added file handling code to
stream. added two files to handle file diffs
Added:
webservices/axis2/trunk/c/include/axis2_file_diff.h
webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c
Modified:
webservices/axis2/trunk/c/include/axis2_core.h
webservices/axis2/trunk/c/include/axis2_description_service.h
webservices/axis2/trunk/c/include/axis2_description_servicegroup.h
webservices/axis2/trunk/c/include/axis2_engine_config.h
webservices/axis2/trunk/c/include/axis2_error.h
webservices/axis2/trunk/c/include/axis2_stream.h
webservices/axis2/trunk/c/include/axis2_string.h
webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c
webservices/axis2/trunk/c/modules/core/description/src/axis2_description_parameter.c
webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c
webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c
webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c
webservices/axis2/trunk/c/modules/test/util/test_util.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/src/axis2_environment.c
webservices/axis2/trunk/c/modules/util/src/axis2_stream.c
webservices/axis2/trunk/c/modules/util/src/axis2_string.c
Modified: webservices/axis2/trunk/c/include/axis2_core.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_core.h?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_core.h (original)
+++ webservices/axis2/trunk/c/include/axis2_core.h Sun Oct 23 19:16:07 2005
@@ -121,7 +121,13 @@
typedef struct axis2_engine_msg_receiver_s axis2_engine_msg_receiver_t;
typedef struct axis2_engine_msg_receiver_ops_s axis2_engine_msg_receiver_ops_t;
-
+/** @cond */
+struct axis2_engine_config_s;
+struct axis2_engine_config_ops_s;
+/** @endcond */
+typedef struct axis2_engine_config_s axis2_engine_config_t;
+typedef struct axis2_engine_config_ops_s axis2_engine_config_ops_t;
+
#ifdef __cplusplus
}
#endif
Modified: webservices/axis2/trunk/c/include/axis2_description_service.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_service.h?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_service.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_service.h Sun Oct 23 19:16:07 2005
@@ -87,60 +87,65 @@
#define axis2_description_service_get_parent(env, service_desc) \
(axis2_description_service_get_ops(env, service_desc)->get_parent \
(env, service_desc));
+
+#define axis2_description_service_get_name(env, service_desc) \
+ (axis2_description_service_get_ops(env, service_desc)->get_name(env \
+ ,service_desc));
/**************************** End of function macros **************************/
/**************************** Function pointers *******************************/
- typedef axis2_status_t (*axis2_description_service_free_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc);
-
- typedef axis2_status_t (*axis2_description_service_add_param_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc,
- axis2_description_param_t * param);
-
- typedef axis2_description_param_t
- *(*axis2_description_service_get_param_t) (axis2_environment_t * env,
- axis2_description_service_t
- * service_desc,
- const axis2_char_t * name);
-
- typedef axis2_hash_t *(*axis2_description_service_get_params_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc);
-
- typedef axis2_status_t (*axis2_description_service_add_operation_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc,
- axis2_description_operation_t * operation_desc);
-
- typedef axis2_description_operation_t
- *(*axis2_description_service_get_operation_with_qname_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc,
- axis2_qname_t * operation_name);
-
- typedef axis2_description_operation_t
- * (*axis2_description_service_get_operation_with_name_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc,
- const axis2_char_t * operation_name);
-
- typedef axis2_hash_t *(*axis2_description_service_get_operations_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc);
-
- typedef axis2_status_t (*axis2_description_service_set_parent_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc,
- axis2_description_servicegroup_t * servicegroup_desc);
-
- typedef axis2_description_servicegroup_t
- * (*axis2_description_service_get_parent_t)
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc);
+typedef axis2_status_t (*axis2_description_service_free_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc);
+
+typedef axis2_status_t (*axis2_description_service_add_param_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc,
+ axis2_description_param_t * param);
+
+typedef axis2_description_param_t
+ *(*axis2_description_service_get_param_t) (axis2_environment_t * env,
+ axis2_description_service_t *service_desc,const axis2_char_t *name);
+
+typedef axis2_hash_t *(*axis2_description_service_get_params_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc);
+
+typedef axis2_status_t (*axis2_description_service_add_operation_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc,
+ axis2_description_operation_t * operation_desc);
+
+typedef axis2_description_operation_t
+ *(*axis2_description_service_get_operation_with_qname_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc,
+ axis2_qname_t * operation_name);
+
+typedef axis2_description_operation_t
+ * (*axis2_description_service_get_operation_with_name_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc,
+ const axis2_char_t * operation_name);
+
+typedef axis2_hash_t *(*axis2_description_service_get_operations_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc);
+
+typedef axis2_status_t (*axis2_description_service_set_parent_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc,
+ axis2_description_servicegroup_t * servicegroup_desc);
+
+typedef axis2_description_servicegroup_t
+ * (*axis2_description_service_get_parent_t)
+ (axis2_environment_t * env,
+ axis2_description_service_t * service_desc);
+
+typedef axis2_qname_t *(*axis2_description_service_get_name_t)
+ (axis2_environment_t *env, axis2_description_service_t *service_desc);
/************************ End function pointers *******************************/
@@ -148,46 +153,47 @@
* @brief operations for the axis2_description_service_t
* This contain all the operations for axis2_description_service struct
*/
- struct axis2_description_service_ops_s
- {
- axis2_description_service_free_t free;
+struct axis2_description_service_ops_s
+{
+ axis2_description_service_free_t free;
- axis2_description_service_add_operation_t add_operation;
+ axis2_description_service_add_operation_t add_operation;
- axis2_description_service_add_param_t add_param;
+ axis2_description_service_add_param_t add_param;
- axis2_description_service_get_param_t get_param;
+ axis2_description_service_get_param_t get_param;
- axis2_description_service_get_params_t get_params;
+ axis2_description_service_get_params_t get_params;
- axis2_description_service_get_operation_with_qname_t
- get_operation_with_qname;
+ axis2_description_service_get_operation_with_qname_t
+ get_operation_with_qname;
- axis2_description_service_get_operation_with_name_t
- get_operation_with_name;
+ axis2_description_service_get_operation_with_name_t
+ get_operation_with_name;
- axis2_description_service_get_operations_t get_operations;
+ axis2_description_service_get_operations_t get_operations;
- axis2_description_service_set_parent_t set_parent;
+ axis2_description_service_set_parent_t set_parent;
- axis2_description_service_get_parent_t get_parent;
+ axis2_description_service_get_parent_t get_parent;
+
+ axis2_description_service_get_name_t get_name;
- };
+};
/** To get the operation struct for axis_description_service_t call this
* function
* @return operation struct for service
*/
- axis2_description_service_ops_t *axis2_description_service_get_ops
- (axis2_environment_t * env,
- axis2_description_service_t * service_desc);
+axis2_description_service_ops_t *axis2_description_service_get_ops
+ (axis2_environment_t *env, axis2_description_service_t *service_desc);
/** Create a service with qualified name
* @param qualified name
* @return service struct
*/
- axis2_description_service_t *axis2_description_service_create_with_qname
- (axis2_environment_t * env, axis2_qname_t * qname);
+axis2_description_service_t *axis2_description_service_create_with_qname
+ (axis2_environment_t *env, axis2_qname_t *qname);
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/include/axis2_description_servicegroup.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_servicegroup.h?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_servicegroup.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_servicegroup.h Sun Oct 23 19:16:07 2005
@@ -46,36 +46,88 @@
/**************************** Start of function macros ************************/
+#define axis2_description_servicegroup_free(env, servicegroup_desc) \
+ (axis2_description_servicegroup_get_ops(env, \
+ servicegroup_desc)->free (env, servicegroup_desc));
+
+#define axis2_description_servicegroup_set_name(env, servicegroup_desc \
+ , servicegroup_name) (axis2_description_servicegroup_get_ops(env, \
+ servicegroup_desc)->set_name (env, servicegroup_desc, servicegroup_name));
+
+#define axis2_description_servicegroup_get_name(env, servicegroup_desc) \
+ (axis2_description_servicegroup_get_ops(env, \
+ servicegroup_desc)->get_name(env, servicegroup_desc));
+
#define axis2_description_servicegroup_add_service(env, servicegroup_desc \
- , service_desc) (axis2_description_service_get_ops(env, \
+ , service_desc) (axis2_description_servicegroup_get_ops(env, \
servicegroup_desc)->get_param (env, servicegroup_desc, service_desc));
+#define axis2_description_servicegroup_get_service(env, servicegroup_desc \
+ , service_desc) ((axis2_description_servicegroup_get_ops(env, \
+ servicegroup_desc)->get_service(env, servicegroup_desc, service_desc));
+
/**************************** End of function macros **************************/
/**************************** Function pointers *******************************/
+/** Deallocate memory
+ * @return status code
+ */
+typedef axis2_status_t (*axis2_description_servicegroup_free_t)
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc);
+
+/** Set name of the service group_member
+ * @param servicegroup_name
+ * @return status_code
+ */
+typedef axis2_status_t (*axis2_description_servicegroup_set_name_t)
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc
+ , axis2_char_t *servicegroup_name);
+
+/** get the service group name
+ * @return service group name
+ */
+typedef axis2_char_t *(*axis2_description_servicegroup_get_name_t)
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc);
+
/** Add a service to the serivce group
* @param service to be added
* @return status code
*/
- typedef axis2_status_t (*axis2_description_servicegroup_add_service_t)
- (axis2_environment_t * env,
- axis2_description_servicegroup_t * servicegroup_desc,
- axis2_description_service_t * service_desc);
+typedef axis2_status_t (*axis2_description_servicegroup_add_service_t)
+ (axis2_environment_t * env,
+ axis2_description_servicegroup_t * servicegroup_desc,
+ axis2_description_service_t * service_desc);
+
+/** Get the service from service group_member
+ * @param service_name
+ * @return service description
+ */
+typedef axis2_description_service_t
+ *(*axis2_description_servicegroup_get_service_t)
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc
+ , const axis2_qname_t* service_name);
/*************************** End of function pointers *************************/
- struct axis2_description_servicegroup_ops_s
- {
- axis2_description_servicegroup_add_service_t add_service;
- };
-
- axis2_description_servicegroup_ops_t
- *axis2_description_servicegroup_get_ops (axis2_environment_t * env,
- axis2_description_servicegroup_t
- * servicegroup_desc);
+struct axis2_description_servicegroup_ops_s
+{
+ axis2_description_servicegroup_free_t free;
+ axis2_description_servicegroup_set_name_t set_name;
+ axis2_description_servicegroup_get_name_t get_name;
+ axis2_description_servicegroup_add_service_t add_service;
+ axis2_description_servicegroup_get_service_t get_service;
+};
+
+axis2_description_servicegroup_ops_t *axis2_description_servicegroup_get_ops
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc);
- axis2_description_servicegroup_t *axis2_description_servicegroup_create
- (axis2_environment_t * env);
+axis2_description_servicegroup_t *axis2_description_servicegroup_create
+ (axis2_environment_t *env);
/** @} */
#ifdef __cplusplus
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=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_engine_config.h (original)
+++ webservices/axis2/trunk/c/include/axis2_engine_config.h Sun Oct 23 19:16:07 2005
@@ -39,10 +39,45 @@
/** @} */
/**
- * @defgroup axis2_context_ CONTEXT engine_config
+ * @defgroup axis2_engine_ ENGINE engine_config
* @ingroup axis2_engine_config
* @{
*/
+
+/************************* Start of function macros ***************************/
+
+#define axis2_engine_config_free(env, engine_config) (axis2_engine_get_ops(env, \
+ engine_config)->free(env, engine_config);
+
+#define axis2_engine_config_add_service_group(env, engine_config, \
+ service_group_desc) (axis2_engine_config_get_ops(env, \
+ engine_config)->add_service_group (env, engine_config, service_group_desc));
+
+#define axis2_engine_config_get_service(env, engine_config, service_name) \
+ (axis2_engine_config_get_ops(env, engine_config)->get_service(env, \
+ engine_config, service_name));
+
+#define axis2_engine_config_remove_service(env, engine_config, service_name) \
+ (axis2_engine_config_get_ops(env, engine_config)->remove_service(env, \
+ engine_config, service_name));
+
+/************************* End of function macros *****************************/
+/************************* Start of function pointers *************************/
+
+typedef axis2_status_t (*axis2_engine_config_free_t)(axis2_environment_t *env,
+ axis2_engine_config_t *engine_config);
+
+typedef axis2_status_t (*axis2_engine_config_add_service_group_t)
+ (axis2_environment_t *env, axis2_engine_config_t *engine_config
+ , axis2_description_servicegroup_t *service_group_desc);
+
+typedef axis2_description_service_t *(*axis2_engine_config_get_service_t)(
+ axis2_engine_config_t *engine_config, const axis2_char_t* service_name);
+
+typedef axis2_status_t (*axis2_engine_config_remove_service_t)
+ (axis2_engine_config_t *engine_config, const axis2_char_t *name);
+
+/************************* End of function pointers ***************************/
/**
* The palce where all the global states of Axis is accessed.
@@ -52,29 +87,28 @@
*/
/**
- * @struct axis2_engine_config
- * @brief CONTEXT engine_config operations
- * This holds the information about engine.
+ * @struct axis2_engine_config_ops
+ * @brief ENGINE engine_config operations
+ * This holds the operations of the engine axis2_engine_config.
*/
-typedef struct
+struct axis2_engine_config_ops_s
{
- axis2_description_param_include_t * param_include;
- axis2_qname_t *name;
- axis2_hash_t *service_groups;
-
-} axis2_engine_config_t;
-
-void axis2_engine_config_add_service_group(axis2_engine_config_t *engine_config
- , axis2_description_servicegroup_t *service_group_desc);
-
-void axis2_engine_config_add_service(axis2_engine_config_t *engine_config,
- axis2_description_service_t *service_desc);
+ axis2_engine_config_free_t free;
+ axis2_engine_config_add_service_group_t add_service_group;
+ axis2_engine_config_get_service_t get_service;
+ axis2_engine_config_remove_service_t remove_service;
+};
-void axis2_engine_config_get_service(axis2_engine_config_t *engine_config,
- char* service_name);
+/** function to get the operations consturct for axis2_engine_config_create
+ * @return operation struct
+ */
+axis2_engine_config_ops_t *axis2_engine_config_get_ops(axis2_environment_t *env,
+ axis2_engine_config_t *config);
-void axis2_engine_config_remove_service(axis2_engine_config_t *engine_config,
- char *name);
+/** create axis_engine_config struct
+ * @return axis_engine_config struct
+ */
+axis2_engine_config_t *axis2_engine_config_create(axis2_environment_t *env);
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/include/axis2_error.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_error.h?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_error.h (original)
+++ webservices/axis2/trunk/c/include/axis2_error.h Sun Oct 23 19:16:07 2005
@@ -115,7 +115,9 @@
/** Undefined namespace used */
AXIS2_ERROR_INVALID_DOCUMENT_STATE_UNDEFINED_NAMESPACE,
/** Trying to release unallocated memory */
- AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED
+ AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED,
+ /** Struct is not properly initialized */
+ AXIS2_ERROR_STRUCT_NOT_INITIALIZED
} axis2_error_codes_t;
/** @} */
Added: webservices/axis2/trunk/c/include/axis2_file_diff.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_file_diff.h?rev=327912&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_file_diff.h (added)
+++ webservices/axis2/trunk/c/include/axis2_file_diff.h Sun Oct 23 19:16:07 2005
@@ -0,0 +1,44 @@
+/*
+ * 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_FILE_DIFF_H
+#define AXIS2_FILE_DIFF_H
+
+/**
+ * @file axis2_file_diff.h
+ * @brief to check whether two files are same.
+ * Spaces and new lines are ignored
+ */
+
+
+#include <axis2_environment.h>
+#include <axis2_allocator.h>
+#include <axis2_string.h>
+#include <axis2_stream.h>
+#include <axis2_error.h>
+
+/**************************** Function headers ********************************/
+
+/** Test for two files to see whether they are equal. White spaces and new lines
+ * are ignored.
+ * @param file name
+ * @param file name
+ * @return status code
+ */
+axis2_status_t axis2_file_diff(axis2_environment_t *env
+ , axis2_char_t *expected_file_name, axis2_char_t *actual_file_name);
+
+#endif /* AXIS2_FILE_DIFF_H */
Modified: webservices/axis2/trunk/c/include/axis2_stream.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_stream.h?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_stream.h (original)
+++ webservices/axis2/trunk/c/include/axis2_stream.h Sun Oct 23 19:16:07 2005
@@ -46,14 +46,50 @@
* @param size size of the buffer
* @return satus of the operation. AXIS2_SUCCESS on success else AXIS2_FAILURE
*/
- AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_read) (void *buffer, size_t count);
- /**
+ AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_read) (void *buffer
+ , size_t count);
+ /**
* writes into stream
* @param buffer buffer to be written
* @param size size of the buffer
* @return satus of the operation. AXIS2_SUCCESS on success else AXIS2_FAILURE
*/
- AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_write) (const void *buffer, size_t count);
+ AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_write)
+ (const void *buffer, size_t count);
+
+ /**
+ * open a file for read according to the file options given
+ * @param file_name file to be opened
+ * @param options file options given.
+ * @return status code
+ */
+ AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_file_open)
+ (const char *file_name, const char *options);
+
+ /**
+ * close a file
+ * @param file_ptr file pointer of the file need to be closed
+ * @return status code
+ */
+ AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_file_close)
+ (void *file_ptr);
+
+ /** reads a once character from a file
+ * @param file_ptr pointer to the file to be read from
+ * @return char read
+ */
+ AXIS2_DECLARE(axis2_char_t) (*axis2_stream_ops_file_get_char)
+ (void *file_ptr);
+
+ /** write a previously read character back to the file stream
+ * @param chr charater to write back
+ * @param file_ptr file pointer from which chr is read previously
+ * and need to be written back to
+ * @return status code
+ */
+ AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_file_unget_char)
+ (const char chr, void *file_ptr);
+
} axis2_stream_ops_t;
/**
@@ -65,6 +101,8 @@
{
/** Stream related operations */
struct axis2_stream_ops *ops;
+ void *file;
+ int axis2_eof;
} axis2_stream_t;
/**
@@ -76,8 +114,18 @@
AXIS2_DECLARE(axis2_stream_t *) axis2_stream_create (axis2_allocator_t * allocator,
axis2_stream_ops_t * operations);
-#define axis2_stream_read(stream, buffer, count) ((stream)->ops->axis2_stream_ops_read(buffer, count))
-#define axis2_stream_write(stream, buffer, count) ((stream)->ops->axis2_stream_ops_write(buffer, count))
+#define axis2_stream_read(stream, buffer, count) \
+ ((stream)->ops->axis2_stream_ops_read(buffer, count))
+#define axis2_stream_write(stream, buffer, count) \
+ ((stream)->ops->axis2_stream_ops_write(buffer, count))
+#define axis2_stream_file_open(stream, file_name, options) \
+ ((stream)->ops->axis2_stream_ops_file_open(file_name, options))
+#define axis2_stream_file_close(stream, file_ptr) \
+ ((stream)->ops->axis2_stream_ops_file_close(file_ptr))
+#define axis2_stream_file_get_char(stream, file_ptr) \
+ ((stream)->ops->axis2_stream_ops_file_get_char(file_ptr))
+#define axis2_stream_file_unget_char(stream, chr, file_ptr) \
+ ((stream)->ops->axis2_stream_ops_file_unget_char(chr, file_ptr))
/** @} */
Modified: webservices/axis2/trunk/c/include/axis2_string.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_string.h?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_string.h (original)
+++ webservices/axis2/trunk/c/include/axis2_string.h Sun Oct 23 19:16:07 2005
@@ -18,6 +18,7 @@
#define AXIS2_STRING_H
#include <axis2_defines.h>
+#include <axis2_error.h>
#include <axis2_allocator.h>
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c Sun Oct 23 19:16:07 2005
@@ -169,8 +169,9 @@
axis2_status_t axis2_description_operation_ops_free (axis2_environment_t *env
, axis2_description_operation_t *operation_desc)
{
- if(operation_desc){
- free(operation_desc);
+ if(operation_desc)
+ {
+ axis2_free(env->allocator, operation_desc);
return AXIS2_SUCCESS;
}
return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_parameter.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_parameter.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_parameter.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_parameter.c Sun Oct 23 19:16:07 2005
@@ -164,9 +164,11 @@
,axis2_description_param_t * param)
{
if(param)
- free(param);
-
- return AXIS2_SUCCESS;
+ {
+ axis2_free(env->allocator, param);
+ return AXIS2_SUCCESS;
+ }
+ return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
}
axis2_status_t axis2_description_param_ops_set_name (axis2_environment_t *env
Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c Sun Oct 23 19:16:07 2005
@@ -11,7 +11,7 @@
axis2_description_param_include_t *param_include;
axis2_description_servicegroup_t *parent;
axis2_hash_t *wasaction_opeartionmap;
- axis2_qname_t *qname;
+ axis2_qname_t *name;
};
@@ -55,6 +55,9 @@
axis2_description_servicegroup_t *axis2_description_service_ops_get_parent
(axis2_environment_t *env, axis2_description_service_t *service_desc);
+axis2_qname_t *axis2_description_service_ops_get_name
+ (axis2_environment_t *env, axis2_description_service_t *service_desc);
+
/************************* End of function headers ***************************/
axis2_description_service_ops_t * axis2_description_service_get_ops
@@ -119,7 +122,7 @@
env->error->errorno = AXIS2_ERROR_NO_MEMORY;
return NULL;
}
- service_desc->qname = NULL;
+ service_desc->name = NULL;
return service_desc;
}
@@ -134,7 +137,7 @@
env->error->errorno = AXIS2_ERROR_NO_MEMORY;
return NULL;
}
- service_desc->qname = axis2_strdup(env->string, qname);
+ service_desc->name = axis2_strdup(env->string, qname);
return service_desc;
}
@@ -145,8 +148,11 @@
(axis2_environment_t *env, axis2_description_service_t *service_desc)
{
if(service_desc)
+ {
axis2_free(env->allocator, service_desc);
- return AXIS2_SUCCESS;
+ return AXIS2_SUCCESS;
+ }
+ return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
}
axis2_status_t axis2_description_service_ops_add_param(axis2_environment_t *env
@@ -294,4 +300,15 @@
return NULL;
}
return service_desc->parent;
+}
+
+axis2_qname_t *axis2_description_service_ops_get_name
+ (axis2_environment_t *env, axis2_description_service_t *service_desc)
+{
+ if(!env || !service_desc)
+ {
+ env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ return NULL;
+ }
+ return service_desc->name;
}
Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c Sun Oct 23 19:16:07 2005
@@ -22,40 +22,163 @@
*/
struct axis2_description_servicegroup_s
{
+ axis2_description_servicegroup_ops_t *ops;
axis2_description_param_include_t *param_include;
- axis2_qname_t *servicegroup_name;
+ axis2_char_t *servicegroup_name;
axis2_hash_t *services;
};
/***************************** Function headers *******************************/
+axis2_status_t axis2_description_servicegroup_ops_free(axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc);
+
+axis2_status_t axis2_description_servicegroup_ops_set_name
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc
+ , axis2_char_t *name);
+
+axis2_char_t *axis2_description_servicegroup_ops_get_name
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc);
+
axis2_status_t axis2_description_servicegroup_ops_add_service
(axis2_environment_t *env
, axis2_description_servicegroup_t* servicegroup_desc
, axis2_description_service_t *service_desc);
+axis2_description_service_t *axis2_description_servicegroup_ops_get_service
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc
+ , const axis2_qname_t* service_name);
+
/***************************** End of function headers ************************/
axis2_description_servicegroup_ops_t *axis2_description_servicegroup_get_ops
(axis2_environment_t *env
, axis2_description_servicegroup_t *servicegroup_desc)
{
- return NULL;
+ if(!env || !servicegroup_desc)
+ {
+ env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ return NULL;
+ }
+ return servicegroup_desc->ops;
}
axis2_description_servicegroup_t *axis2_description_servicegroup_create
(axis2_environment_t *env)
{
- return NULL;
+ axis2_description_servicegroup_t *servicegroup_desc
+ = (axis2_description_servicegroup_t *)
+ axis2_malloc (env->allocator, sizeof(axis2_description_servicegroup_t));
+ if(!servicegroup_desc)
+ {
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+ axis2_description_servicegroup_ops_t *ops
+ = (axis2_description_servicegroup_ops_t *)
+ axis2_malloc (env->allocator, sizeof(axis2_description_servicegroup_ops_t));
+ if(!ops)
+ {
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+ ops->free = axis2_description_servicegroup_ops_free;
+ ops->set_name = axis2_description_servicegroup_ops_set_name;
+ ops->get_name = axis2_description_servicegroup_ops_get_name;
+ ops->add_service = axis2_description_servicegroup_ops_add_service;
+ ops->get_service = axis2_description_servicegroup_ops_get_service;
+
+ servicegroup_desc->ops = ops;
+
+ axis2_description_param_include_t *param_include
+ = (axis2_description_param_include_t *)
+ axis2_description_param_include_create(env);
+ if(!param_include)
+ {
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+
+ servicegroup_desc->param_include = param_include;
+
+ /*servicegroup_desc->parent = NULL;*/
+
+ servicegroup_desc->services = axis2_hash_make (env);
+ if(!servicegroup_desc->services)
+ {
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+ servicegroup_desc->servicegroup_name = NULL;
+
+ return servicegroup_desc;
}
/******************************************************************************/
+axis2_status_t axis2_description_servicegroup_ops_free(axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc)
+{
+ if(!env || !servicegroup_desc)
+ return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ axis2_free(env->allocator, servicegroup_desc);
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t axis2_description_servicegroup_ops_set_name
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc
+ , axis2_char_t *name)
+{
+ if(!env || !servicegroup_desc)
+ return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ axis2_char_t *tempname = axis2_strdup(env->string, name);
+ if(!tempname) return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ servicegroup_desc->servicegroup_name = name;
+ return AXIS2_SUCCESS;
+}
+
+axis2_char_t *axis2_description_servicegroup_ops_get_name
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc)
+{
+ if(!servicegroup_desc)
+ {
+ env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ return NULL;
+ }
+ return servicegroup_desc->servicegroup_name;
+}
+
axis2_status_t axis2_description_servicegroup_ops_add_service
(axis2_environment_t *env
, axis2_description_servicegroup_t *servicegroup_desc
, axis2_description_service_t *service_desc)
{
- return 0;
+ if(!env || servicegroup_desc || service_desc)
+ return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+
+ axis2_qname_t *tempname = axis2_description_service_get_name(env, service_desc);
+ axis2_hash_set (servicegroup_desc->services, tempname->localpart
+ , AXIS2_HASH_KEY_STRING, service_desc);
+ return AXIS2_SUCCESS;
+}
+
+axis2_description_service_t *axis2_description_servicegroup_ops_get_service
+ (axis2_environment_t *env
+ , axis2_description_servicegroup_t *servicegroup_desc
+ , const axis2_qname_t* service_name)
+{
+ if(!servicegroup_desc || ! service_name)
+ {
+ env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ return NULL;
+ }
+ return (axis2_description_service_t *) (axis2_hash_get
+ (servicegroup_desc->services, service_name->localpart
+ , AXIS2_HASH_KEY_STRING));
}
Modified: webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c Sun Oct 23 19:16:07 2005
@@ -15,3 +15,160 @@
*/
#include <axis2_engine_config.h>
+
+/**
+ * @struct axis2_engine_config
+ * @brief ENGINE engine_config operations
+ * This holds the information about engine.
+ */
+struct axis2_engine_config_s
+{
+ axis2_engine_config_ops_t *ops;
+ axis2_description_param_include_t * param_include;
+ axis2_hash_t *service_groups;
+};
+
+/***************************** Function prototypes ****************************/
+
+axis2_status_t axis2_engine_config_ops_free (axis2_environment_t *env
+ ,axis2_engine_config_t * engine_config);
+
+axis2_status_t axis2_engine_config_ops_add_service_group
+ (axis2_environment_t *env, axis2_engine_config_t *engine_config
+ , axis2_description_servicegroup_t *service_group_desc);
+
+axis2_description_servicegroup_t *axis2_engine_config_ops_get_servicegroup(
+ axis2_environment_t *env, axis2_engine_config_t *engine_config
+ , const axis2_char_t* servicegroup_name);
+
+axis2_description_service_t *axis2_engine_config_ops_get_service(
+ axis2_engine_config_t *engine_config, const axis2_char_t* service_name);
+
+axis2_status_t axis2_engine_config_ops_remove_service
+ (axis2_engine_config_t *engine_config, const axis2_char_t *name);
+
+/************************** End of function prototypes ************************/
+
+axis2_engine_config_ops_t *axis2_engine_config_get_ops
+ (axis2_environment_t *env, axis2_engine_config_t *engine_config)
+{
+ if(!engine_config)
+ {
+ /* set error code*/
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+ return (axis2_engine_config_ops_t *) engine_config->ops;
+}
+
+
+axis2_engine_config_t *axis2_engine_config_create
+ (axis2_environment_t *env)
+{
+ axis2_engine_config_t *engine_config
+ = (axis2_engine_config_t *) axis2_malloc (env->allocator
+ , sizeof(axis2_engine_config_t));
+ if(!engine_config)
+ {
+ /* set the error code*/
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+ axis2_engine_config_ops_t *ops
+ = (axis2_engine_config_ops_t *) axis2_malloc (env->allocator
+ , sizeof(axis2_engine_config_ops_t));
+ if(!ops)
+ {
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ axis2_free(env->allocator, engine_config);
+ return NULL;
+ }
+ ops->free = axis2_engine_config_ops_free;
+ ops->add_service_group = axis2_engine_config_ops_add_service_group;
+ ops->get_service = axis2_engine_config_ops_get_service;
+ ops->remove_service = axis2_engine_config_ops_remove_service;
+
+ engine_config->ops = ops;
+
+ axis2_description_param_include_t *param_include
+ = (axis2_description_param_include_t *)
+ axis2_description_param_include_create(env);
+ if(!param_include)
+ {
+ env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+ return NULL;
+ }
+
+ engine_config->param_include = param_include;
+
+ engine_config->service_groups = NULL;
+
+ return engine_config;
+}
+
+/**********************Start of operation impls********************************/
+
+axis2_status_t axis2_engine_config_ops_free (axis2_environment_t *env
+ ,axis2_engine_config_t * engine_config)
+{
+ if(engine_config)
+ {
+ axis2_free(env->allocator, engine_config);
+ }
+ return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
+}
+
+axis2_status_t axis2_engine_config_ops_add_service_group
+ (axis2_environment_t *env, axis2_engine_config_t *engine_config
+ , axis2_description_servicegroup_t *servicegroup_desc)
+{
+ if(!engine_config || !servicegroup_desc)
+ {
+ return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ }
+
+ axis2_char_t *tempname = axis2_description_servicegroup_get_name(env
+ , servicegroup_desc);
+ axis2_hash_set (engine_config->service_groups
+ , tempname
+ , AXIS2_HASH_KEY_STRING, servicegroup_desc);
+ return AXIS2_SUCCESS;
+}
+
+axis2_description_servicegroup_t *axis2_engine_config_ops_get_servicegroup(
+ axis2_environment_t *env, axis2_engine_config_t *engine_config
+ , const axis2_char_t* servicegroup_name)
+{
+ if(!engine_config)
+ {
+ env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ return NULL;
+ }
+ axis2_char_t *tempname = axis2_strdup(env->string, servicegroup_name);
+ if(!tempname)
+ {
+ env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ return NULL;
+ }
+ return (axis2_description_servicegroup_t *) (axis2_hash_get
+ (engine_config->service_groups, servicegroup_name
+ , AXIS2_HASH_KEY_STRING));
+}
+
+axis2_description_service_t *axis2_engine_config_ops_add_service(
+ axis2_engine_config_t *engine_config, const axis2_char_t* service_name)
+{
+
+}
+
+axis2_description_service_t *axis2_engine_config_ops_get_service(
+ axis2_engine_config_t *engine_config, const axis2_char_t* service_name)
+{
+
+}
+
+axis2_status_t axis2_engine_config_ops_remove_service
+ (axis2_engine_config_t *engine_config, const axis2_char_t *name)
+{
+
+}
Modified: webservices/axis2/trunk/c/modules/test/util/test_util.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/test/util/test_util.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/test/util/test_util.c (original)
+++ webservices/axis2/trunk/c/modules/test/util/test_util.c Sun Oct 23 19:16:07 2005
@@ -17,21 +17,23 @@
#include <stdio.h>
#include <axis2_hash.h>
#include <axis2_string.h>
+#include <axis2_file_diff.h>
typedef struct a
{
- char *value;
+ axis2_char_t *value;
} a;
-
-
-int test_hash_get ()
+axis2_environment_t *test_init()
{
- axis2_allocator_t *allocator = axis2_allocator_init (NULL);
- axis2_string_t *string = axis2_allocator_init (NULL);
- axis2_environment_t *environment =
- axis2_environment_create (allocator, NULL, NULL, NULL, string);
+ axis2_allocator_t *allocator = axis2_allocator_init (NULL);
+ axis2_environment_t *env =
+ axis2_environment_create (allocator, NULL, NULL, NULL, NULL);
+ return env;
+}
+int test_hash_get (axis2_environment_t *environment)
+{
axis2_hash_t *ht;
a *a1, *a2, *a3, *a4;
@@ -54,7 +56,6 @@
a3->value = axis2_strdup(environment->string, "value3");
a4->value = axis2_strdup(environment->string, "value4");
-
ht = axis2_hash_make (environment);
axis2_hash_set (ht, key1, AXIS2_HASH_KEY_STRING, a1);
@@ -85,7 +86,20 @@
return 0;
}
+/**
+ * This test is intended to test whether given two files are equal or not.
+ * Spaces and new lines are ignored in comparing
+ */
+int test_file_diff(axis2_environment_t *env)
+{
+ axis2_char_t *expected_file_name = axis2_strdup(env->string, "expected");
+ axis2_char_t *actual_file_name = axis2_strdup(env->string, "actual");
+ axis2_file_diff(env, expected_file_name, actual_file_name);
+}
+
int main(void)
{
- test_hash_get();
+ axis2_environment_t *env = test_init();
+ test_file_diff(env);
+ test_hash_get(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=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/util/src/Makefile.am Sun Oct 23 19:16:07 2005
@@ -6,7 +6,8 @@
axis2_error.c \
axis2_stream.c \
axis2_log.c \
- axis2_string.c
+ axis2_string.c \
+ axis2_file_diff.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=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/util/src/Makefile.in Sun Oct 23 19:16:07 2005
@@ -65,7 +65,7 @@
libaxis2_util_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libaxis2_util_la_OBJECTS = axis2_hash.lo axis2_allocator.lo \
axis2_environment.lo axis2_error.lo axis2_stream.lo \
- axis2_log.lo axis2_string.lo
+ axis2_log.lo axis2_string.lo axis2_file_diff.lo
libaxis2_util_la_OBJECTS = $(am_libaxis2_util_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/conftools/depcomp
@@ -199,7 +199,8 @@
axis2_error.c \
axis2_stream.c \
axis2_log.c \
- axis2_string.c
+ axis2_string.c \
+ axis2_file_diff.c
libaxis2_util_la_LIBADD = $(LDFLAGS)
INCLUDES = -I$(top_builddir)/include -I${CUTEST_HOME}/include
@@ -275,6 +276,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_allocator.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_environment.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_error.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_file_diff.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_hash.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_log.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_stream.Plo@am__quote@
Modified: webservices/axis2/trunk/c/modules/util/src/axis2_environment.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_environment.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_environment.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_environment.c Sun Oct 23 19:16:07 2005
@@ -39,10 +39,7 @@
else
environment->error = error;
- if (!stream)
- environment->stream = axis2_stream_create (allocator, NULL);
- else
- environment->stream = stream;
+ environment->stream = axis2_stream_create (allocator, NULL);
if (!log)
environment->log = axis2_log_create (allocator, NULL);
Added: webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c?rev=327912&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c (added)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c Sun Oct 23 19:16:07 2005
@@ -0,0 +1,138 @@
+/*
+ * 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_file_diff.h>
+
+void *expected_file, *actual_file; /* File pointers */
+
+/* private function header */
+axis2_status_t axis2_file_diff_clean(axis2_environment_t *env, int);
+
+axis2_status_t axis2_file_diff(axis2_environment_t *env
+ , axis2_char_t* expected_file_name, axis2_char_t* actual_file_name)
+{
+ expected_file = axis2_stream_file_open (env->stream
+ , expected_file_name, "rt");
+
+ actual_file = axis2_stream_file_open (env->stream, actual_file_name
+ , "rt");
+
+ if( expected_file == NULL || actual_file == NULL ) {
+ printf("Unable to open one of datafile %s, %s\n", expected_file_name
+ , actual_file_name );
+ axis2_file_diff_clean(env, 1 );
+ }
+
+ int ch1, ch2;
+ axis2_char_t *buffer1, *buffer2;
+ int flag1 = 0, flag2 = 0;
+
+ buffer1 = (axis2_char_t*) axis2_malloc(env->allocator, 8096 * sizeof(axis2_char_t));
+ buffer2 = (axis2_char_t*) axis2_malloc(env->allocator, 8096 * sizeof(axis2_char_t));
+ ch1 = axis2_stream_file_get_char (env->stream, expected_file);
+ ch2 = axis2_stream_file_get_char (env->stream, actual_file);
+
+ int j = 0, k = 0;
+ while(1)
+ {
+
+ if(ch1 == ' ' || ch1 == '\n' )
+ {
+ flag1 = 1;
+ }
+ if(ch2 == ' ' || ch2 == '\n')
+ {
+ flag2 = 1;
+ }
+ if(ch1 != ' ' && ch1 != '\n' && ch2 != ' ' && ch2 != '\n')
+ {
+ flag1 = 0;
+ flag2 = 0;
+ }
+
+ if(flag1 == 1 && flag2 == 0)
+ {
+ axis2_stream_file_unget_char(env->stream, ch2, actual_file);
+ j++;
+ buffer1[j] = ch1;
+ }
+ if(flag1 == 0 && flag2 == 1)
+ {
+ axis2_stream_file_unget_char(env->stream, ch1, expected_file);
+ k++;
+ buffer2[k] = ch2;
+ }
+ if(flag1 == 0 && flag2 == 0)
+ {
+ if(ch1 != ch2)
+ {
+ axis2_stream_write(env->stream
+ , "\n****************************** TEST FAILED *********" \
+ "**************************\n", 80);
+
+ *buffer1 = '\n';
+ *buffer2 = '\n';
+ axis2_stream_write(env->stream
+ , "\n---------------------- Expected file read upto: ----" \
+ "--------------------------\n", 80);
+
+ /*printf("%s\n", buffer1); */
+ axis2_stream_write(env->stream, buffer1, j);
+ axis2_stream_write(env->stream
+ , "\n---------------------- Actual file read upto: ------" \
+ "--------------------------\n", 80);
+
+ /* printf("%s\n", buffer2); */
+ axis2_stream_write(env->stream, buffer2, k);
+ axis2_stream_write(env->stream, "\n", 1);
+
+ axis2_file_diff_clean(env, 1);
+ }
+ j++;k++;
+ buffer1[j] = ch1;
+ buffer2[k] = ch2;
+ }
+ if(flag1 == 1 && flag2 == 1)
+ {
+ flag1 = 0;
+ flag2 = 0;
+ j++; k++;
+ buffer1[j] = ch1;
+ buffer2[k] = ch2;
+ }
+
+
+ if(ch1 == env->stream->axis2_eof || ch2 == env->stream->axis2_eof)
+ break;
+ ch1 = axis2_stream_file_get_char(env->stream, expected_file );
+ ch2 = axis2_stream_file_get_char(env->stream, actual_file);
+ }
+
+ axis2_stream_write(env->stream
+ , "\n************************* TEST PASSED **************************" \
+ "**************\n", 80);
+
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t axis2_file_diff_clean (axis2_environment_t *env, int exitcode )
+{
+ if(expected_file != NULL )
+ axis2_stream_file_close(env->stream, expected_file);
+ if(actual_file != NULL )
+ axis2_stream_file_close(env->stream, actual_file);
+ exit(exitcode);
+}
Modified: webservices/axis2/trunk/c/modules/util/src/axis2_stream.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_stream.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_stream.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_stream.c Sun Oct 23 19:16:07 2005
@@ -14,11 +14,23 @@
* limitations under the License.
*/
-#include <axis2_stream.h>
+#include <string.h>
+#include <stdlib.h>
#include <stdio.h>
+#include <axis2_stream.h>
+
axis2_status_t axis2_stream_impl_write (const void *buffer, size_t count);
axis2_status_t axis2_stream_impl_read (void *buffer, size_t count);
+
+void *axis2_stream_impl_file_open(const char *file_name, const char *options);
+
+axis2_status_t axis2_stream_impl_file_close(void *file_ptr);
+
+axis2_char_t axis2_stream_impl_file_get_char(void *file_ptr);
+
+axis2_status_t axis2_stream_impl_file_unget_char(const char chr, void *file_ptr);
+
axis2_stream_t *
axis2_stream_create (axis2_allocator_t * allocator,
axis2_stream_ops_t * operations)
@@ -48,6 +60,13 @@
stream->ops->axis2_stream_ops_read = axis2_stream_impl_read;
stream->ops->axis2_stream_ops_write = axis2_stream_impl_write;
+ stream->ops->axis2_stream_ops_file_open = axis2_stream_impl_file_open;
+ stream->ops->axis2_stream_ops_file_close = axis2_stream_impl_file_close;
+ stream->ops->axis2_stream_ops_file_get_char = axis2_stream_impl_file_get_char;
+ stream->ops->axis2_stream_ops_file_unget_char = axis2_stream_impl_file_unget_char;
+
+ stream->file = NULL;
+ stream->axis2_eof = EOF;
}
return stream;
@@ -79,5 +98,35 @@
i = 0;
for (i = 0; i < count; i++)
printf ("%c", ((axis2_char_t *) buffer)[i]);
+
return 0;
+}
+
+void *axis2_stream_impl_file_open(const char *file_name, const char *options)
+{
+ char *f_name = (char*) strdup(file_name);
+ if(!f_name) return NULL;
+ char *f_opt = (char*) strdup(options);
+ if(!f_opt) return NULL;
+
+ FILE *file_ptr = fopen (f_name, f_opt);
+ return file_ptr;
+}
+
+axis2_status_t axis2_stream_impl_file_close(void *file_ptr)
+{
+ if(!file_ptr) return -1;
+ return (axis2_status_t) fclose(file_ptr);
+}
+
+axis2_char_t axis2_stream_impl_file_get_char(void *file_ptr)
+{
+ if(!file_ptr) return -1;
+ return (axis2_char_t) fgetc(file_ptr);
+}
+
+axis2_status_t axis2_stream_impl_file_unget_char(const char chr, void *file_ptr)
+{
+ if(!file_ptr) return -1;
+ return (axis2_status_t) ungetc(chr, file_ptr);
}
Modified: webservices/axis2/trunk/c/modules/util/src/axis2_string.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_string.c?rev=327912&r1=327911&r2=327912&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_string.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_string.c Sun Oct 23 19:16:07 2005
@@ -18,13 +18,19 @@
#include <stdlib.h>
#include <string.h>
+axis2_status_t check_validity(axis2_string_t *string);
+
void *
axis2_string_ops_strdup (const void *ptr)
{
if (ptr)
+ {
return (void *) strdup (ptr);
+ }
else
+ {
return NULL;
+ }
}
int
@@ -39,14 +45,18 @@
axis2_string_t *
axis2_string_create (axis2_allocator_t * allocator, axis2_string_t * string)
{
- if (string)
- return string;
-
- if (!allocator)
- return NULL;
-
- else
- {
+ if (string && AXIS2_SUCCESS == check_validity(string))
+ {
+ return string;
+ }
+ else if(string)
+ {
+ string->axis2_string_strdup = axis2_string_ops_strdup;
+ string->axis2_string_strcmp = axis2_string_ops_strcmp;
+ return string;
+ }
+ else if (allocator)
+ {
string =
(axis2_string_t *) axis2_malloc (allocator,
sizeof (axis2_string_t));
@@ -58,4 +68,21 @@
}
}
return NULL;
+}
+
+/** This will check whether the passed string is properly initialized
+ * @param string to be validated
+ * @return status code
+ */
+axis2_status_t check_validity(axis2_string_t *string)
+{
+ if(!string)
+ {
+ return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+ }
+ if(!string->axis2_string_strdup) return AXIS2_ERROR_STRUCT_NOT_INITIALIZED;
+
+ if(!string->axis2_string_strcmp) return AXIS2_ERROR_STRUCT_NOT_INITIALIZED;
+
+ return AXIS2_SUCCESS;
}