public class SideBandOutputStream
extends java.io.OutputStream
This stream is buffered at packet sizes, so the caller doesn't need to wrap it in yet another buffered stream.
Modifier and Type | Field and Description |
---|---|
private byte[] |
buffer |
static int |
CH_DATA
Channel used for pack data.
|
static int |
CH_ERROR
Channel used for error messages.
|
static int |
CH_PROGRESS
Channel used for progress messages.
|
private int |
cnt
Number of bytes in
buffer that are valid data. |
(package private) static int |
HDR_SIZE |
static int |
MAX_BUF
Maximum buffer size for a single packet of sideband data.
|
private java.io.OutputStream |
out |
static int |
SMALL_BUF
Default buffer size for a small amount of data.
|
Constructor and Description |
---|
SideBandOutputStream(int chan,
int sz,
java.io.OutputStream os)
Create a new stream to write side band packets.
|
Modifier and Type | Method and Description |
---|---|
void |
flush() |
(package private) void |
flushBuffer() |
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
private void |
writeBuffer() |
public static final int CH_DATA
public static final int CH_PROGRESS
public static final int CH_ERROR
public static final int SMALL_BUF
public static final int MAX_BUF
static final int HDR_SIZE
private final java.io.OutputStream out
private final byte[] buffer
private int cnt
public SideBandOutputStream(int chan, int sz, java.io.OutputStream os)
chan
- channel number to prefix all packets with, so the remote side
can demultiplex the stream and get back the original data.
Must be in the range [1, 255].sz
- maximum size of a data packet within the stream. The remote
side needs to agree to the packet size to prevent buffer
overflows. Must be in the range [HDR_SIZE + 1, MAX_BUF).os
- stream that the packets are written onto. This stream should
be attached to a SideBandInputStream on the remote side.void flushBuffer() throws java.io.IOException
java.io.IOException
public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in class java.io.OutputStream
java.io.IOException
public void write(byte[] b, int off, int len) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void write(int b) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
private void writeBuffer() throws java.io.IOException
java.io.IOException