public
abstract
class
ByteOutput
An output target for raw bytes. This interface provides semantics that support two types of writing:
Traditional write operations: (as defined by java.io.OutputStream ) where the target method is responsible for either copying the data or completing the write before returning from the method call.
Lazy write operations: where the caller guarantees that it will never modify the provided buffer and it can therefore be considered immutable. The target method is free to maintain a reference to the buffer beyond the scope of the method call (e.g. until the write operation completes).
Constructors
ByteOutput()
public
ByteOutput
()
Methods
write(byte value)
public
abstract
void
write
(
byte
value
)
Writes a single byte.
write(byte[] value, int offset, int length)
public
abstract
void
write
(
byte
[]
value
,
int
offset
,
int
length
)
Writes a sequence of bytes. The ByteOutput
must copy value
if it will not be
processed prior to the return of this method call, since value
may be reused/altered by
the caller.
NOTE: This method MUST NOTmodify the value
. Doing so is a
programming error and will lead to data corruption which will be difficult to debug.
write(ByteBuffer value)
public
abstract
void
write
(
ByteBuffer
value
)
Writes a sequence of bytes. The ByteOutput
must copy value
if it will not be
processed prior to the return of this method call, since value
may be reused/altered by
the caller.
NOTE: This method MUST NOTmodify the value
. Doing so is a
programming error and will lead to data corruption which will be difficult to debug.
value
ByteBuffer
the bytes to be written. Upon returning from this call, the position
of
this buffer will be set to the limit
writeLazy(byte[] value, int offset, int length)
public
abstract
void
writeLazy
(
byte
[]
value
,
int
offset
,
int
length
)
Writes a sequence of bytes. The ByteOutput is free to retain a reference to the value beyond the scope of this method call (e.g. write later) since it is considered immutable and is guaranteed not to change by the caller.
NOTE: This method MUST NOTmodify the value
. Doing so is a
programming error and will lead to data corruption which will be difficult to debug.
writeLazy(ByteBuffer value)
public
abstract
void
writeLazy
(
ByteBuffer
value
)
Writes a sequence of bytes. The ByteOutput is free to retain a reference to the value beyond the scope of this method call (e.g. write later) since it is considered immutable and is guaranteed not to change by the caller.
NOTE: This method MUST NOTmodify the value
. Doing so is a
programming error and will lead to data corruption which will be difficult to debug.
value
ByteBuffer
the bytes to be written. Upon returning from this call, the position
of
this buffer will be set to the limit

