istream-private.h revision 4c096615cb86a826fda377b87df22c579bfe5525
#ifndef ISTREAM_PRIVATE_H
#define ISTREAM_PRIVATE_H
#include "istream.h"
#include "iostream-private.h"
#define I_STREAM_MIN_SIZE IO_BLOCK_SIZE
struct io;
struct istream_private {
/* inheritance: */
struct iostream_private iostream;
/* methods: */
/* data: */
int fd;
/* added by io_add_istream() -> i_stream_set_io() */
const unsigned char *buffer;
unsigned char *w_buffer; /* may be NULL */
/* parent stream's expected offset is kept here. i_stream_read()
always seeks parent stream to here before calling read(). */
/* increased every time the stream is changed (e.g. seek, read).
this way streams can check if their parent streams have been
accessed behind them. */
unsigned int access_counter;
unsigned int line_crlf:1;
unsigned int return_nolf_line:1;
};
struct istream * ATTR_NOWARN_UNUSED_RESULT
ATTR_NULL(2);
/* Initialize parent lazily after i_stream_create() has already been called. */
#endif