blob: 9ce297239658215affd88bcd6751102d994d2d59 [file] [log] [blame]
#ifndef _ICONV_STREAM_H_
#define _ICONV_STREAM_H_
#include <stdio.h> /* FILE */
#include "iconv.h" /* iconv_t */
typedef apr_ssize_t (*iconv_stream_func)(void *d, void *buf, apr_size_t nbytes);
typedef struct {
apr_iconv_t cd;
apr_size_t chars;
apr_size_t in_bytes;
apr_size_t out_bytes;
char * buffer;
char * buf_ptr;
void * handle;
iconv_stream_func method;
} iconv_stream;
iconv_stream *iconv_stream_open(apr_iconv_t cd, void *handle,
iconv_stream_func method);
void iconv_stream_close(iconv_stream *stream);
iconv_stream *iconv_ostream_fopen(apr_iconv_t cd, FILE *handle);
apr_ssize_t iconv_write(void *stream, const void *buf, apr_size_t nbytes);
apr_ssize_t iconv_bwrite(void *stream, const void *buf, apr_size_t nbytes);
#endif /*_ICONV_STREAM_H_*/