//============================================================================== BufferedInputStream::BufferedInputStream (InputStream* sourceStream, int size, bool takeOwnership) : source (sourceStream, takeOwnership), bufferSize (calcBufferStreamBufferSize (size, sourceStream)), position (sourceStream->getPosition()), bufferStart (position) { buffer.malloc (bufferSize); }
BufferedInputStream::BufferedInputStream (InputStream& sourceStream, const int bufferSize_) : source (&sourceStream, false), bufferSize (calcBufferStreamBufferSize (bufferSize_, &sourceStream)), position (sourceStream.getPosition()), lastReadPos (0), bufferStart (position), bufferOverlap (128) { buffer.malloc ((size_t) bufferSize); }
//============================================================================== BufferedInputStream::BufferedInputStream (InputStream* const sourceStream, const int bufferSize_, const bool deleteSourceWhenDestroyed) : source (sourceStream, deleteSourceWhenDestroyed), bufferSize (calcBufferStreamBufferSize (bufferSize_, sourceStream)), position (sourceStream->getPosition()), lastReadPos (0), bufferStart (position), bufferOverlap (128) { buffer.malloc ((size_t) bufferSize); }