ibuf.h
00001
#ifndef IO_BUF__IBUF__H__
00002
#define IO_BUF__IBUF__H__
00003
00004
#include <iobuf/common.h>
00005
00010
typedef int (*ibuf_fn)(
int,
void*,
unsigned long);
00011
00013 struct ibuf
00014 {
00016 iobuf io;
00018 unsigned count;
00020 ibuf_fn
readfn;
00021 };
00022
typedef struct ibuf ibuf;
00023
00024
extern ibuf inbuf;
00025
00026
int ibuf_init(ibuf* in,
int fd, ibuf_fn fn,
unsigned flags,
unsigned bufsize);
00027
int ibuf_open(ibuf* in,
const char* filename,
unsigned bufsize);
00028
int ibuf_eof(ibuf* in);
00030
#define ibuf_close(in) iobuf_close(&((in)->io))
00031
00032
#define ibuf_closed(in) iobuf_closed(&((in)->io))
00033
00034
#define ibuf_error(in) iobuf_error(&((in)->io))
00035
00036
#define ibuf_timedout(in) iobuf_timedout(&((in)->io))
00037
int ibuf_refill(ibuf* in);
00038
int ibuf_read_large(ibuf* in,
char* data,
unsigned datalen);
00039
int ibuf_read(ibuf* in,
char* data,
unsigned datalen);
00040
unsigned ibuf_tell(ibuf* in);
00041
int ibuf_seek(ibuf* in,
unsigned offset);
00043
#define ibuf_rewind(in) ibuf_seek(in,0)
00044
00045
#define ibuf_seekfwd(in,off) ibuf_seek(ibuf_tell(in)+(offset))
00046
00047
int ibuf_peek(ibuf* in,
char* ch);
00048
int ibuf_getc(ibuf* in,
char* ch);
00049
int ibuf_getu(ibuf* in,
unsigned long* data);
00050
int ibuf_gets(ibuf* in,
char* data,
unsigned datalen,
char boundary);
00051
int ibuf_getstr(ibuf* in,
struct str* s,
char boundary);
00052
int ibuf_getstr_crlf(ibuf* in,
struct str* s);
00053
int ibuf_getnetstring(ibuf* in,
struct str* s);
00054
int ibuf_readall(ibuf* in,
struct str* s);
00055
int ibuf_openreadclose(
const char* filename,
struct str* s);
00056
00057
00058
#endif
Generated on Mon Nov 15 14:50:26 2004 for bglibs by
1.3.8