public final class CharStreamHeaderGenerator extends java.lang.Object implements StreamHeaderGenerator
The stream header encodes the byte length of the stream. Since two bytes are used for the header, the maximum encodable length is 65535 bytes. There are three special cases, all handled by encoding zero into the header and possibly appending an EOF-marker to the stream:
out.writeByte((byte)(byteLength >>> 8)); out.writeByte((byte)(byteLength >>> 0));
Modifier and Type | Field and Description |
---|---|
private static byte[] |
DERBY_EOF_MARKER
The Derby-specific end-of-stream marker.
|
private static int |
MAX_ENCODABLE_LENGTH
The maximum length that can be encoded by the header.
|
Constructor and Description |
---|
CharStreamHeaderGenerator() |
Modifier and Type | Method and Description |
---|---|
boolean |
expectsCharCount()
A byte count is expected.
|
int |
generateInto(byte[] buffer,
int offset,
long byteLength)
Generates the header for the specified length and writes it into the
provided buffer, starting at the specified offset.
|
int |
generateInto(java.io.ObjectOutput out,
long byteLength)
Generates the header for the specified length.
|
int |
getMaxHeaderLength()
Returns the maximum header length.
|
int |
writeEOF(byte[] buffer,
int offset,
long byteLength)
Writes a Derby-specific end-of-stream marker to the buffer for a stream
of the specified byte length, if required.
|
int |
writeEOF(java.io.ObjectOutput out,
long byteLength)
Writes a Derby-specific end-of-stream marker to the destination stream
for the specified byte length, if required.
|
static int |
writeEOFMarker(byte[] buffer,
int offset)
Write the EOF marker to a byte array and return the EOF marker's length
|
static int |
writeEOFMarker(java.io.ObjectOutput out)
Write the EOF marker to an Object stream and return the EOF marker's length
|
private static final byte[] DERBY_EOF_MARKER
private static final int MAX_ENCODABLE_LENGTH
public boolean expectsCharCount()
expectsCharCount
in interface StreamHeaderGenerator
false
.public static int writeEOFMarker(byte[] buffer, int offset)
public static int writeEOFMarker(java.io.ObjectOutput out) throws java.io.IOException
java.io.IOException
public int generateInto(byte[] buffer, int offset, long byteLength)
generateInto
in interface StreamHeaderGenerator
buffer
- the buffer to write intooffset
- starting offset in the bufferbyteLength
- the length to encode in the headerpublic int generateInto(java.io.ObjectOutput out, long byteLength) throws java.io.IOException
generateInto
in interface StreamHeaderGenerator
out
- the destination streambyteLength
- the byte length to encode in the headerjava.io.IOException
- if writing to the destination stream failspublic int writeEOF(byte[] buffer, int offset, long byteLength)
writeEOF
in interface StreamHeaderGenerator
buffer
- the buffer to write intooffset
- starting offset in the bufferbyteLength
- the byte length of the streampublic int writeEOF(java.io.ObjectOutput out, long byteLength) throws java.io.IOException
writeEOF
in interface StreamHeaderGenerator
out
- the destination streambyteLength
- the length of the streamjava.io.IOException
- if writing to the destination stream failspublic int getMaxHeaderLength()
getMaxHeaderLength
in interface StreamHeaderGenerator
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.