public final class BufferDataOutputStream extends BufferOutputStream implements PayloadStream, PayloadText, java.io.ObjectOutput
This class is an "unsychronized byte array data output stream". It combines the functionality of java.io.DataOuputStream and java.io.ByteArrayOutputStream but unlike them does not use synchronized methods.
When the fixedSizeBuf constructor is used, the supplied buffer is never replaced. Writes that would exceed that size throw. Otherwise A modified buffer resizing algorithm is used. Instead of always doubling the internal buffer size if it is too small, doubling occurs only at less than 2MB, for larger size the buffer size increases in fixed increments.
Modifier and Type | Field and Description |
---|---|
private byte[] |
buf |
private int |
count |
private byte[] |
fixedSizeBuf |
private boolean |
isBypassOutputStream |
private boolean |
isJMSMulticastOutputStream |
private boolean |
isJMSStoreOutputStream |
private ObjectIOBypass |
objectIOBypass |
private static int |
VERSION |
Constructor and Description |
---|
BufferDataOutputStream(ObjectIOBypass objectIOBypass,
byte[] fixedSizeBuf) |
BufferDataOutputStream(ObjectIOBypass objectIOBypass,
java.io.DataInput in) |
BufferDataOutputStream(ObjectIOBypass objectIOBypass,
java.io.DataInput in,
int count) |
BufferDataOutputStream(ObjectIOBypass objectIOBypass,
int size) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
copyBuffer() |
PayloadStream |
copyPayloadWithoutSharedStream()
copy the underlying buffers to a new payload.
|
PayloadText |
copyPayloadWithoutSharedText()
copy the underlying buffers to a new payload.
|
byte[] |
getBuffer() |
BufferInputStream |
getInputStream()
get an InputStream for this data
|
int |
getLength() |
java.io.ObjectOutput |
getObjectOutput() |
boolean |
isBypassOutputStream() |
boolean |
isJMSMulticastOutputStream() |
boolean |
isJMSStoreOutputStream() |
PayloadStream |
moveToPayload()
destructively move the data to a payload.
|
java.lang.String |
readUTF8() |
void |
reset() |
private void |
resizeBuf(int oldSize,
int minSize)
Ensure the internal buffer is large enough.
|
void |
setIsBypassOutputStream() |
void |
setIsJMSMulticastOutputStream() |
void |
setIsJMSStoreOutputStream() |
int |
size() |
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
void |
writeBoolean(boolean data) |
void |
writeByte(int data) |
void |
writeBytes(java.lang.String s) |
void |
writeChar(int data) |
void |
writeChars(java.lang.String s) |
void |
writeDouble(double data) |
void |
writeFloat(float data) |
void |
writeInt(int data) |
void |
writeLengthAndData(java.io.DataOutput out)
out.writeInt(getLength()) and then write() all data to out.
|
void |
writeLong(long data) |
void |
writeObject(java.lang.Object o)
A special version of writeObject.
|
void |
writeShort(int data) |
void |
writeTo(java.io.OutputStream out)
same as writeLengthAndData without writing the Length
|
void |
writeUTF(java.lang.String str) |
static void |
writeUTF32(java.io.ObjectOutput out,
java.lang.String str) |
void |
writeUTF32(java.lang.String str) |
private byte[] buf
private final byte[] fixedSizeBuf
private int count
private final ObjectIOBypass objectIOBypass
private boolean isBypassOutputStream
private boolean isJMSStoreOutputStream
private boolean isJMSMulticastOutputStream
private static final int VERSION
public BufferDataOutputStream(ObjectIOBypass objectIOBypass, int size)
public BufferDataOutputStream(ObjectIOBypass objectIOBypass, byte[] fixedSizeBuf)
BufferDataOutputStream(ObjectIOBypass objectIOBypass, java.io.DataInput in) throws java.io.IOException
java.io.IOException
BufferDataOutputStream(ObjectIOBypass objectIOBypass, java.io.DataInput in, int count) throws java.io.IOException
java.io.IOException
private void resizeBuf(int oldSize, int minSize) throws java.io.IOException
java.io.IOException
BufferOutputStream
public final boolean isJMSStoreOutputStream()
isJMSStoreOutputStream
in class BufferOutputStream
public final boolean isBypassOutputStream()
isBypassOutputStream
in interface JMSOutputStream
public final boolean isJMSMulticastOutputStream()
isJMSMulticastOutputStream
in interface JMSOutputStream
public final void setIsJMSStoreOutputStream()
setIsJMSStoreOutputStream
in class BufferOutputStream
public final void setIsBypassOutputStream()
setIsBypassOutputStream
in class BufferOutputStream
public final void setIsJMSMulticastOutputStream()
setIsJMSMulticastOutputStream
in class BufferOutputStream
public final void write(int b) throws java.io.IOException
write
in interface java.io.DataOutput
write
in interface java.io.ObjectOutput
write
in class java.io.OutputStream
java.io.IOException
public final void write(byte[] b, int off, int len) throws java.io.IOException
write
in interface java.io.DataOutput
write
in interface java.io.ObjectOutput
write
in class java.io.OutputStream
java.io.IOException
public final void writeTo(java.io.OutputStream out) throws java.io.IOException
Payload
public final void reset()
reset
in class BufferOutputStream
public final byte[] getBuffer()
public final java.io.ObjectOutput getObjectOutput()
getObjectOutput
in class BufferOutputStream
final void copyBuffer() throws JMSException
copyBuffer
in class BufferOutputStream
JMSException
public final int size()
size
in class BufferOutputStream
public final void writeObject(java.lang.Object o) throws java.io.IOException
writeObject
in interface java.io.ObjectOutput
java.io.IOException
weblogic.jms.store.ObjectIOBypass
public final void writeBoolean(boolean data) throws java.io.IOException
writeBoolean
in interface java.io.DataOutput
java.io.IOException
public final void writeByte(int data) throws java.io.IOException
writeByte
in interface java.io.DataOutput
java.io.IOException
public final void writeShort(int data) throws java.io.IOException
writeShort
in interface java.io.DataOutput
java.io.IOException
public final void writeChar(int data) throws java.io.IOException
writeChar
in interface java.io.DataOutput
java.io.IOException
public final void writeInt(int data) throws java.io.IOException
writeInt
in interface java.io.DataOutput
java.io.IOException
public final void writeLong(long data) throws java.io.IOException
writeLong
in interface java.io.DataOutput
java.io.IOException
public final void writeFloat(float data) throws java.io.IOException
writeFloat
in interface java.io.DataOutput
java.io.IOException
public final void writeDouble(double data) throws java.io.IOException
writeDouble
in interface java.io.DataOutput
java.io.IOException
public final void writeBytes(java.lang.String s) throws java.io.IOException
writeBytes
in interface java.io.DataOutput
java.io.IOException
public final void writeChars(java.lang.String s) throws java.io.IOException
writeChars
in interface java.io.DataOutput
java.io.IOException
public final void writeUTF32(java.lang.String str) throws java.io.IOException
writeUTF32
in class BufferOutputStream
java.io.IOException
public static void writeUTF32(java.io.ObjectOutput out, java.lang.String str) throws java.io.IOException
java.io.IOException
public final void writeUTF(java.lang.String str) throws java.io.IOException
writeUTF
in interface java.io.DataOutput
java.io.IOException
public void writeLengthAndData(java.io.DataOutput out) throws java.io.IOException
Payload
writeLengthAndData
in interface Payload
java.io.IOException
public PayloadText copyPayloadWithoutSharedText() throws JMSException
PayloadText
copyPayloadWithoutSharedText
in interface PayloadText
JMSException
public PayloadStream copyPayloadWithoutSharedStream() throws JMSException
BufferOutputStream
copyPayloadWithoutSharedStream
in interface PayloadStream
copyPayloadWithoutSharedStream
in class BufferOutputStream
JMSException
public PayloadStream moveToPayload()
BufferOutputStream
moveToPayload
in class BufferOutputStream
public BufferInputStream getInputStream() throws java.io.IOException
Payload
getInputStream
in interface Payload
java.io.IOException
public java.lang.String readUTF8() throws java.io.IOException
readUTF8
in interface PayloadText
java.io.IOException