view src/lib/istream-internal.h @ 3647:7af5162d934c HEAD

Added exact parameter to i_stream_stat()
author Timo Sirainen <tss@iki.fi>
date Sun, 09 Oct 2005 12:55:29 +0300
parents e05a1af4bbc7
children 55df57c028d4
line wrap: on
line source

#ifndef __ISTREAM_INTERNAL_H
#define __ISTREAM_INTERNAL_H

#include <sys/stat.h>

#include "istream.h"
#include "iostream-internal.h"

struct _istream {
/* inheritance: */
	struct _iostream iostream;

/* methods: */
	ssize_t (*read)(struct _istream *stream);
	void (*seek)(struct _istream *stream, uoff_t v_offset, int mark);
	void (*sync)(struct _istream *stream);
	const struct stat *(*stat)(struct _istream *stream, int exact);

/* data: */
	struct istream istream;

	int fd;
	const unsigned char *buffer;
	unsigned char *w_buffer; /* may be NULL */
	string_t *line_str; /* for i_stream_next_line() if w_buffer == NULL */
	size_t buffer_size;
	uoff_t abs_start_offset;
	struct stat statbuf;

	size_t skip, pos;
};

struct istream *_i_stream_create(struct _istream *_buf, pool_t pool, int fd,
				 uoff_t abs_start_offset);

#endif