uk.ac.starlink.table.storage
Class MemoryByteStore

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.ByteArrayOutputStream
          extended by uk.ac.starlink.table.storage.MemoryByteStore
All Implemented Interfaces:
Closeable, Flushable, ByteStore

public class MemoryByteStore
extends ByteArrayOutputStream
implements ByteStore

ByteStore implementation which stores bytes in a buffer in memory.

Since:
11 Jul 2008

Field Summary
 
Fields inherited from class java.io.ByteArrayOutputStream
buf, count
 
Constructor Summary
MemoryByteStore()
           
 
Method Summary
 void close()
          Tidies up.
 void copy(OutputStream out)
          Takes all the data written so far into this store's sink stream and copies it to a destination stream.
 OutputStream getOutputStream()
          Returns an output stream which can be used to write to the store.
 ByteBuffer[] toByteBuffers()
          Returns an array of byte buffers containing the bytes written to this store.
 
Methods inherited from class java.io.ByteArrayOutputStream
reset, size, toByteArray, toString, toString, toString, write, write, writeTo
 
Methods inherited from class java.io.OutputStream
flush, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MemoryByteStore

public MemoryByteStore()
Method Detail

getOutputStream

public OutputStream getOutputStream()
Description copied from interface: ByteStore
Returns an output stream which can be used to write to the store. May be called multiple times; always returns the same object. Note that this is not in general buffered - it is the responsibility of the user to take steps like wrapping it in a BufferedOutputStream for efficiency if required.

Specified by:
getOutputStream in interface ByteStore
Returns:
data sink stream

copy

public void copy(OutputStream out)
          throws IOException
Description copied from interface: ByteStore
Takes all the data written so far into this store's sink stream and copies it to a destination stream. The output stream is not closed.

Specified by:
copy in interface ByteStore
Parameters:
out - data destination stream
Throws:
IOException

toByteBuffers

public ByteBuffer[] toByteBuffers()
Description copied from interface: ByteStore
Returns an array of byte buffers containing the bytes written to this store. The stored bytes are all of the bytes from the first buffer in the returned array, followed by all in the second, etc. In many cases the returned array will, and probably should, contain a single buffer, but if the written byte count exceeds Integer.MAX_VALUE, more than one will be required. The limit of each buffer indicates the number of bytes it contains.

Usual usage will be to write all data, then call this method once; this model may affect implementation decisions about efficiency.

Specified by:
toByteBuffers in interface ByteStore
Returns:
byte buffer containing bytes written

close

public void close()
Description copied from interface: ByteStore
Tidies up. Should be called when the data in this object is no longer required. This object may no longer be usable following a call to this method.

Specified by:
close in interface Closeable
Specified by:
close in interface ByteStore
Overrides:
close in class ByteArrayOutputStream

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.