#pragma once
// 4J Stu - Represents Java standard library class

#include "InputStream.h"

class ByteArrayInputStream : public InputStream
{
protected:
	byteArray buf; //An array of bytes that was provided by the creator of the stream.
	unsigned int count; //The index one greater than the last valid character in the input stream buffer.
	unsigned int mark; //The currently marked position in the stream.
	unsigned int pos; //The index of the next character to read from the input stream buffer.

public:
	ByteArrayInputStream(byteArray buf, unsigned int offset, unsigned int length);
	ByteArrayInputStream(byteArray buf);
	virtual ~ByteArrayInputStream();
	virtual int read();
	virtual int read(byteArray b);
	virtual int read(byteArray b, unsigned int offset, unsigned int length);
	virtual void close();
	virtual __int64 skip(__int64 n);

	// 4J Stu Added - Sometimes we don't want to delete the data on destroying this
	void reset() { buf = byteArray(); count = 0; mark = 0; pos = 0; }
};