Blame |
Last modification |
View Log
| RSS feed
/*
* Copyright 1995, Brown University, Providence, RI
*
* Permission to use and modify this software and its documentation for
* any purpose other than its incorporation into a commercial product is
* hereby granted without fee. Permission to copy and distribute this
* software and its documentation only for non-commercial use is also
* granted without fee, provided, however, that the above copyright notice
* appear in all copies, that both that copyright notice and this permission
* notice appear in supporting documentation, that the name of Brown
* University not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior permission,
* and that the person doing the distribution notify Brown University of
* such distributions outside of his or her organization. Brown University
* makes no representations about the suitability of this software for
* any purpose. It is provided "as is" without express or implied warranty.
* Brown University requests notification of any modifications to this
* software or its documentation.
*
* Send the following redistribution information:
*
* Name:
* Organization:
* Address (postal and/or electronic):
*
* To:
* Software Librarian
* Computer Science Department, Box 1910
* Brown University
* Providence, RI 02912
*
* or
*
* brusd@cs.brown.edu
*
* We will acknowledge all electronic notifications.
*/
#ifndef BUFFER_CLASS_DEF
class BUFFER {
public:
BUFFER(int itemSize, int bytesGet=4, int bytesSave=3, int stepSize=25);
~BUFFER();
int addToBuffer(void *item);
const char * const nextBufferItem(int *looped);
private:
int _size, bufferSize, location, firstRetrieve;
const int _bytesGet, _bytesSave, _stepSize, sizeGet;
int sizeSave;
char *tmpBlock;
char **buffer;
static long totalAllocated;
};
#define BUFFER_CLASS_DEF
#endif