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