java.lang.Object | |
↳ | com.pspdfkit.api.providers.InputStreamDataProvider |
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.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
InputStreamDataProvider() |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
byte[] |
read(long size, long offset)
Called by PSPDFKit to read data from the document.
| ||||||||||
void |
release()
Called when the provided document is being closed.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
long |
getInputStreamPosition()
Returns the current position inside the read InputStream.
| ||||||||||
abstract InputStream |
openInputStream()
Subclasses need to override this method and return a readable input stream which serves the data.
| ||||||||||
final void |
reopenInputStream()
Close the internal input stream and reopen it.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
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).
Returns the current position inside the read InputStream.
Every read operation on the data provider will increase this position. To reset the read position to 0
call reopenInputStream()
.
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. |
---|