view src/lib/ibuffer-internal.h @ 410:1f0e7229ee58 HEAD

Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and file OBuffer.
author Timo Sirainen <tss@iki.fi>
date Mon, 14 Oct 2002 02:49:11 +0300
parents
children 7434bac55c08
line wrap: on
line source

#ifndef __IBUFFER_INTERNAL_H
#define __IBUFFER_INTERNAL_H

#include "ibuffer.h"
#include "iobuffer-internal.h"

typedef struct __IBuffer _IBuffer;

struct __IBuffer {
/* inheritance: */
	_IOBuffer iobuf;

/* methods: */
	ssize_t (*read)(_IBuffer *buf);
	int (*skip_count)(_IBuffer *buf, uoff_t count);
	int (*seek)(_IBuffer *buf, uoff_t v_offset);

/* data: */
	IBuffer ibuffer;

	int fd;
	const unsigned char *buffer;
	unsigned char *w_buffer; /* may be NULL */
	size_t buffer_size;

	size_t skip, pos, cr_lookup_pos;
	int last_cr;
};

IBuffer *_i_buffer_create(_IBuffer *_buf, Pool pool, int fd,
			  uoff_t start_offset, uoff_t v_size);

#endif