org.eclipse.jgit.transport
Class SideBandOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.eclipse.jgit.transport.SideBandOutputStream
All Implemented Interfaces:
Closeable, Flushable

public class SideBandOutputStream
extends OutputStream

Multiplexes data and progress messages.

This stream is buffered at packet sizes, so the caller doesn't need to wrap it in yet another buffered stream.

Since:
2.0

Field Summary
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.
static int MAX_BUF
          Maximum buffer size for a single packet of sideband data.
static int SMALL_BUF
          Default buffer size for a small amount of data.
 
Constructor Summary
SideBandOutputStream(int chan, int sz, OutputStream os)
          Create a new stream to write side band packets.
 
Method Summary
 void flush()
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 
Methods inherited from class java.io.OutputStream
close, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CH_DATA

public static final int CH_DATA
Channel used for pack data.

See Also:
Constant Field Values

CH_PROGRESS

public static final int CH_PROGRESS
Channel used for progress messages.

See Also:
Constant Field Values

CH_ERROR

public static final int CH_ERROR
Channel used for error messages.

See Also:
Constant Field Values

SMALL_BUF

public static final int SMALL_BUF
Default buffer size for a small amount of data.

See Also:
Constant Field Values

MAX_BUF

public static final int MAX_BUF
Maximum buffer size for a single packet of sideband data.

See Also:
Constant Field Values
Constructor Detail

SideBandOutputStream

public SideBandOutputStream(int chan,
                            int sz,
                            OutputStream os)
Create a new stream to write side band packets.

Parameters:
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 [0, 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.
Method Detail

flush

public void flush()
           throws IOException
Specified by:
flush in interface Flushable
Overrides:
flush in class OutputStream
Throws:
IOException

write

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

write

public void write(int b)
           throws IOException
Specified by:
write in class OutputStream
Throws:
IOException


Copyright © 2012. All Rights Reserved.