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 ma...@apache.org on 2008/02/19 10:23:25 UTC

svn commit: r629044 - in /webservices/axis2/trunk/c/axiom: include/axiom_mime_parser.h src/attachments/mime_parser.c

Author: manjula
Date: Tue Feb 19 01:23:23 2008
New Revision: 629044

URL: http://svn.apache.org/viewvc?rev=629044&view=rev
Log:
storing chunk buffer size as members of mime_parser struct.

Modified:
    webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h
    webservices/axis2/trunk/c/axiom/src/attachments/mime_parser.c

Modified: webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h?rev=629044&r1=629043&r2=629044&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h Tue Feb 19 01:23:23 2008
@@ -86,6 +86,20 @@
     axiom_mime_parser_create(
         const axutil_env_t * env);
 
+    AXIS2_EXTERN void AXIS2_CALL
+    axiom_mime_parser_set_chunk_buffer_size(
+        axiom_mime_parser_t * mime_parser,
+        const axutil_env_t * env,
+        int size);
+
+    AXIS2_EXTERN void AXIS2_CALL
+    axiom_mime_parser_set_max_chunk_buffers(
+        axiom_mime_parser_t * mime_parser,
+        const axutil_env_t * env,
+        int num);
+
+
+
     /** @} */
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/axiom/src/attachments/mime_parser.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/src/attachments/mime_parser.c?rev=629044&r1=629043&r2=629044&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/src/attachments/mime_parser.c (original)
+++ webservices/axis2/trunk/c/axiom/src/attachments/mime_parser.c Tue Feb 19 01:23:23 2008
@@ -28,9 +28,12 @@
     axutil_hash_t *mime_parts_map;
     int soap_body_len;
     axis2_char_t *soap_body_str;
+    int chunk_buffer_size;
+    int max_chunk_buffers;
 };
 
 #define AXIOM_MIME_PARSER_BUFFER_SIZE (1024 * 1024)
+#define AXIOM_MIME_PARSER_MAX_CHUNK_BUFFERS 1000
 
 #define AXIOM_MIME_PARSER_CONTENT_ID "content-id"
 #define AXIOM_MIME_PARSER_CONTENT_TYPE "content-type"
@@ -57,6 +60,8 @@
     mime_parser->mime_parts_map = NULL;
     mime_parser->soap_body_len = 0;
     mime_parser->soap_body_str = NULL;  /* shallow copy */
+    mime_parser->chunk_buffer_size = 1;
+    mime_parser->max_chunk_buffers = AXIOM_MIME_PARSER_MAX_CHUNK_BUFFERS;
 
     mime_parser->mime_parts_map = axutil_hash_make(env);
     if (!(mime_parser->mime_parts_map))
@@ -110,17 +115,18 @@
     int buf_num = 0;    
     int buf_len = 0;
     axis2_callback_info_t *cb_ctx = NULL;
-    axis2_char_t *buf_array[100];
-    int len_array[100];
+    axis2_char_t *buf_array[mime_parser->max_chunk_buffers];
+    int len_array[mime_parser->max_chunk_buffers];
 
-    
     cb_ctx = (axis2_callback_info_t *) callback_ctx;
 
     AXIS2_ENV_CHECK(env, NULL);
 
     if(cb_ctx->chunked_stream)
     {
-        
+        size = (mime_parser->chunk_buffer_size) * AXIOM_MIME_PARSER_BUFFER_SIZE;
+
+
         while(!axutil_http_chunked_stream_get_end_of_chunks(
                 cb_ctx->chunked_stream, env))
         {
@@ -425,4 +431,22 @@
     const axutil_env_t * env)
 {
     return mime_parser->soap_body_str;
+}
+
+AXIS2_EXTERN void AXIS2_CALL
+axiom_mime_parser_set_chunk_buffer_size(
+    axiom_mime_parser_t * mime_parser,
+    const axutil_env_t * env,
+    int size)
+{
+    mime_parser->chunk_buffer_size = size ;
+}
+
+AXIS2_EXTERN void AXIS2_CALL
+axiom_mime_parser_set_max_chunk_buffers(
+    axiom_mime_parser_t * mime_parser,
+    const axutil_env_t * env,
+    int num)
+{
+    mime_parser->max_chunk_buffers = num;
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org