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 int |
MAX_ENCODABLE_LENGTH
The maximum length that can be encoded by the header.
|
DERBY_EOF_MARKER
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.
|
private static final int MAX_ENCODABLE_LENGTH
public boolean expectsCharCount()
expectsCharCount
in interface StreamHeaderGenerator
false
.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.10 Internals - Copyright © 2004,2013 The Apache Software Foundation. All Rights Reserved.