Abstract data provider that handles serving data from an InputStream.
The class wraps the logic for re-opening the stream for backwards-seek operations. Subclasses need to override the
openInputStream() method, which needs to return a new
InputStream instance every time it is called.
|From interface com.pspdfkit.api.providers.DataProvider|
read(long size, long offset)
Called by PSPDFKit to read data from the document.
Called when the provided document is being closed.
Returns the current position inside the read InputStream.
Subclasses need to override this method and return a readable input stream which serves the data.
Close the internal input stream and reopen it.
Called by PSPDFKit to read data from the document. The returned byte array can be reused in subsequent calls to prevent excessive allocations.
|size||Size of the data chunk to be read in bytes.|
|offset||Offset from start of document of the data chunk to be read in bytes.|
Called when the provided document is being closed. Implementations are expected to release all resources (like closing of all streams and freeing of allocations).
Subclasses need to override this method and return a readable input stream which serves the data. This method
must return a new
InputStream instance every time it is called. This is necessary so
InputStreamDataProvider can actually "simulate" random data access on the underlying stream.
|Exception||If the implementation fails to open the input stream for reading.|
Close the internal input stream and reopen it. This is used to rewind the stream, if it is necessary to "seek backwards". Subclasses may call this method to safely rewind the stream to the beginning.
|Exception||If the implementation fails to close or open the input stream for reading.|