Package org.apache.thrift.transport
Class TFramedTransport
- java.lang.Object
-
- org.apache.thrift.transport.TTransport
-
- org.apache.thrift.transport.TFramedTransport
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class TFramedTransport extends TTransport
TFramedTransport is a buffered TTransport that ensures a fully read message every time by preceding messages with a 4-byte frame size.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTFramedTransport.Factory
-
Field Summary
Fields Modifier and Type Field Description protected static intDEFAULT_MAX_LENGTH
-
Constructor Summary
Constructors Constructor Description TFramedTransport(TTransport transport)TFramedTransport(TTransport transport, int maxLength)Constructor wraps around another transport
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()voidclose()Closes the transport.voidconsumeBuffer(int len)Consume len bytes from the underlying buffer.static intdecodeFrameSize(byte[] buf)static voidencodeFrameSize(int frameSize, byte[] buf)voidflush()Flush any pending data out of a transport buffer.byte[]getBuffer()Access the protocol's underlying buffer directly.intgetBufferPosition()Return the index within the underlying buffer that specifies the next spot that should be read from.intgetBytesRemainingInBuffer()Get the number of bytes remaining in the underlying buffer.booleanisOpen()Queries whether the transport is open.voidopen()Opens the transport for reading/writing.intread(byte[] buf, int off, int len)Reads up to len bytes into buffer buf, starting at offset off.voidwrite(byte[] buf, int off, int len)Writes up to len bytes from the buffer.-
Methods inherited from class org.apache.thrift.transport.TTransport
peek, readAll, write
-
-
-
-
Field Detail
-
DEFAULT_MAX_LENGTH
protected static final int DEFAULT_MAX_LENGTH
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TFramedTransport
public TFramedTransport(TTransport transport, int maxLength)
Constructor wraps around another transport
-
TFramedTransport
public TFramedTransport(TTransport transport)
-
-
Method Detail
-
open
public void open() throws TTransportExceptionDescription copied from class:TTransportOpens the transport for reading/writing.- Specified by:
openin classTTransport- Throws:
TTransportException- if the transport could not be opened
-
isOpen
public boolean isOpen()
Description copied from class:TTransportQueries whether the transport is open.- Specified by:
isOpenin classTTransport- Returns:
- True if the transport is open.
-
close
public void close()
Description copied from class:TTransportCloses the transport.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classTTransport
-
read
public int read(byte[] buf, int off, int len) throws TTransportExceptionDescription copied from class:TTransportReads up to len bytes into buffer buf, starting at offset off.- Specified by:
readin classTTransport- Parameters:
buf- Array to read intooff- Index to start reading atlen- Maximum number of bytes to read- Returns:
- The number of bytes actually read
- Throws:
TTransportException- if there was an error reading data
-
getBuffer
public byte[] getBuffer()
Description copied from class:TTransportAccess the protocol's underlying buffer directly. If this is not a buffered transport, return null.- Overrides:
getBufferin classTTransport- Returns:
- protocol's Underlying buffer
-
getBufferPosition
public int getBufferPosition()
Description copied from class:TTransportReturn the index within the underlying buffer that specifies the next spot that should be read from.- Overrides:
getBufferPositionin classTTransport- Returns:
- index within the underlying buffer that specifies the next spot that should be read from
-
getBytesRemainingInBuffer
public int getBytesRemainingInBuffer()
Description copied from class:TTransportGet the number of bytes remaining in the underlying buffer. Returns -1 if this is a non-buffered transport.- Overrides:
getBytesRemainingInBufferin classTTransport- Returns:
- the number of bytes remaining in the underlying buffer.
Returns -1 if this is a non-buffered transport.
-
consumeBuffer
public void consumeBuffer(int len)
Description copied from class:TTransportConsume len bytes from the underlying buffer.- Overrides:
consumeBufferin classTTransport
-
clear
public void clear()
-
write
public void write(byte[] buf, int off, int len) throws TTransportExceptionDescription copied from class:TTransportWrites up to len bytes from the buffer.- Specified by:
writein classTTransport- Parameters:
buf- The output data bufferoff- The offset to start writing fromlen- The number of bytes to write- Throws:
TTransportException- if there was an error writing data
-
flush
public void flush() throws TTransportExceptionDescription copied from class:TTransportFlush any pending data out of a transport buffer.- Overrides:
flushin classTTransport- Throws:
TTransportException- if there was an error writing out data.
-
encodeFrameSize
public static final void encodeFrameSize(int frameSize, byte[] buf)
-
decodeFrameSize
public static final int decodeFrameSize(byte[] buf)
-
-