Personal tools
You are here: Home Projects C++ Cfront releases Release 1.0 Source cfront lib stream streambuf.c
Document Actions

streambuf.c

by Paul McJones last modified 2007-02-02 09:33

Click here to get the file

Size 1 kB - File type text/x-csrc

File contents

/* @(#) streambuf.c 1.2 1/27/86 17:48:04 */
/*ident	"@(#)cfront:lib/stream/streambuf.c	1.2"*/
#include "stream.h"

/*
	Allocate some space for the buffer.
	Returns:	EOF on error
			0 on success
*/
int streambuf.allocate()
{
	if (base == NULL) {
		if ((base = new char[BUFSIZE]) != NULL) {
			pptr = gptr = base;
			eptr = base + BUFSIZE;
			alloc = 1;
			return 0;
		} else
			return EOF;
	}
	return 0;
}

/*
	Come here on a put to a full buffer.  Allocate the buffer if 
	it is uninitialized.
	Returns:	EOF on error
			the argument on success
*/
virtual int streambuf.overflow(int c)
{
	if (allocate() == EOF) return EOF;
	if (c != EOF) *pptr++ = c;
	return c&0377;
}

/*
	Fill a buffer.
	Returns:	EOF on error or end of input
			next character on success
*/
virtual int streambuf.underflow()
{
	return EOF;
}
« October 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: