org.infinispan.io
Class ExpandableMarshalledValueByteStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.infinispan.io.MarshalledValueByteStream
          extended by org.infinispan.io.ExpandableMarshalledValueByteStream
All Implemented Interfaces:
Closeable, Flushable

public class ExpandableMarshalledValueByteStream
extends MarshalledValueByteStream

A byte stream that can be written to and expanded on the fly, not dissimilar to ExposedByteArrayOutputStream but with the benefit of not having to allocate unnecessary byte arrays byt not extending ByteArrayOutputStream.

Since:
5.1
Author:
Manik Surtani

Field Summary
static int DEFAULT_DOUBLING_SIZE
          Default buffer size after which if more buffer capacity is needed the buffer will grow by 25% rather than 100%
 
Constructor Summary
ExpandableMarshalledValueByteStream()
           
ExpandableMarshalledValueByteStream(int size)
           
ExpandableMarshalledValueByteStream(int size, int maxDoublingSize)
          Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.
 
Method Summary
 boolean equals(Object thatObject)
           
 int getMaxDoublingSize()
          Gets the highest internal buffer size after which if more capacity is needed the buffer will grow in 25% increments rather than 100%.
 int getNewBufferSize(int curSize, int minNewSize)
          Gets the number of bytes to which the internal buffer should be resized.
 byte[] getRaw()
          Gets the internal buffer array.
 void set(byte[] b)
           
 int size()
          Overriden only to avoid unneeded synchronization
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 
Methods inherited from class java.io.OutputStream
close, flush, write
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_DOUBLING_SIZE

public static final int DEFAULT_DOUBLING_SIZE
Default buffer size after which if more buffer capacity is needed the buffer will grow by 25% rather than 100%

See Also:
Constant Field Values
Constructor Detail

ExpandableMarshalledValueByteStream

public ExpandableMarshalledValueByteStream()

ExpandableMarshalledValueByteStream

public ExpandableMarshalledValueByteStream(int size)

ExpandableMarshalledValueByteStream

public ExpandableMarshalledValueByteStream(int size,
                                           int maxDoublingSize)
Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.

Parameters:
size - the initial size.
maxDoublingSize - the buffer size, after which if more capacity is needed the buffer will grow by 25% rather than 100%
Throws:
IllegalArgumentException - if size is negative.
Method Detail

getRaw

public final byte[] getRaw()
Gets the internal buffer array. Note that the length of this array will almost certainly be longer than the data written to it; call size() to get the number of bytes of actual data.

Specified by:
getRaw in class MarshalledValueByteStream

set

public final void set(byte[] b)

write

public final void write(byte[] b,
                        int off,
                        int len)
Overrides:
write in class OutputStream

write

public final void write(int b)
Specified by:
write in class OutputStream

getMaxDoublingSize

public final int getMaxDoublingSize()
Gets the highest internal buffer size after which if more capacity is needed the buffer will grow in 25% increments rather than 100%.


getNewBufferSize

public final int getNewBufferSize(int curSize,
                                  int minNewSize)
Gets the number of bytes to which the internal buffer should be resized.

Parameters:
curSize - the current number of bytes
minNewSize - the minimum number of bytes required
Returns:
the size to which the internal buffer should be resized

size

public final int size()
Overriden only to avoid unneeded synchronization

Specified by:
size in class MarshalledValueByteStream

equals

public boolean equals(Object thatObject)
Overrides:
equals in class Object

-->

Copyright © 2012 JBoss, a division of Red Hat. All Rights Reserved.