You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2007/03/30 03:50:04 UTC
svn commit: r523904 - in /webservices/axis2/trunk/c/axiom:
include/axiom_data_handler.h src/attachments/data_handler.c
Author: samisa
Date: Thu Mar 29 18:50:02 2007
New Revision: 523904
URL: http://svn.apache.org/viewvc?view=rev&rev=523904
Log:
removed ops
Modified:
webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h
webservices/axis2/trunk/c/axiom/src/attachments/data_handler.c
Modified: webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h?view=diff&rev=523904&r1=523903&r2=523904
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h Thu Mar 29 18:50:02 2007
@@ -44,78 +44,45 @@
}axiom_data_handler_type_t;
- /* This should be moved to header file later axis2_defines.h*/
-#define axis2_byte_t char
-
- typedef struct axiom_data_handler_ops axiom_data_handler_ops_t;
typedef struct axiom_data_handler axiom_data_handler_t;
- /*
- private final DataSource ds;
- private final DataFlavor flavor;
- private CommandMap commandMap;
- private DataContentHandler dch;
- */
-
/** @defgroup axiom_data_handler Flow
* @ingroup axiom_data_handler
* @{
*/
- /**
- * @brief Flow ops struct
- * Encapsulator struct for ops of axiom_data_handler
- */
- struct axiom_data_handler_ops
- {
- axis2_char_t *(AXIS2_CALL *
- get_content_type)(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
- axis2_byte_t*(AXIS2_CALL *
- get_input_stream)(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
- axis2_status_t(AXIS2_CALL *
- read_from)(axiom_data_handler_t *data_handler,
- const axis2_env_t *env,
- axis2_byte_t** output_stream,
- int *output_stream_size);
-
- axis2_status_t(AXIS2_CALL *
- set_binary_data)(axiom_data_handler_t *data_handler,
- const axis2_env_t *env,
- axis2_byte_t* input_stream,
- int input_stream_len);
-
- axis2_status_t(AXIS2_CALL *
- write_to)(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
- axis2_status_t(AXIS2_CALL *
- set_file_name)(
- axiom_data_handler_t *data_handler,
- const axis2_env_t *env,
- axis2_char_t* file_name);
-
- void (AXIS2_CALL *
- free)(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
- };
-
- /**
- * @brief Flow struct
- * Flow
- */
- struct axiom_data_handler
- {
- axiom_data_handler_ops_t *ops;
-
- /*
- axis2_char_t type;
- *void handler;
- */
- };
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ axiom_data_handler_get_content_type(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env);
+
+ AXIS2_EXTERN axis2_byte_t *AXIS2_CALL
+ axiom_data_handler_get_input_stream(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axiom_data_handler_read_from(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env,
+ axis2_byte_t** output_stream,
+ int *output_stream_size);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axiom_data_handler_set_binary_data(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env,
+ axis2_byte_t* input_stream,
+ int input_stream_len);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axiom_data_handler_write_to(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env);
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axiom_data_handler_set_file_name(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env,
+ axis2_char_t* file_name);
+
+ AXIS2_EXTERN void AXIS2_CALL
+ axiom_data_handler_free(axiom_data_handler_t *data_handler,
+ const axis2_env_t *env);
/**
* Creates data_handler struct
@@ -127,27 +94,25 @@
const axis2_char_t *mime_type);
#define AXIOM_DATA_HANDLER_FREE(data_handler, env) \
- ((data_handler)->ops->free (data_handler, env))
+ axiom_data_handler_free (data_handler, env)
#define AXIOM_DATA_HANDLER_GET_CONTENT_TYPE(data_handler, env) \
- ((data_handler)->ops->get_content_type (data_handler, env))
+ axiom_data_handler_get_content_type (data_handler, env)
#define AXIOM_DATA_HANDLER_GET_INPUT_STREAM(data_handler, env) \
- ((data_handler)->ops->get_input_stream (data_handler, env))
+ axiom_data_handler_get_input_stream (data_handler, env)
#define AXIOM_DATA_HANDLER_READ_FROM(data_handler, env, output_stream, output_stream_size) \
- ((data_handler)->ops->read_from (data_handler, env, output_stream, output_stream_size))
+ axiom_data_handler_read_from (data_handler, env, output_stream, output_stream_size)
#define AXIOM_DATA_HANDLER_SET_BINARY_DATA(data_handler, env, input_stream, input_stream_size) \
- ((data_handler)->ops->set_binary_data (data_handler, env, input_stream, input_stream_size))
+ axiom_data_handler_set_binary_data (data_handler, env, input_stream, input_stream_size)
#define AXIOM_DATA_HANDLER_WRITE_TO(data_handler, env) \
- ((data_handler)->ops->write_to (data_handler, env))
+ axiom_data_handler_write_to (data_handler, env)
#define AXIOM_DATA_HANDLER_SET_FILE_NAME(data_handler, env, file_name) \
- ((data_handler)->ops->set_file_name (data_handler, env, file_name))
-
- /*************************** End of function macros ***************************/
+ axiom_data_handler_set_file_name (data_handler, env, file_name)
/** @} */
Modified: webservices/axis2/trunk/c/axiom/src/attachments/data_handler.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/src/attachments/data_handler.c?view=diff&rev=523904&r1=523903&r2=523904
==============================================================================
--- webservices/axis2/trunk/c/axiom/src/attachments/data_handler.c (original)
+++ webservices/axis2/trunk/c/axiom/src/attachments/data_handler.c Thu Mar 29 18:50:02 2007
@@ -19,175 +19,105 @@
#include <stdio.h>
#include <sys/stat.h>
-typedef struct axiom_data_handler_impl
+struct axiom_data_handler
{
- axiom_data_handler_t data_handler;
axis2_char_t* mime_type;
axis2_char_t* file_name;
axis2_byte_t* buffer;
int buffer_len;
int data_handler_type;
-}
-axiom_data_handler_impl_t;
-
-
-
-#define AXIS2_INTF_TO_IMPL(data_handler) ((axiom_data_handler_impl_t *)(data_handler))
-
-void AXIS2_CALL
-axiom_data_handler_free(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
-axis2_char_t * AXIS2_CALL
-axiom_data_handler_get_content_type(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
-axis2_byte_t * AXIS2_CALL
-axiom_data_handler_get_input_stream(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axiom_data_handler_read_from(axiom_data_handler_t *data_handler,
- const axis2_env_t *env,
- axis2_byte_t** output_stream, int *output_stream_size);
-
-axis2_status_t AXIS2_CALL
-axiom_data_handler_set_binary_data(axiom_data_handler_t *data_handler,
- const axis2_env_t *env,
- axis2_byte_t* input_stream, int input_stream_len);
-
-axis2_status_t AXIS2_CALL
-axiom_data_handler_write_to(axiom_data_handler_t *data_handler,
- const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL
-axiom_data_handler_set_file_name(axiom_data_handler_t *data_handler,
- const axis2_env_t *env,
- axis2_char_t* file_name);
-
-/************************** End of Function headers ************************/
+};
AXIS2_EXTERN axiom_data_handler_t * AXIS2_CALL
axiom_data_handler_create(const axis2_env_t *env,
const axis2_char_t *file_name,
const axis2_char_t *mime_type)
{
- axiom_data_handler_impl_t *data_handler_impl = NULL;
+ axiom_data_handler_t *data_handler = NULL;
AXIS2_ENV_CHECK(env, NULL);
- data_handler_impl =
- (axiom_data_handler_impl_t *) AXIS2_MALLOC(env->allocator,
- sizeof(axiom_data_handler_impl_t));
+ data_handler =
+ (axiom_data_handler_t *) AXIS2_MALLOC(env->allocator,
+ sizeof(axiom_data_handler_t));
- if (!data_handler_impl)
+ if (!data_handler)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- data_handler_impl->data_handler.ops = NULL;
- data_handler_impl->mime_type = NULL;
- data_handler_impl->file_name = NULL;
- data_handler_impl->buffer = NULL;
- data_handler_impl->buffer_len = 0;
+ data_handler->mime_type = NULL;
+ data_handler->file_name = NULL;
+ data_handler->buffer = NULL;
+ data_handler->buffer_len = 0;
if (mime_type)
{
- data_handler_impl->mime_type = axis2_strdup(env, mime_type);
- if (!(data_handler_impl->mime_type))
+ data_handler->mime_type = axis2_strdup(env, mime_type);
+ if (!(data_handler->mime_type))
{
- axiom_data_handler_free(&(data_handler_impl->data_handler), env);
+ axiom_data_handler_free(data_handler, env);
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
}
if (file_name)
{
- data_handler_impl->file_name = axis2_strdup(env, file_name);
- if (!(data_handler_impl->file_name))
+ data_handler->file_name = axis2_strdup(env, file_name);
+ if (!(data_handler->file_name))
{
- axiom_data_handler_free(&(data_handler_impl->data_handler), env);
+ axiom_data_handler_free(data_handler, env);
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- data_handler_impl->data_handler_type = AXIOM_DATA_HANDLER_TYPE_FILE;
+ data_handler->data_handler_type = AXIOM_DATA_HANDLER_TYPE_FILE;
}
else
{
- data_handler_impl->data_handler_type = AXIOM_DATA_HANDLER_TYPE_BUFFER;
+ data_handler->data_handler_type = AXIOM_DATA_HANDLER_TYPE_BUFFER;
}
- data_handler_impl->data_handler.ops = AXIS2_MALLOC(env->allocator,
- sizeof(axiom_data_handler_ops_t));
- if (!data_handler_impl->data_handler.ops)
- {
- axiom_data_handler_free(&(data_handler_impl->data_handler), env);
- AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- return NULL;
- }
-
- data_handler_impl->data_handler.ops->free = axiom_data_handler_free;
- data_handler_impl->data_handler.ops->get_content_type =
- axiom_data_handler_get_content_type;
- data_handler_impl->data_handler.ops->get_input_stream =
- axiom_data_handler_get_input_stream;
- data_handler_impl->data_handler.ops->read_from =
- axiom_data_handler_read_from;
- data_handler_impl->data_handler.ops->write_to =
- axiom_data_handler_write_to;
- data_handler_impl->data_handler.ops->set_binary_data =
- axiom_data_handler_set_binary_data;
- data_handler_impl->data_handler.ops->set_file_name =
- axiom_data_handler_set_file_name;
- return &(data_handler_impl->data_handler);
+ return data_handler;
}
-void AXIS2_CALL
+AXIS2_EXTERN void AXIS2_CALL
axiom_data_handler_free(axiom_data_handler_t *data_handler,
const axis2_env_t *env)
{
- axiom_data_handler_impl_t *data_handler_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- data_handler_impl = AXIS2_INTF_TO_IMPL(data_handler);
-
- if (data_handler_impl->file_name)
- {
- AXIS2_FREE(env->allocator, data_handler_impl->file_name);
- }
- if (data_handler_impl->mime_type)
+ if (data_handler->file_name)
{
- AXIS2_FREE(env->allocator, data_handler_impl->mime_type);
+ AXIS2_FREE(env->allocator, data_handler->file_name);
}
- if (data_handler_impl->buffer)
+ if (data_handler->mime_type)
{
- AXIS2_FREE(env->allocator, data_handler_impl->buffer);
+ AXIS2_FREE(env->allocator, data_handler->mime_type);
}
- if (data_handler->ops)
+ if (data_handler->buffer)
{
- AXIS2_FREE(env->allocator, data_handler->ops);
+ AXIS2_FREE(env->allocator, data_handler->buffer);
}
- if (data_handler_impl)
+ if (data_handler)
{
- AXIS2_FREE(env->allocator, data_handler_impl);
+ AXIS2_FREE(env->allocator, data_handler);
}
return;
}
-axis2_char_t * AXIS2_CALL
+AXIS2_EXTERN axis2_char_t * AXIS2_CALL
axiom_data_handler_get_content_type(axiom_data_handler_t *data_handler,
const axis2_env_t *env)
{
- return AXIS2_INTF_TO_IMPL(data_handler)->mime_type;
+ return data_handler->mime_type;
}
-axis2_byte_t * AXIS2_CALL
+AXIS2_EXTERN axis2_byte_t * AXIS2_CALL
axiom_data_handler_get_input_stream(axiom_data_handler_t *data_handler,
const axis2_env_t *env)
{
@@ -195,23 +125,20 @@
return (axis2_byte_t *)"";
}
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_data_handler_read_from(axiom_data_handler_t *data_handler,
const axis2_env_t *env,
axis2_byte_t** output_stream,
int *output_stream_size)
{
- axiom_data_handler_impl_t *data_handler_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- data_handler_impl = AXIS2_INTF_TO_IMPL(data_handler);
- if(data_handler_impl->data_handler_type == AXIOM_DATA_HANDLER_TYPE_BUFFER)
+ if(data_handler->data_handler_type == AXIOM_DATA_HANDLER_TYPE_BUFFER)
{
- *output_stream = data_handler_impl->buffer;
- *output_stream_size = data_handler_impl->buffer_len;
+ *output_stream = data_handler->buffer;
+ *output_stream_size = data_handler->buffer_len;
}
- else if (data_handler_impl->data_handler_type == AXIOM_DATA_HANDLER_TYPE_FILE
- && data_handler_impl->file_name)
+ else if (data_handler->data_handler_type == AXIOM_DATA_HANDLER_TYPE_FILE
+ && data_handler->file_name)
{
FILE *f = NULL;
axis2_byte_t *byte_stream = NULL;
@@ -222,19 +149,19 @@
int read_stream_size = 0;
int count = 0;
- f = fopen(data_handler_impl->file_name, "rb");
+ f = fopen(data_handler->file_name, "rb");
if (!f)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
" error opening file %s for reading ",
- data_handler_impl->file_name);
+ data_handler->file_name);
return AXIS2_FAILURE;
}
do
{
struct stat stat_p;
- if (-1 == stat(data_handler_impl->file_name, &stat_p))
+ if (-1 == stat(data_handler->file_name, &stat_p))
{
return AXIS2_FAILURE;
}
@@ -344,46 +271,41 @@
return AXIS2_SUCCESS;
}
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_data_handler_set_binary_data(axiom_data_handler_t *data_handler,
const axis2_env_t *env,
axis2_byte_t* input_stream, int input_stream_len)
{
- axiom_data_handler_impl_t *data_handler_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- data_handler_impl = AXIS2_INTF_TO_IMPL(data_handler);
+ data_handler = data_handler;
- data_handler_impl->buffer = input_stream;
- data_handler_impl->buffer_len = input_stream_len;
+ data_handler->buffer = input_stream;
+ data_handler->buffer_len = input_stream_len;
return AXIS2_SUCCESS;
}
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_data_handler_write_to(axiom_data_handler_t *data_handler,
const axis2_env_t *env)
{
- axiom_data_handler_impl_t *data_handler_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- data_handler_impl = AXIS2_INTF_TO_IMPL(data_handler);
- if (data_handler_impl->file_name)
+ if (data_handler->file_name)
{
FILE *f = NULL;
int count = 0;
- f = fopen(data_handler_impl->file_name, "wb");
+ f = fopen(data_handler->file_name, "wb");
if (!f)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
" error opening file %s for writing ",
- data_handler_impl->file_name);
+ data_handler->file_name);
return AXIS2_FAILURE;
}
- count = fwrite(data_handler_impl->buffer,
- 1, data_handler_impl->buffer_len, f);
+ count = fwrite(data_handler->buffer,
+ 1, data_handler->buffer_len, f);
if (ferror(f) != 0)
{
@@ -397,27 +319,24 @@
return AXIS2_SUCCESS;
}
-axis2_status_t AXIS2_CALL
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
axiom_data_handler_set_file_name(axiom_data_handler_t *data_handler,
const axis2_env_t *env,
axis2_char_t* file_name)
{
- axiom_data_handler_impl_t *data_handler_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- data_handler_impl = AXIS2_INTF_TO_IMPL(data_handler);
-
- if (data_handler_impl->file_name)
+ if (data_handler->file_name)
{
- AXIS2_FREE(env->allocator, data_handler_impl->file_name);
+ AXIS2_FREE(env->allocator, data_handler->file_name);
}
if (file_name)
{
- data_handler_impl->file_name = axis2_strdup(env, file_name);
- if (!(data_handler_impl->file_name))
+ data_handler->file_name = axis2_strdup(env, file_name);
+ if (!(data_handler->file_name))
{
- axiom_data_handler_free(&(data_handler_impl->data_handler), env);
+ axiom_data_handler_free(data_handler, env);
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org