axutil_http_chunked_stream.h

Go to the documentation of this file.
00001 
00002 /*
00003 * Licensed to the Apache Software Foundation (ASF) under one or more
00004 * contributor license agreements.  See the NOTICE file distributed with
00005 * this work for additional information regarding copyright ownership.
00006 * The ASF licenses this file to You under the Apache License, Version 2.0
00007 * (the "License"); you may not use this file except in compliance with
00008 * the License.  You may obtain a copy of the License at
00009 *
00010 *      http://www.apache.org/licenses/LICENSE-2.0
00011 *
00012 * Unless required by applicable law or agreed to in writing, software
00013 * distributed under the License is distributed on an "AS IS" BASIS,
00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015 * See the License for the specific language governing permissions and
00016 * limitations under the License.
00017 */
00018 
00019 #ifndef AXUTIL_HTTP_CHUNKED_STREAM_H
00020 #define AXUTIL_HTTP_CHUNKED_STREAM_H
00021 
00034 #include <axutil_env.h>
00035 #include <axutil_stream.h>
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00043     typedef struct axutil_http_chunked_stream axutil_http_chunked_stream_t;
00044 
00045     struct axis2_callback_info
00046     {
00047         const axutil_env_t *env;
00048         void *in_stream;
00049         int content_length;
00050         int unread_len;
00051         axutil_http_chunked_stream_t *chunked_stream;
00052     };
00053     typedef struct axis2_callback_info axis2_callback_info_t;
00054 
00055 
00062     AXIS2_EXTERN int AXIS2_CALL
00063     axutil_http_chunked_stream_read(
00064         axutil_http_chunked_stream_t * chunked_stream,
00065         const axutil_env_t * env,
00066         void *buffer,
00067         size_t count);
00068 
00074     AXIS2_EXTERN int AXIS2_CALL
00075     axutil_http_chunked_stream_write(
00076         axutil_http_chunked_stream_t * chunked_stream,
00077         const axutil_env_t * env,
00078         const void *buffer,
00079         size_t count);
00080 
00085     AXIS2_EXTERN int AXIS2_CALL
00086 
00087     axutil_http_chunked_stream_get_current_chunk_size(
00088         const axutil_http_chunked_stream_t * chunked_stream,
00089         const axutil_env_t * env);
00090 
00096     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00097 
00098     axutil_http_chunked_stream_write_last_chunk(
00099         axutil_http_chunked_stream_t * chunked_stream,
00100         const axutil_env_t * env);
00101 
00107     AXIS2_EXTERN void AXIS2_CALL
00108     axutil_http_chunked_stream_free(
00109         axutil_http_chunked_stream_t * chunked_stream,
00110         const axutil_env_t * env);
00111 
00116     AXIS2_EXTERN axutil_http_chunked_stream_t *AXIS2_CALL
00117 
00118     axutil_http_chunked_stream_create(
00119         const axutil_env_t * env,
00120         axutil_stream_t * stream);
00121 
00122     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00123     axutil_http_chunked_stream_get_end_of_chunks(
00124         axutil_http_chunked_stream_t * chunked_stream,
00125         const axutil_env_t * env);
00126     
00127 
00129 #ifdef __cplusplus
00130 }
00131 #endif
00132 #endif                          /* AXUTIL_HTTP_CHUNKED_STREAM_H */

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3