public static class MemCheckpointStreamFactory.MemoryCheckpointOutputStream extends CheckpointStreamFactory.CheckpointStateOutputStream
CheckpointStateOutputStream
that writes into a byte array.Constructor and Description |
---|
MemoryCheckpointOutputStream(int maxSize) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the output stream.
|
byte[] |
closeAndGetBytes()
Closes the stream and returns the byte array containing the stream's data.
|
StreamStateHandle |
closeAndGetHandle()
Closes the stream and gets a state handle that can create an input stream
producing the data written to this stream.
|
void |
flush()
Flushes the stream, writing any data currently buffered in stream implementation
to the proper output stream.
|
long |
getPos()
Gets the position of the stream (non-negative), defined as the number of bytes
from the beginning of the file to the current writing position.
|
boolean |
isClosed() |
void |
sync()
Flushes the data all the way to the persistent non-volatile storage (for example disks).
|
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
write
public void write(int b) throws IOException
write
in class OutputStream
IOException
public void write(byte[] b, int off, int len) throws IOException
write
in class OutputStream
IOException
public void flush() throws IOException
FSDataOutputStream
A completed flush does not mean that the data is necessarily persistent. Data
persistence can is only assumed after calls to FSDataOutputStream.close()
or FSDataOutputStream.sync()
.
Implementation note: This overrides the method defined in OutputStream
as abstract to force implementations of the FSDataOutputStream
to implement
this method directly.
flush
in interface Flushable
flush
in class FSDataOutputStream
IOException
- Thrown if an I/O error occurs while flushing the stream.public void sync() throws IOException
FSDataOutputStream
sync
in class FSDataOutputStream
IOException
- Thrown if an I/O error occurspublic void close()
FSDataOutputStream
class-level docs
.
The above implies that the method must block until persistence can be guaranteed.
For example for distributed replicated file systems, the method must block until the
replication quorum has been reached. If the calling thread is interrupted in the
process, it must fail with an IOException
to indicate that persistence cannot
be guaranteed.
If this method throws an exception, the data in the stream cannot be assumed to be persistent.
Implementation note: This overrides the method defined in OutputStream
as abstract to force implementations of the FSDataOutputStream
to implement
this method directly.
close
in interface Closeable
close
in interface AutoCloseable
close
in class FSDataOutputStream
public StreamStateHandle closeAndGetHandle() throws IOException
CheckpointStreamFactory.CheckpointStateOutputStream
closeAndGetHandle
in class CheckpointStreamFactory.CheckpointStateOutputStream
IOException
- Thrown, if the stream cannot be closed.public long getPos() throws IOException
FSDataOutputStream
This method must report accurately report the current position of the stream. Various components of the high-availability and recovery logic rely on the accurate
getPos
in class FSDataOutputStream
IOException
- Thrown if an I/O error occurs while obtaining the position from
the stream implementation.public boolean isClosed()
public byte[] closeAndGetBytes() throws IOException
IOException
- Thrown if the size of the data exceeds the maximalCopyright © 2014–2018 The Apache Software Foundation. All rights reserved.