public interface

IInput

com.pnfsoftware.jeb.core.input.IInput
Known Indirect Subclasses

Class Overview

Standard input interface for units.

Summary

Constants
int IDEAL_HEADER_SIZE
Public Methods
abstract boolean canRead()
Determine whether this input is readable.
abstract void close()
Close that input and free all resources used by this object.
abstract SeekableByteChannel getChannel()
Get a seekable read-only channel representing the input.
abstract long getCurrentSize()
Provide the current input size of the input data.
abstract ByteBuffer getHeader()
Get a read-only, big-endian buffer of the first input bytes.
abstract InputStream getStream()
Get the input stream.

Constants

public static final int IDEAL_HEADER_SIZE

Constant Value: 512 (0x00000200)

Public Methods

public abstract boolean canRead ()

Determine whether this input is readable.

public abstract void close ()

Close that input and free all resources used by this object.

public abstract SeekableByteChannel getChannel ()

Get a seekable read-only channel representing the input. Each call returns a unique channel. Clients should use this method to efficiently read at various locations within the given input.

Returns
  • a unique seekable channel
Throws
IOException on IO error

public abstract long getCurrentSize ()

Provide the current input size of the input data.

Returns
  • the size, -1 if the size cannot be calculated or if an error occurred

public abstract ByteBuffer getHeader ()

Get a read-only, big-endian buffer of the first input bytes. Clients should not attempt to modify or directly access that buffer. The initial position is set to 0. It is recommended that implementations provide at least IDEAL_HEADER_SIZE bytes.

Returns
  • a unique buffer; on error, the returned buffer is null (unlike other methods declared in this interface, this method does not throw IOException)

public abstract InputStream getStream ()

Get the input stream. Each call returns a unique stream. Implementors should offer this method for convenience. The implementor is responsible for closing non-closed streams when close() is called.

Returns
  • a unique input stream
Throws
IOException on IO error