# 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 */