public class AsyncPositionOutputStream extends PositionOutputStream
PositionOutputStream
which uses a async thread to write data.Modifier and Type | Field and Description |
---|---|
static int |
AWAIT_TIMEOUT_SECONDS |
static int |
BUFFER_SIZE |
static ExecutorService |
EXECUTOR_SERVICE |
static int |
MAX_BUFFER |
Constructor and Description |
---|
AsyncPositionOutputStream(PositionOutputStream out) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the output 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.
|
void |
write(byte[] b)
Writes
b.length bytes from the specified byte array to this output stream. |
void |
write(byte[] b,
int off,
int len)
Writes
len bytes from the specified byte array starting at offset off
to this output stream. |
void |
write(int b) |
public static final ExecutorService EXECUTOR_SERVICE
public static final int AWAIT_TIMEOUT_SECONDS
public static final int BUFFER_SIZE
public static final int MAX_BUFFER
public AsyncPositionOutputStream(PositionOutputStream out)
public long getPos() throws IOException
PositionOutputStream
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 PositionOutputStream
IOException
- Thrown if an I/O error occurs while obtaining the position from the
stream implementation.public void write(int b) throws IOException
write
in class OutputStream
IOException
public void write(byte[] b) throws IOException
PositionOutputStream
b.length
bytes from the specified byte array to this output stream. The
general contract for write(b)
is that it should have exactly the same effect as
the call write(b, 0, b.length)
.write
in class PositionOutputStream
IOException
public void write(byte[] b, int off, int len) throws IOException
PositionOutputStream
len
bytes from the specified byte array starting at offset off
to this output stream. The general contract for write(b, off, len)
is
that some of the bytes in the array b
are written to the output stream in order;
element b[off]
is the first byte written and b[off+len-1]
is the
last byte written by this operation.write
in class PositionOutputStream
IOException
public void flush() throws IOException
PositionOutputStream
Implementation note: This overrides the method defined in OutputStream
as abstract
to force implementations of the PositionOutputStream
to implement this method
directly.
flush
in interface Flushable
flush
in class PositionOutputStream
IOException
- Thrown if an I/O error occurs while flushing the stream.public void close() throws IOException
PositionOutputStream
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 PositionOutputStream
to implement this method
directly.
close
in interface Closeable
close
in interface AutoCloseable
close
in class PositionOutputStream
IOException
- Thrown, if an error occurred while closing the stream or guaranteeing
that the data is persistent.Copyright © 2023–2024 The Apache Software Foundation. All rights reserved.