-
- All Implemented Interfaces:
-
org.readium.r2.shared.fetcher.Resource,org.readium.r2.shared.util.SuspendingCloseable
public final class BufferingResource extends ProxyResource
Wraps a Resource and buffers its content.
Expensive interaction with the underlying resource is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when filling that buffer, but this is usually outweighed by the performance benefits.
Note that this implementation is pretty limited and the benefits are only apparent when reading forward and consecutively – e.g. when downloading the resource by chunks. The buffer is ignored when reading backward or far ahead.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classBufferingResource.Companion
-
Constructor Summary
Constructors Constructor Description BufferingResource(Resource resource, Long resourceLength, Long bufferSize)
-
Method Summary
Modifier and Type Method Description Try<ByteArray, Resource.Exception>read(LongRange range)Reads the bytes at the given range. -
Methods inherited from class org.readium.r2.shared.fetcher.ProxyResource
close, getFile, length, link, toString -
Methods inherited from class org.readium.r2.shared.fetcher.Resource
readAsBitmap, readAsJson, readAsString, readAsXml -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-