00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _LCN_ISTREAM_H
00023 #define _LCN_ISTREAM_H
00024
00025 #include "lcn_types.h"
00026
00027 #include <apr_file_io.h>
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033
00034 typedef struct lcn_istream_t lcn_istream_t;
00035
00036
00037
00038
00039 lcn_istream_t *
00040 lcn_ram_istream_create (const char *buffer,
00041 apr_size_t length,
00042 apr_pool_t *pool);
00043
00044
00045 lcn_istream_t *
00046 lcn_file_istream_create (apr_file_t *file, apr_pool_t *pool);
00047
00048
00049
00050
00051 lcn_error_t *
00052 lcn_istream_read_byte (lcn_istream_t *stream,
00053 char *byte,
00054 apr_pool_t *pool);
00055
00056
00057
00058
00059 lcn_error_t *
00060 lcn_istream_read_bytes (lcn_istream_t *stream,
00061 char *buffer,
00062 apr_size_t len,
00063 apr_pool_t *pool);
00064
00065
00066
00067
00068 lcn_error_t *
00069 lcn_istream_read_int (lcn_istream_t *stream,
00070 apr_uint32_t *i,
00071 apr_pool_t *pool);
00072
00073
00074
00075
00076 lcn_error_t *
00077 lcn_istream_read_vint (lcn_istream_t *stream,
00078 apr_uint32_t *i,
00079 apr_pool_t *pool);
00080
00081
00082
00083
00084 lcn_error_t *
00085 lcn_istream_read_long (lcn_istream_t *stream,
00086 apr_uint64_t *l,
00087 apr_pool_t *pool);
00088
00089
00090
00091
00092 lcn_error_t *
00093 lcn_istream_read_vlong (lcn_istream_t *stream,
00094 apr_uint64_t *l,
00095 apr_pool_t *pool);
00096
00097
00098 lcn_error_t *
00099 lcn_istream_read_string (lcn_istream_t *stream,
00100 lcn_char_t **str,
00101 apr_pool_t *pool);
00102
00103
00104
00105 lcn_error_t *
00106 lcn_istream_read_chars (lcn_istream_t *stream,
00107 lcn_char_t **buffer,
00108 apr_size_t length,
00109 apr_pool_t *pool);
00110
00111
00112 lcn_error_t *
00113 lcn_istream_seek (lcn_istream_t *stream, apr_off_t offset, apr_pool_t *pool);
00114
00115
00116 lcn_error_t *
00117 lcn_istream_close (lcn_istream_t *stream, apr_pool_t *pool);
00118
00119
00120
00121
00122 lcn_error_t *
00123 lcn_istream_length (lcn_istream_t *stream,
00124 apr_size_t *length,
00125 apr_pool_t *pool);
00126
00127
00128
00129
00130 lcn_error_t *
00131 lcn_istream_offset (lcn_istream_t *stream,
00132 apr_off_t *offset,
00133 apr_pool_t *pool);
00134
00135
00136 lcn_error_t *
00137 lcn_istream_duplicate (lcn_istream_t **dest,
00138 lcn_istream_t *source,
00139 apr_pool_t *pool);
00140
00141 #ifdef __cplusplus
00142 }
00143 #endif
00144
00145 #endif