abstract class InputSource extends AnyRef
The InputSource class is really just a mechanism to provide bytes an InputSourceDataInputStream, which does the heavily lift about converter bits/bytes to numbers and characters. This class does not need to know anything about bits, it is purely byte centric. One core difference from this vs an InputStream is that is must have the capability to backtrack to arbitrary points in the InputStreams history. To aide in this, methods are called to let the InputSource know which byte positions might we might need to backtrack to, which can allow it to free data that know longer is needed. One can almost thing of things as an InputStream that supports multiple marks with random access.
- Alphabetic
- By Inheritance
- InputSource
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new InputSource()
Abstract Value Members
-
abstract
def
areBytesAvailable(nBytes: Long): Boolean
Determine whether the underlying data has the specified number of bytes available starting at the current byte position.
Determine whether the underlying data has the specified number of bytes available starting at the current byte position. This function must block until either nBytes are known to be available or end-of-file is reached. This does not advance the current position.
- nBytes
the number of bytes to determine if are available
- returns
true if nBytes are available, false otherwise
-
abstract
def
bytesAvailable(): Long
Return the number of currently available bytes.
Return the number of currently available bytes.
This should not be used to determine the length of the data, as more bytes may become available in the future. This should really only be used for debug purposes.
-
abstract
def
compact(): Unit
Alerts the implementation to attempt to free data that is no longer used, if possible.
Alerts the implementation to attempt to free data that is no longer used, if possible. If possible, this should free any unlocked bytes.
-
abstract
def
get(dest: Array[Byte], off: Int, len: Int): Boolean
Return a byte array with data from the current byte position.
Return a byte array with data from the current byte position.
Stores the next len bytes of data in dest starting at index off. In len bytes are not available or len bytes cannot fit in the dest array starting at the given offset, the dest array is not modified and false is returned.
- returns
true if len bytes are available and written to the dest array, false otherwise
-
abstract
def
get(): Int
Return a single byte at the current byte position with a value in the range of 0 to 255.
Return a single byte at the current byte position with a value in the range of 0 to 255.
Increments the current byte position if successful.
- returns
the byte at the current byte position if it exists, or -1 if EOF is reached.
-
abstract
def
hasReachedEndOfData: Boolean
Determine if the InputSource has encountered the end-of-data.
Determine if the InputSource has encountered the end-of-data.
This does NOT perform a read operation (which would be blocking), but just answers the question of whether prior read operations in fact encountered the -1 indicating end-of-data
-
abstract
def
lockPosition(bytePos0b: Long): Unit
Set the specified byte position as a location that that one may want to call setPosition in the future.
Set the specified byte position as a location that that one may want to call setPosition in the future. This is essentially setting a mark in the data that can be reset back to later. Implementations are allowed to free any bytes before a locked byte position. Any bytes after a locked position cannot be freed until that lock is release.
Note that this "lock" has nothing to do with synchronization, but behaves more like marks that must be accessable until released.
- bytePos0b
the byte position to lock
-
abstract
def
position(bytePos0b: Long): Unit
Set the current byte position, using zero-based indexing
Set the current byte position, using zero-based indexing
bytPos0b cannot be greater than the most recent read data. In other words, this can only be used to move backwards in data.
- bytePos0b
the new current byte position
-
abstract
def
position(): Long
Get the current byte position, using zero-based indexing
Get the current byte position, using zero-based indexing
- returns
the current byte position
-
abstract
def
releasePosition(bytePos0b: Long): Unit
Release a previously locked byte position, allowing the implementation to free any unlocked bytes.
Release a previously locked byte position, allowing the implementation to free any unlocked bytes.
- bytePos0b
the byte position to release
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
var
_isValid: Boolean
- Attributes
- protected
- final def areDebugging: Boolean
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def isValid: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def setDebugging(setting: Boolean): Unit
- final def setInvalid(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()