@Override public void mark(int pReadLimit) throws IOException { if (pReadLimit < 0) { throw new IllegalArgumentException("Read limit < 0"); } // TODO: It would be nice if we could actually close some readers now synchronized (finalLock) { ensureOpen(); mark = mNext; markedReader = currentReader; current.mark(pReadLimit); } }
@Override public void reset() throws IOException { synchronized (finalLock) { ensureOpen(); if (currentReader != markedReader) { // Reset any reader before this for (int i = currentReader; i >= markedReader; i--) { readers.get(i).reset(); } currentReader = markedReader - 1; nextReader(); } current.reset(); mNext = mark; } }
@Override public void mark(int pReadLimit) throws IOException { if (pReadLimit < 0) { throw new IllegalArgumentException("Read limit < 0"); } // TODO: It would be nice if we could actually close some readers now synchronized (mLock) { ensureOpen(); mMark = mNext; mMarkedReader = mCurrentReader; mCurrent.mark(pReadLimit); } }
@Override public void mark(int pReadLimit) throws IOException { if (pReadLimit < 0) { throw new IllegalArgumentException("Read limit < 0"); } // TODO: It would be nice if we could actually close some readers now synchronized (finalLock) { ensureOpen(); mark = mNext; markedReader = currentReader; current.mark(pReadLimit); } }
@Override public void reset() throws IOException { synchronized (finalLock) { ensureOpen(); if (currentReader != markedReader) { // Reset any reader before this for (int i = currentReader; i >= markedReader; i--) { readers.get(i).reset(); } currentReader = markedReader - 1; nextReader(); } current.reset(); mNext = mark; } }
@Override public void reset() throws IOException { synchronized (mLock) { ensureOpen(); if (mCurrentReader != mMarkedReader) { // Reset any reader before this for (int i = mCurrentReader; i >= mMarkedReader; i--) { mReaders.get(i).reset(); } mCurrentReader = mMarkedReader - 1; nextReader(); } mCurrent.reset(); mNext = mMark; } }